Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2025-55182-React2Shell-Async-Scanner — Scanner RCE assíncrono para CVE-2025-55182 / CVE-2025-66478 — poluição de protótipo → execução de código via React Server Actions. | Kitploit
Ferramentas/GitHubGitHub/inferiorak/cve-2025-55182-react2shell-async-scanner
ReconhecimentoScanners de VulnerabilidadesAnálise Dinâmica (Sandboxing)Análise de CódigoExploraçãoExploração de Aplicações WebColeta de InformaçõesCTFTestes de Penetração

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Aprendizado e Educação
Desenvolvimento de Payloads
GitHubinferiorak/cve-2025-55182-react2shell-async-scanner

CVE-2025-55182-React2Shell-Async-Scanner

Scanner RCE assíncrono para CVE-2025-55182 / CVE-2025-66478 — poluição de protótipo → execução de código via React Server Actions.

Ver Repositório
3114há 6 mesesAinda não revisado
Compartilhar

⚡ React2Shell

CVE-2025-55182 / CVE-2025-66478 - Scanner assíncrono de RCE

Python CVE CVE License Author Visitors

Poluição de protótipo → Execução remota de código via React Server Actions

Detecção assíncrona de canário baseada em saída e na versão - sem suposições cegas


[!WARNING] Apenas para pesquisa de segurança autorizada e testes de penetração. Escanear sistemas sem permissão escrita explícita é ilegal. O autor não assume nenhuma responsabilidade pelo uso indevido desta ferramenta.


Índice

  • Visão Geral da Vulnerabilidade
  • Versões Afetadas
  • Como Funciona a Detecção
  • Instalação
  • Uso
  • Referência de Opções
  • Saída e Veredictos
  • Modo Navegador
  • Pipeline de Detecção de Versão

Visão Geral da Vulnerabilidade

React Server Actions passam dados de ação como dados de formulário multipart diretamente para um contexto de execução no servidor. Devido à sanitização insuficiente de poluição de protótipo nas versões afetadas de react-server-dom-webpack, um invasor pode:

  1. Injetar um payload multipart elaborado que polui Object.prototype
  2. Sobrescrever _response._prefix no objeto de resposta interno
  3. Forçar o servidor a executar comandos shell arbitrários via:
    process.mainModule.require('child_process').execSync(cmd)
    

Isso concede Execução Remota de Código não autenticada em qualquer aplicação Next.js publicamente acessível que use React Server Actions com uma versão afetada do React.

CVE-2025-55182 - Ampla: afeta pacotes React 19 (react-server-dom-webpack, react-server-dom-parcel, react-server-dom-turbopack)
CVE-2025-66478 - Estrita: caminho de exploração específico do Next.js pelo endpoint de Server Action /


Versões Afetadas

ComponenteVulnerávelCorrigido
React react-server-dom-*19.0.0, 19.1.0, 19.1.1, 19.2.019.0.1, 19.1.2, 19.2.1+
Next.js 16.x16.0.0 – 16.0.616.0.7+
Next.js 15.x15.0.0-15.0.4, 15.1.0-15.1.8, 15.2.0-15.2.5, 15.3.0-15.3.5, 15.4.0-15.4.7, 15.5.0-15.5.615.0.5+, 15.1.9+, 15.2.6+, 15.3.6+, 15.4.8+, 15.5.7+
Next.js 14.x14.3.0-canary.77+ apenas builds canaryTodos os 14.x estáveis - NÃO afetados
Next.js 13.x-NÃO afetado

Como Funciona a Detecção

Este scanner usa verificação de canário baseada em saída - o método mais confiável para confirmar execução real de código com zero falsos positivos:

1.  POST /  with Next-Action header + multipart prototype-pollution payload
2.  Payload executes:  echo <random_canary>
3.  Vulnerable server throws NEXT_REDIRECT with base64(canary) in the URL
4.  Response header:   X-Action-Redirect: /login?a=<base64(canary)>
5.  Scanner decodes base64 → matches canary → RCE confirmed ✓

