Exploit de preuve de concept pour CVE-2025-55182, une RCE critique non authentifiée dans React Server Components. Comprend un exploit Python automatisé, une analyse technique, des règles de détection et une configuration d'environnement de laboratoire pour des tests de sécurité autorisés.
Une preuve de concept exhaustive et une ressource éducative pour CVE-2025-55182, une vulnérabilité critique d'exécution de code à distance affectant les composants serveur React avec un score CVSS de 10.0.
À DES FINS ÉDUCATIVES ET DE TEST AUTORISÉ UNIQUEMENT
Cet outil est fourni à des fins éducatives et de test de sécurité autorisé uniquement. L'accès non autorisé à des systèmes informatiques est illégal en vertu de diverses lois, notamment le Computer Fraud and Abuse Act (CFAA) aux États-Unis et des législations similaires dans le monde entier.
Vous devez :
L'auteur et les contributeurs :
En utilisant cet outil, vous reconnaissez avoir compris et accepté ces conditions.
React2Shell est une vulnérabilité critique découverte en décembre 2025 qui affecte les composants serveur React (RSC) et les frameworks qui les implémentent, en particulier Next.js. La vulnérabilité permet l'exécution de code à distance non authentifiée via une seule requête HTTP spécialement conçue.
Ce dépôt contient :
| Champ | Détails |
|---|---|
| Identifiant CVE | CVE-2025-55182 |
| Score CVSS | 10.0 (Critique) |
| Vecteur d'attaque | Réseau |
| Complexité de l'attaque | Faible |
| Privilèges requis | Aucun |
| Interaction utilisateur | Aucune |
| Impact | Compromission complète du système (RCE) |
| Date de divulgation | Décembre 2025 |
create-next-app sont exploitablesVersions vulnérables :
react-server-dom-webpack : 19.0.0, 19.1.0, 19.1.1, 19.2.0react-server-dom-parcel : 19.0.0, 19.1.0, 19.1.1, 19.2.0react-server-dom-turbopack : 19.0.0, 19.1.0, 19.1.1, 19.2.0Versions corrigées :
Versions vulnérables :
Versions corrigées :
La vulnérabilité existe dans la fonction requireModule au sein de la logique de désérialisation des composants serveur React :
function requireModule(metadata) {
var moduleExports = __webpack_require__(metadata[0]);
return moduleExports[metadata[2]]; // LIGNE VULNÉRABLE - Parcours de la chaîne de prototypes
}
La faille permet aux attaquants de parcourir la chaîne de prototypes de JavaScript via le protocole React Flight, accédant au constructeur Function via des propriétés comme constructor.constructor, permettant l'exécution de code arbitraire.
__proto__ pour créer une structure auto-référentielleconstructor.constructor pour accéder à Function()child_process.execSync()┌─────────────────────────────────────────────────────────────┐
│ L'attaquant envoie multipart/form-data avec en-tête Next-Action │
└──────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Le serveur désérialise la charge utile via le protocole React Flight │
└──────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Traitement de l'objet bloc factice avec pollution __proto__ │
└──────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Le gestionnaire Blob invoque _formData.get(_prefix + id) │
└──────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Résout en Function("malicious_code") │
└──────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Code arbitraire exécuté avec les privilèges du processus Node.js │
└─────────────────────────────────────────────────────────────┘
requests# Cloner le dépôt
git clone https://github.com/yourusername/react2shell-poc.git
cd react2shell-poc
# Installer les dépendances
pip install -r requirements.txt
# Rendre le script exécutable (Linux/macOS)
chmod +x react2shell.py
requests>=2.31.0
urllib3>=2.0.0
python3 react2shell.py
╔═══════════════════════════════════════════════════════════╗
║ React2Shell (CVE-2025-55182) PoC ║
║ CVSS 10.0 - RCE Critique ║
║ ║
║ Affecté : React 19.0.0, 19.1.0, 19.1.1, 19.2.0 ║
║ Next.js ≥14.3.0-canary.77, 15.x, 16.x ║
║ ║
║ Cerberus Secure - Usage en laboratoire uniquement ║
╚═══════════════════════════════════════════════════════════╝