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
CVE-2025-55182 — Pesquisa avançada de segurança sobre o CVE-2025-55182 (React2Shell). Apresenta um framework de exploração com 6 cenários de impacto funcionais (de RCE a Exfiltração de Segredos), um shell reverso interativo e um laboratório completo. Peça de portfólio demonstrando análise aprofundada de Prototype Pollution e Insecure Deserialization em React Server Components. | Kitploit
Ferramentas/GitHubGitHub/devianntsec/cve-2025-55182
Frameworks de ExploraçãoAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebPós-ExploraçãoTestes de PenetraçãoPapers e PesquisaAprendizado e EducaçãoFerramenta de Acesso Remoto

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 →

Sobre

Pesquisa avançada de segurança sobre o CVE-2025-55182 (React2Shell). Apresenta um framework de exploração com 6 cenários de impacto funcionais (de RCE a Exfiltração de Segredos), um shell reverso interativo e um laboratório completo. Peça de portfólio demonstrando análise aprofundada de Prototype Pollution e Insecure Deserialization em React Server Components.

Desenvolvimento de Payloads
Labs e Prática
GitHubdevianntsec/cve-2025-55182

CVE-2025-55182

Ver Repositório
1há 3 mesesAinda não revisado
Compartilhar

CVE-2025-55182 — React2Shell: Exploit Avançado & Pesquisa de Dissertação de Mestrado

Platform Language License: MIT Research CVSS

Desserialização de Dados Não Confiáveis + Poluição de Protótipo em React Server Components
Execução Remota de Código Não Autenticada via Next.js Server Actions
Afetado: React 19.0.0 - 19.2.0 · Correção: React 19.0.1 / 19.1.2 / 19.2.1 (3 de dezembro de 2025)


Demonstração do exploit avançado — comandos básicos de RCE, shell interativo e múltiplos vetores de ataque contra uma aplicação Next.js vulnerável

Descrição

Este repositório contém minha pesquisa de Dissertação de Mestrado sobre CVE-2025-55182, uma vulnerabilidade Crítica (CVSS v3.1: 10.0) de Execução Remota de Código em React Server Components.

A vulnerabilidade origina-se de um mecanismo inseguro de desserialização no protocolo React Flight. Ao processar Server Actions, o Next.js desserializa payloads multipart recebidos sem validação adequada. Um atacante pode criar um payload malicioso que polui a cadeia de protótipos e injeta JavaScript arbitrário, o qual é executado no servidor por meio do construtor Function (e subsequentemente via child_process.execSync()).

Nota sobre CVE-2025-66478: A Vercel emitiu um CVE paralelo para rastrear o impacto específico no Next.js desta mesma vulnerabilidade. Como o Next.js empacota o React de forma vendored, muitos scanners de dependências não a detectam automaticamente como vulnerável. O Banco de Dados Nacional de Vulnerabilidades dos EUA (NVD) rejeitou oficialmente o CVE-2025-66478 como duplicado do CVE-2025-55182, embora ele continue sendo referenciado no advisory de segurança da própria Vercel.

Vulnerabilidades subsequentes: A equipe do React divulgou posteriormente dois problemas adicionais presentes nas versões iniciais da correção (19.0.1, 19.1.2, 19.2.1): CVE-2025-55184 (Negação de Serviço, CVSS 7.5) e CVE-2025-55183 (Exposição de Código-Fonte, CVSS 5.3). Os usuários devem atualizar para 19.0.2, 19.1.3 ou 19.2.2 para resolver os três.

Minha Contribuição


Estrutura do Repositório

root@kitploit:~
CVE-2025-55182/
├── README.md                        # This file
├── LICENSE                          # MIT License
│
├── exploit/
│   ├── exploit-explanation.md       # Exploit usage documentation
│   └── react2shell.py               # Main exploit — 4 attack modules + interactive shell
│
├── vulnerable-app/                  # Vulnerable Next.js application
│   ├── README.md                    # Original vulnapp credits
│   ├── package.json                 # React 19.0.0 (vulnerable)
│   ├── app/                         # Application source code
│   ├── curl_id.sh                   # Original exploit script (by zack0x01)
│   └── scripts/
│       └── restore.sh               # Restoration script (my contribution)
│
└── docs/
    ├── screenshots/                 # Exploitation demonstrations
    │   ├── 01-app-initial.png
    │   ├── 02-rce-basic.png
    │   ├── 03-interactive-shell.png
    │   ├── 04-no-payload.png
    │   ├── 05-delete-result.png
    │   ├── 06-deface.png
    │   ├── 07-shutdown-servers.png
    │   ├── 08-restore-from-script.png
    │   └── 09-restore-from-interactive-shell.png
    │
    └── analysis/
        ├── 01-root-cause.md         # Vulnerability root cause analysis
        ├── 02-payload-breakdown.md  # Payload structure and execution flow
        └── 03-timeline.md           # CVE timeline

