
Uma ferramenta de prova de conceito para demonstrar a vulnerabilidade crítica React2Shell
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.
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 ao Next.js, mas desde então foi rejeitado como duplicata do 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 agrupe.
Não Afetado: 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 comunicação cliente-servidor. A vulnerabilidade reside na lógica de desserialização do servidor, que expande de forma insegura as propriedades do objeto a partir 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, levando à Execução Remota de Código (RCE) completa.
Pesquisadores de segurança observaram explorações bem-sucedidas levando a:
.aws/credentials).A correção é obrigatória e a única maneira de eliminar completamente a vulnerabilidade. Não existe configuração para desabilitar 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 seus arquivos package-lock.json ou yarn.lock refletem as versões corrigidas do pacote react-server-dom-* (19.0.1, 19.1.2 ou 19.2.1).
Enquanto corrige, implante regras de Firewall de Aplicação Web (WAF) para bloquear tentativas de exploração:
AWSManagedRulesKnownBadInputsRuleSet (v1.24+) inclui regras para este 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 corrigir.
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/ (ex.: 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 porque corrigir é 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 estão atualizadas para as versões corrigidas listadas acima.
TAHA MOUNIR
| 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 primário 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 estiver usando os pacotes React afetados. |