allow_redirects=False é fundamental - a confirmação está no cabeçalho, e não no destino do redirecionamento.


Instalação

git clone https://github.com/InferiorAK/React2Shell
cd React2Shell

pip install -r requirements.txt

# Required only if using --browser mode for improved version detection:
playwright install chromium
playwright install-deps chromium

Requisitos: Python 3.10+


Uso

Scanner CVE-2025-55182 - Amplo (React + Next.js)

# Single target
python3 CVE-2025-55182_scanner.py -u https://target.com

# Scan a list of URLs
python3 CVE-2025-55182_scanner.py -f urls.txt

# Quiet mode - only print RCE / Vulnerable results
python3 CVE-2025-55182_scanner.py -f urls.txt -q

# Browser mode - headless Chromium for accurate version detection
python3 CVE-2025-55182_scanner.py -f urls.txt -b

# Full options - recommended for large-scale scanning
python3 CVE-2025-55182_scanner.py -f urls.txt -b -q -c 3 -t 20

Referência de Opções

Scanner CVE-2025-55182

FlagForma longaPadrãoDescrição
-u--url-URL de um único alvo
-f--file-Arquivo contendo uma URL por linha
-o--outputoutputs/vuln.txtArquivo de saída para alvos vulneráveis
-U--unknown-outputoutputs/unknown.txtArquivo de saída para alvos com versão desconhecida
-c--concurrency5Conexões HTTP simultâneas
-t--timeout15Timeout por requisição (segundos)
-q--quietoffImprimir apenas linhas RCE / VULNERABLE
-b--browseroffFallback de detecção de versão com Chromium headless via Playwright

Saída e Veredictos

Cada alvo escaneado recebe um dos seguintes veredictos:

VeredictoCorSignificado
RCE🔴 VermelhoCanário confirmado em X-Action-Redirect - execução remota de código comprovada
VULNERABLE🟠 LaranjaVersão na faixa vulnerável; o payload de RCE não ecoou de volta (WAF / configuração corrigida / endpoint errado)
Unknown🟡 AmareloNext.js confirmado, mas a versão não pôde ser detectada - tentativa de RCE mesmo assim; salvo em outputs/unknown.txt para nova tentativa no modo navegador
Not Vulnerable🟢 VerdeVersão confirmada como corrigida, ou RCE retornou explicitamente seguro
Skipped⚪ BrancoVersão confirmadamente corrigida ou site não-Next.js - nenhum PoC tentado
Error⚪ BrancoHost inacessível ou falha de conexão

Arquivos de saída (salvos na pasta outputs/, criada automaticamente):

  • outputs/vuln.txt — resultados RCE e VULNERABLE (adicionados a cada execução)
  • outputs/unknown.txt — alvos com versão Unknown; tente novamente com -b para detecção precisa de versão

Modo Navegador

Por que a versão aparece como unknown em mais de 90% dos sites?

Next.js 13+ moderno que usa a arquitetura App Router nunca incorpora a versão do framework no HTML estático. A versão só existe em window.next.version depois que o JavaScript é executado em um contexto real de navegador.

Sem --browser:

  • A detecção de versão depende de cabeçalhos HTTP, __NEXT_DATA__, scripts inline e arquivos de chunk com hash
  • Sites com App Router quase sempre retornam unknown - a filtragem baseada em versão é ignorada

Com --browser (-b):

  • O Playwright inicia Chromium headless
  • O JavaScript da página é totalmente executado
  • O scanner lê window.next.version diretamente do DOM ativo
  • A precisão da versão vai de ~10% → quase 100% em sites Next.js modernos
# Recommended with browser mode - reduce concurrency (browser pages are resource-heavy)
python3 CVE-2025-55182_scanner.py -f urls.txt -b -c 3

Pipeline de Detecção de Versão

O scanner executa até 7 estágios, parando assim que uma versão é encontrada:

Baixar ferramenta