Início Rápido

Pré-requisitos

  • Node.js 18+ e npm
  • Python 3.9+
  • Aplicação Next.js vulnerável (fornecida em vulnerable-app/)
  • VM isolada recomendada para testes

Passo 1 — Iniciar a aplicação vulnerável

root@kitploit:~
cd vulnerable-app
npm install --legacy-peer-deps
npm run dev
# App available at http://localhost:3000

Passo 2 — Executar o exploit

root@kitploit:~
cd ../exploit

# Check if target is vulnerable
python3 react2shell.py -u http://localhost:3000 --check

# Execute single command
python3 react2shell.py -u http://localhost:3000 -c "whoami"

# Interactive shell mode
python3 react2shell.py -u http://localhost:3000 -i

Módulos de Ataque


Visão Geral Técnica

Causa Raiz da Vulnerabilidade

React Server Components usam um mecanismo customizado de serialização/desserialização (o protocolo "Flight") para enviar dados de componentes do servidor para o cliente. Ao processar server actions, o servidor desserializa os payloads recebidos sem validação adequada.

A falha central é a confiança comportamental: o desserializador verifica typeof obj.then === 'function' para identificar Promises, sem verificar se a propriedade pertence diretamente ao objeto. Isso permite que um atacante envenene Object.prototype.then, fazendo com que todo objeto comum pareça um thenable.

Um atacante pode criar um payload malicioso que:

  1. Polui a cadeia de protótipos usando __proto__:then
  2. Redireciona a resolução para o construtor Function via $1:constructor:constructor
  3. Executa JavaScript arbitrário via new Function(_prefix)
  4. Executa comandos do sistema via process.mainModule.require('child_process').execSync()
  5. Exfiltra a saída por meio do cabeçalho de resposta HTTP X-Action-Redirect
root@kitploit:~
User-mode (unauthenticated)
  │
  ├─ POST / (Next.js Server Action endpoint)
  │    ├─ Headers: Next-Action: x
  │    └─ Multipart body with malicious JSON
  │
  └─ React Flight deserializer processes payload
       └─ Prototype pollution via __proto__:then
            └─ Function constructor reached via $1:constructor:constructor
                 └─ new Function(_prefix) executes attacker's JavaScript
                      └─ execSync() runs system command
                           └─ Output embedded in NEXT_REDIRECT error
                                └─ Next.js converts to X-Action-Redirect header

Esclarecimento de Escopo

A vulnerabilidade afeta qualquer aplicação Next.js que use o App Router com React Server Components — a configuração padrão desde o Next.js 14. Server Actions definidas explicitamente não são necessárias; a mera presença dos pacotes RSC afetados é suficiente.

Por Que Isso Importa

Esta vulnerabilidade permite que um atacante não autenticado:

  • Execute comandos arbitrários no servidor
  • Roube variáveis de ambiente e credenciais
  • Modifique ou exclua dados da aplicação
  • Use o servidor como ponto de pivô para ataques adicionais

Cadeia de Ataque

root@kitploit:~
1. [ANY]    Send crafted multipart POST to any Server Action endpoint
2. [SERVER] React deserializer processes malicious JSON
3. [SERVER] Prototype pollution poisons Object.prototype.then
4. [SERVER] Plain object treated as thenable; Function constructor reached
5. [SERVER] new Function(_prefix) executes attacker's arbitrary JavaScript
6. [SERVER] execSync() runs system command; output captured
7. [SERVER] Output embedded in NEXT_REDIRECT error digest
8. [SERVER] Next.js returns X-Action-Redirect header with URL-encoded output
9. [ATTACKER] Extract and URL-decode command result from header

