
React2Shell Scanner (CVE-2025-55182 & CVE-2025-66478)
Uma ferramenta de detecção não intrusiva para identificar implementações vulneráveis do React Server Components (RSC) afetadas pelas CVE-2025-55182 (React) e CVE-2025-66478 (Next.js). Esta ferramenta realiza detecção ativa usando payloads benignos e não maliciosos para determinar se um servidor está vulnerável sem executar nenhum código prejudicial.
CVE-2025-55182 e CVE-2025-66478 são vulnerabilidades críticas de execução remota de código (RCE) não autenticada no protocolo "Flight" do React Server Components. Essas vulnerabilidades afetam:
react-server-dom 19.0.0, 19.1.0, 19.1.1 e 19.2.0As vulnerabilidades decorrem de desserialização insegura na lógica de manipulação de payloads RSC, permitindo que dados controlados pelo atacante influenciem a execução no lado do servidor. As configurações padrão são vulneráveis – uma aplicação Next.js padrão criada com create-next-app pode ser explorada sem nenhuma alteração no código.
Esta ferramenta realiza detecção ativa de vulnerabilidades através de:
A ferramenta utiliza três métodos de detecção:
loadServerReferencearrayBufferImportante: Esta ferramenta NÃO executa nenhum código malicioso. Ela apenas envia payloads benignos cuidadosamente elaborados para provocar respostas de erro que revelem o status de vulnerabilidade do servidor.
python react2shell_scanner.py --target https://example.com
python react2shell_scanner.py --target https://example.com --action-id SEU_ACTION_ID
python react2shell_scanner.py --target https://example.com --verbose
[+] Verificador de Vulnerabilidades CVE-2025-55182 e CVE-2025-66478
[*] Alvo: https://example.com
[*] Action ID: c67c4e1a40fcc26b5e3c0d5d17f16786f4244989
[*] Teste 1: Enviando payload $F (Server Reference)...
Status: 500, Evidência: workers
[*] Teste 2: Enviando payload $L (Lazy)...
Status: 500, Evidência: arraybuffer
[+] Resultado:
[!] Status: PROVAVELMENTE VULNERÁVEL
[!] Confiança: ALTA
[!] Evidência: workers
[!] Detalhes: Servidor alcançou loadServerReference (bypass de desserialização Flight $F)
[!] RECOMENDAÇÃO: Atualize para a versão corrigida
======================================================================
[+] Verificador de Vulnerabilidades CVE-2025-55182 e CVE-2025-66478
[*] Alvo: https://example.com
[*] Action ID: c67c4e1a40fcc26b5e3c0d5d17f16786f4244989
[*] Teste 1: Enviando payload $F (Server Reference)...
Status: 500, Evidência: could not find the module
[*] Teste 2: Enviando payload $L (Lazy)...
Status: 500, Evidência: in the react server manifest
[+] Resultado:
[+] Status: PROVAVELMENTE NÃO VULNERÁVEL
[+] Confiança: ALTA
[+] Evidência: could not find the module
[+] Detalhes: Servidor rejeitou payload com erro de segurança (corrigido)
======================================================================
A ferramenta procura pelos seguintes padrões de erro que indicam vulnerabilidade:
workers – Servidor alcançou loadServerReference (confiança ALTA)arraybuffer – Servidor alcançou o manipulador de tipo $L (confiança ALTA)cannot read properties of null (reading 'id') – Servidor alcançou loadServerReference com metadados nulos (confiança ALTA)entries – Server Action recebeu objeto desserializado em vez de FormData (confiança MÉDIA)temporary client reference – Servidor processou referência de tipo $T (confiança MÉDIA)Estes padrões de erro indicam que o servidor está corrigido:
could not find the modulein the react server manifestInvalid server referenceServer reference not foundUnexpected tokenis probably a bug in the react server components bundler| Produto | Versões Vulneráveis | Versões Corrigidas |
|---|---|---|
react-server-dom | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1 |
| Next.js | 14.3.0-canary, 15.x, 16.x (App Router) | 14.3.0-canary.88, 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 |
Outros frameworks que utilizam RSC também podem ser afetados:
Ação imediata necessária: Atualize para as versões corrigidas:
react-server-dom 19.0.1, 19.1.2 ou 19.2.1react-serverEsta ferramenta foi projetada para testes de segurança defensivos e avaliação de vulnerabilidades. Ela utiliza apenas payloads benignos que não executam código malicioso. No entanto:
Esta ferramenta é fornecida "como está", sem qualquer garantia. Os autores não são responsáveis por qualquer uso indevido ou danos causados por esta ferramenta. Sempre garanta que você possui a devida autorização antes de testar qualquer sistema.
| Argumento | Obrigatório | Padrão | Descrição |
|---|
--target | Sim | - | URL alvo para verificar (deve começar com http:// ou https://) |
--action-id | Não | c67c4e1a40fcc26b5e3c0d5d17f16786f4244989 | Action ID a ser usado no payload |
--verbose, -v | Não | False | Ativa saída detalhada mostrando os corpos das respostas |