# React와 Next.js에서 원격 코드 실행이 가능한 취약점 CVE-2025-55182(React2Shell)

> Clean Markdown view of GeekNews topic #24874. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=24874](https://news.hada.io/topic?id=24874)
- GeekNews Markdown: [https://news.hada.io/topic/24874.md](https://news.hada.io/topic/24874.md)
- Type: GN+
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2025-12-06T23:27:26+09:00
- Updated: 2025-12-06T23:27:26+09:00
- Original source: [securitylabs.datadoghq.com](https://securitylabs.datadoghq.com/articles/cve-2025-55182-react2shell-remote-code-execution-react-server-components/)
- Points: 8
- Comments: 5

## Summary

**React 서버 컴포넌트**에서 인증 없이 임의 코드를 실행할 수 있는 **원격 코드 실행(RCE)** 취약점(CVE-2025-55182)이 발견되어, React와 **Next.js** 사용자 모두 **즉시 패치 적용이 필요**합니다. 근본 원인은 서버 측 **프로토타입 오염**으로, 공격자가 객체 프로토타입을 조작해 시스템 명령을 실행할 수 있습니다. 공개 PoC가 빠르게 확산되며 Datadog은 800개 이상의 IP에서 실제 공격 시도를 탐지했으며, Next.js 15.x~16.x 버전이 특히 취약한 것으로 확인됩니다.

## Topic Body

- **React 서버 컴포넌트**에서 인증 없이 임의 코드를 실행할 수 있는 **원격 코드 실행(RCE)** 취약점이 발견되어 **즉시 업그레이드 필요**  
- **Next.js**도 영향을 받으며, App Router 기능을 사용하는 경우 취약함. Next.js는 이를 CVE-2025-66478로 추적 중임  
- 취약점의 근본 원인은 **서버 측 프로토타입 오염(server-side prototype pollution)** 으로, 공격자가 JavaScript 객체의 프로토타입을 조작해 `child_process.execSync` 등으로 명령 실행 가능  
- **공개 PoC(개념증명)** 코드가 빠르게 확산되었고, Datadog은 12월 5일 기준 **800개 이상의 IP**에서 실제 공격 시도를 탐지함  
- CVSS 점수 10점으로 평가된 이 취약점은 **Next.js 15.x~16.x** 버전에서 특히 심각하며, 최신 패치 적용이 필수적임  
  
---  
  
### 주요 취약점 개요  
- 12월 3일 **React Server Components**에서 인증 없이 임의 코드 실행이 가능한 취약점이 발견되어 CVE-2025-55182로 등록  
  - 취약점은 서버 측에서 실행되며, 공격자가 원격으로 코드를 실행할 수 있음  
- **Next.js**는 해당 취약한 컴포넌트를 포함하고 있어 영향을 받음  
  - Next.js는 CVE-2025-66478로 별도 관리 중이나, NVD에서는 이 CVE를 공식적으로 거부함  
- CVSS 점수는 **10/10**으로, Datadog은 **공격이 매우 간단**하며 기본 템플릿으로 생성된 Next.js 앱에서도 재현 가능하다고 확인  
- 12월 5일 기준, **무기화된 페이로드를 포함한 실제 공격 시도**가 관찰됨  
  
### 영향받는 버전 및 완화 방법  
- 취약한 React 라이브러리:  
  - `react-server-dom-parcel`, `react-server-dom-webpack`, `react-server-dom-turbopack`  
  - 취약 버전: 19.0~19.2.0 / 패치 버전: 19.0.1, 19.1.2, 19.2.1  
- **Next.js 영향 버전**  
  - 취약: 15.x, 16.x, 14.3.0-canary.77 이후  
  - 패치: 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7  
- `npm audit` 명령으로 취약 여부 확인 가능  
- 해결책은 **패치된 버전으로 업그레이드**하는 것  
  
### 취약점 분석 및 PoC  
- 12월 3일 React 저장소에 패치 코드가 커밋됨  
  - 수정 내용은 `requireModule` 함수에서 객체 속성 존재 여부를 검사하도록 변경  
- 이 취약점은 **서버 측 프로토타입 오염** 유형으로, 객체의 프로토타입을 오염시켜 임의 코드 실행 가능  
- 공개된 PoC:  
  - 첫 번째 PoC(`ejpir/CVE-2025-55182-poc`)는 비작동 상태  
  - 두 번째 PoC(`msanft/CVE-2025-55182`)는 **기본 Next.js 앱에서도 작동**  
  - 12월 5일 원 보고자 **Lachlan Davidson**이 세 가지 변형의 공식 PoC를 공개  
  
### 실제 공격 활동  
- Datadog은 12월 3일 22시(UTC)부터 **스캐닝 활동**을 탐지  
  - 12월 5일 기준 **800개 이상의 IP**에서 스캔 및 공격 시도 확인  
  - 두 개 이상의 조직이 공격 대상이 되었으며, 12월 4일 이후 지속적 활동 관찰  
- 공격 흐름:  
  - 초기에는 비작동 PoC 기반 스캔  
  - 이후 Moritz Sanft의 PoC, 마지막으로 Davidson의 PoC 순으로 페이로드 교체  
- 관찰된 페이로드:  
  - `/etc/passwd` 읽기, `whoami` 실행, `curl`·`wget`을 통한 원격 스크립트 다운로드 등  
  - 일부는 환경 변수(`.env`) 탈취 및 시스템 정보 수집 기능 포함  
  
### 서버 측 프로토타입 오염 개념  
- **CWE-1321** 유형으로, 객체 프로토타입 속성을 잘못 제어할 때 발생  
- 일반적으로 프론트엔드에서 XSS로 악용되지만, 서버 측에서는 **RCE나 파일 읽기**로 이어질 수 있음  
- 예시 코드에서 `__proto__`를 통한 오염으로 `Object.prototype`이 수정되어, 이후 생성된 객체 모두 영향을 받음  
- 결과적으로 `spawnSync('sh')` 호출 시 악성 명령이 입력으로 전달되어 실행됨  
  
### Datadog의 탐지 및 방어 기능  
- **Datadog Code Security**는 GitHub 또는 런타임에서 취약 라이브러리를 탐지  
  - CVE-2025-55182 또는 CVE-2025-66478 관련 검색 기능 제공  
- **Datadog App and API Protection (AAP)** 은 런타임에서 공격 차단 가능  
- **Datadog Workload Protection**은 Node 프로세스에서 `wget`, `curl`, `bash` 등 명령 실행을 탐지하는 **커스텀 규칙** 제공  
  
### 참고 자료  
- 공식 권고: [React](https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components), [Next.js](https://nextjs.org/blog/CVE-2025-66478)  
- 클라우드 제공자 대응: AWS, Vercel, Google Cloud, Akamai, Cloudflare  
- 보안업체 분석: Wiz, Tenable, SearchLight Cyber  
- CERT 경고: CERT-EU, CERT-SE, CERT-AU  
- 공개 스캐너: [assetnote/react2shell-scanner](https://github.com/assetnote/react2shell-scanner)

## Comments



### Comment 47358

- Author: stech
- Created: 2025-12-08T00:34:14+09:00
- Points: 1

요즘 Vercel 팀이 엉망이네요. 탈 React/Next의 때가 온 듯 합니다.

### Comment 47392

- Author: jeiea
- Created: 2025-12-08T13:01:51+09:00
- Points: 1
- Parent comment: 47358
- Depth: 1

잘한 건 아니지만 더 나은 대응이 있을까요?

### Comment 47344

- Author: laeyoung
- Created: 2025-12-07T17:35:13+09:00
- Points: 2

Vercel 팀에서 해당 이슈 버전을 한번에 업데이트 하는 [npx command](https://github.com/vercel-labs/fix-react2shell-next) 배포 했더라고요.  
  
`npx fix-react2shell-next`

### Comment 47330

- Author: shakespeares
- Created: 2025-12-07T11:27:23+09:00
- Points: 2

npm audit 명령으로 취약 여부 확인해서 업데이트 해야겠네요..

### Comment 47314

- Author: xguru
- Created: 2025-12-06T23:31:24+09:00
- Points: 1

[React와 Next.js의 원격 코드 실행(RCE) 취약점](https://news.hada.io/topic?id=24826)