Testes Empíricos

Todos os testes foram conduzidos em uma VM isolada do VirtualBox executando Kali Linux 2026.1 com Next.js 15.0.0 e React 19.0.0, sem exposição à rede.

Determinismo: Diferente de exploits probabilísticos (ex.: heap spray), o CVE-2025-55182 é completamente determinístico — qualquer requisição HTTP POST formatada corretamente produz RCE com probabilidade 1 em qualquer sistema não corrigido executando React 19.0.0–19.2.0 com React Server Components habilitados.


Documentação Técnica

DocumentoDescrição
Análise da Causa RaizFalha de desserialização e poluição de protótipo no React Flight

Contexto Acadêmico

Esta pesquisa faz parte da minha Dissertação de Mestrado em Cibersegurança (UCAM — Campus Internacional de Ciberseguridad), analisando vulnerabilidades N-Day em múltiplos ambientes.

Este CVE representa o vetor de framework JavaScript moderno dentro da dissertação, demonstrando:

  • Vulnerabilidades de desserialização em React Server Components
  • Poluição de protótipo como primitiva de RCE
  • Exploração de Next.js Server Actions
  • Técnicas de pós-exploração em ambientes Node.js
  • Metodologias seguras de restauração de laboratório

Palavras-chave: RCE · Prototype Pollution · Deserialization · React · Next.js · Server Actions · CVE-2025-55182


Autor

Annais Molina (devianntsec) — Pesquisador de Segurança | Mestrado em Cibersegurança (UCAM)

GitHub LinkedIn Blog Email


Agradecimentos

  • @zack0x01 — Aplicação vulnerável original
  • Lachlan Davidson (Carapace) — Descoberta original da vulnerabilidade e divulgação responsável
  • AssetNote — Ferramenta de detecção react2shell-scanner
  • Moritz Sanft — Primeiro PoC público funcional (~30h após a divulgação)
  • maple3142 — PoC público do relator original (5 de dezembro de 2025)

Licença

Licença MIT — consulte LICENSE


Aviso Legal

Este repositório é fornecido apenas para fins educacionais e de pesquisa em segurança, como parte de uma Dissertação de Mestrado acadêmica. Todos os testes foram realizados em máquinas virtuais isoladas, sem exposição à rede. Use apenas em sistemas que você possua ou para os quais tenha autorização escrita explícita para testar. O uso não autorizado contra sistemas é ilegal e pode resultar em processo criminal.

© 2026 Annais Molina · Dissertação de Mestrado em Cibersegurança
UCAM Universidad Católica San Antonio de Murcia · Campus Internacional de Ciberseguridad
Baixar ferramenta
AspectoDescrição
Quatro módulos de ataqueExcluir projetos, desfigurar site, roubar variáveis de ambiente, desligar servidores
Shell interativoShell persistente com comandos especiais e capacidades de restauração
Exfiltração estávelLeitura linha por linha para contornar as limitações de tamanho do cabeçalho HTTP
Script de restauraçãoRestauração segura do laboratório após ataques
Documentação acadêmicaCausa raiz, detalhamento do payload e cronologia da vulnerabilidade
MóduloComandoDescriçãoImpacto
Excluir Projetos--delete-projectsExclui todos os projetos do painelDestruição de dados
Deface--deface "message"Substitui a página principalDesfiguração
Roubar Ambiente--steal-envRouba variáveis de ambienteExfiltração
Desligar Servidores--shutdown-serversDesliga todos os servidoresNegação de Serviço
Módulo de AtaqueResultadoObservações
Execução de comandos✅ RCE confirmadowhoami, id, uname -a funcionam de forma confiável
Excluir projetos✅ Painel modificadoProjetos removidos, estrutura do React preservada
Deface✅ Site desfiguradoMensagem personalizada exibida
Roubar ambiente✅ Variáveis de ambiente extraídasSalvas em stolen_env.txt
Desligar servidores✅ Todos os servidores exibidos como paradosUI atualizada, React funcional
Shell interativo✅ Shell persistenteComandos especiais disponíveis
Restauração✅ Estado original restauradoVia script restore.sh
Detalhamento do Payload
Análise linha por linha da estrutura JSON maliciosa
Cronologia do CVECronologia de descoberta, divulgação e correção