Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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
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
31há 5 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:
    root@kitploit:~
    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


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:

root@kitploit:~
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

root@kitploit:~
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)

root@kitploit:~
# 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


Saída e Veredictos

Cada alvo escaneado recebe um dos seguintes veredictos:

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
root@kitploit:~
# 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:

root@kitploit:~
Stage 1 │ HTTP Response Headers
        │  X-Powered-By: Next.js X.Y.Z
        │  x-nextjs-*, x-next-version

Stage 2 │ Inline <script> Blocks (per-block scan)
        │  window.next = { version: "X.Y.Z", ... }
        │  version:"X.Y.Z", router: ...      ← minified bundle adjacent-key pattern
        │  "nextVersion":"X.Y.Z"
        │  Next.js vX.Y.Z                    ← plain text in meta / HTML comments
        │  __NEXT_VERSION__ = "X.Y.Z"

Stage 3 │ __NEXT_DATA__ JSON Blob
        │  Pages Router only - "version":"X.Y.Z" safe in this context

Stage 4 │ Hashed Chunk URLs (extracted from <script src>)
        │  /_next/static/chunks/*, /_next/static/app/*, /_next/static/runtime/*
        │  Fetches up to 12 real bundle files, scans for version strings

Stage 5 │ Fixed-name Fallback Chunks
        │  main.js, framework.js, webpack.js, _app.js, pages/_app.js

Stage 6 │ /package.json endpoint
        │  Dev mode / misconfigured servers expose this directly

Stage 7 │ Playwright Headless Browser  [--browser / -b only]
        │  Evaluates window.next.version after full JS execution
        │  Only triggered when stages 1–6 return "unknown"

Aviso Legal

Esta ferramenta é publicada apenas para fins educacionais e de pesquisa de segurança autorizada.
O autor, InferiorAK, não é responsável por qualquer dano causado pelo uso indevido.
Sempre obtenha permissão por escrito antes de testar qualquer sistema que você não possua.


Feito por InferiorAK


Meus Links

Github Facebook Messenger Twitter YouTube

Baixar ferramenta
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
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
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
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