
Exploit de prova de conceito para CVE-2025-55182 (React2Shell), um RCE crítico pré-autenticação em React Server Components. Demonstra desserialização insegura no protocolo Flight para testes de segurança autorizados e educação.
Uma ferramenta de prova de conceito para demonstrar a vulnerabilidade crítica React2Shell (CVE-2025-55182 / CVE-2025-66478) apenas em ambientes de teste locais e autorizados.
Esta vulnerabilidade (CVSS 10.0) está sendo ativamente explorada por atores de ameaças sofisticados. A Amazon Threat Intelligence relata que vários grupos patrocinados por estados com vínculos com a China, incluindo Earth Lamia e Jackpot Panda, começaram a transformar exploits públicos em armas poucas horas após a divulgação. A Agência de Segurança Cibernética e de Infraestrutura dos EUA (CISA) a adicionou ao seu catálogo de Vulnerabilidades Exploradas Conhecidas (KEV).
CVE-2025-55182 (React2Shell) é uma vulnerabilidade crítica de Execução Remota de Código (RCE) pré-autenticação no protocolo "Flight" dos React Server Components (RSC). Um identificador separado, CVE-2025-66478, foi atribuído para o Next.js, mas foi posteriormente rejeitado como duplicado de CVE-2025-55182, pois ambos compartilham a mesma causa raiz.
chmod +x pwn-nextjs.sh
./pwn-nextjs.sh [TARGET_URL] [COMMAND]
# Target specific URL
./pwn-nextjs.sh https://vulnerable-app.example.com "whoami"
root
A vulnerabilidade se origina em pacotes React específicos, afetando qualquer framework que os inclua.
| Componente | Versões Afetadas | Versões Corrigidas | Notas |
|---|---|---|---|
| Pacotes React ( react-server-dom-webpack, -parcel, -turbopack) | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1 | Fonte da falha upstream. |
| Next.js (App Router) | 15.x, 16.x, 14.3.0-canary.77 e posteriores | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 | Framework principal afetado. |
| Outros Frameworks | React Router, Waku, RedwoodJS, Parcel (@parcel/rsc), Vite RSC Plugin | Atualize para versões que usam pacotes React corrigidos (>19.0.1, 19.1.2, 19.2.1). | Vulnerável se usar os pacotes React afetados. |
Não Afetados: Next.js 13.x, versões estáveis do Next.js 14.x, aplicações Pages Router e o Edge Runtime não são afetados.
O protocolo Flight do RSC serializa dados para a comunicação cliente-servidor. A vulnerabilidade está na lógica de desserialização no servidor, que expande de forma insegura as propriedades de objetos do payload recebido sem validação adequada. Isso permite que um atacante injete chaves maliciosas (como __proto__ ou constructor) na requisição, levando à poluição de protótipo.
Uma vez que a cadeia de protótipos é poluída, o servidor segue caminhos de execução influenciados pelo atacante. Isso pode ser encadeado para executar código JavaScript arbitrário com privilégios de servidor, resultando em Execução Remota de Código (RCE) total.
Pesquisadores de segurança observaram explorações bem-sucedidas que levaram a:
.aws/credentials).A aplicação do patch é obrigatória e a única maneira de eliminar completamente a vulnerabilidade. Não existe configuração para desativar o caminho de código vulnerável.
# For Next.js users, upgrade to the latest patched version in your release line.
# Example: If you are on Next.js 15.5.x:
npm install [email protected]
# Also ensure React dependencies are updated:
npm install react@latest react-dom@latest
Verifique se os seus arquivos package-lock.json ou yarn.lock refletem as versões corrigidas dos pacotes react-server-dom-* (19.0.1, 19.1.2 ou 19.2.1).
Enquanto aplica a correção, implante regras de Web Application Firewall (WAF) para bloquear tentativas de exploração:
AWSManagedRulesKnownBadInputsRuleSet (v1.24+) inclui regras para esta CVE.cve-canary está disponível.Nota: As regras de WAF são uma mitigação temporária e incompleta. Elas não substituem a necessidade de aplicar a correção.
Revise os logs em busca destes sinais de tentativas de exploração:
next-action ou rsc-action-id. Corpos de requisição contendo padrões como $@ ou "status":"resolved_model".whoami, id, uname), leituras de /etc/passwd ou gravações de arquivos em /tmp/ (por exemplo, pwned.txt) por processos Node.js.Esta ferramenta demonstra uma vulnerabilidade com pontuação CVSS de 10.0 (Severidade Máxima) que está sob exploração ativa patrocinada por estados.
Lembre-se: Esta ferramenta demonstra por que a aplicação de correções é urgente. Use este conhecimento para melhorar a segurança e defender sistemas, não para comprometê-los. Certifique-se de que todas as suas dependências estejam atualizadas para as versões corrigidas listadas acima.