
Laboratoire de recherche en sécurité pour CVE-2025-55183 et CVE-2025-55184 dans React Server Components
Un environnement de test de sécurité complet pour les vulnérabilités CVE-2025-55183 (Exposition de code source) et CVE-2025-55184 (Déni de service) dans les Composants Serveur React.
À USAGE UNIQUEMENT ÉDUCATIF ET POUR LA RECHERCHE EN SÉCURITÉ
Ce dépôt contient des applications volontairement vulnérables et des outils d'exploitation. Testez uniquement sur des systèmes qui vous appartiennent ou pour lesquels vous avez une autorisation écrite explicite. Les tests non autorisés sont illégaux et contraires à l'éthique.
Les deux vulnérabilités affectent les versions 19.0.0 à 19.2.2 des Composants Serveur React, divulguées le 11 décembre 2025.
| Propriété | Valeur |
|---|---|
| Sévérité | Moyenne (CVSS 5.3) |
| Type | Divulgation d'informations |
| Impact | Exposition du code source serveur |
| Authentification | Aucune requise |
Les attaquants peuvent forcer les arguments des Actions Serveur à divulguer du code source exclusivement serveur en appelant .toString() sur des objets de fonction serveur. Cela expose :
| Propriété | Valeur |
|---|---|
| Sévérité | Élevée (CVSS 7.5) |
| Type | Déni de service |
| Impact | Interruption totale du service |
| Authentification | Aucune requise |
Des charges utiles spécialement conçues créent une récursion infinie de promesses, provoquant le blocage indéfini du serveur Node.js. Cela entraîne :
| Aspect | CVE-2025-55183 | CVE-2025-55184 |
|---|---|---|
| Sévérité | Moyenne | Élevée |
| Type | Divulgation d'informations | Déni de service |
| Impact | Fuite de code source | Crash du serveur |
| Détection | La réponse contient du code | Timeout/blocage du serveur |
| Récupération | Immédiate | Nécessite un redémarrage |
TL;DR : L'application EST vulnérable (React 19.0.0), mais les protections modernes peuvent empêcher le crash réel dans cet environnement de démo.
CVE-2025-55184 est une vulnérabilité RÉELLE et CRITIQUE affectant React 19.0.0-19.2.2 dans les environnements de production. Cependant, démontrer avec succès le crash DoS dans une démo locale peut être difficile en raison de :
Même si l'exploit ne fait pas planter la démo, vous pouvez vérifier la vulnérabilité par :
cd vulnerable-app
npm list react react-dom
# Sortie :
[email protected] ← VERSION VULNÉRABLE
[email protected] ← VERSION VULNÉRABLE
Si vous voyez 19.0.0 à 19.2.2, l'application EST vulnérable.
cd scanner
python scan.py http://localhost:3000
Le scanner vérifie :
git clone https://github.com/StealthMoud/react-server-cve-lab.git
cd react-server-cve-lab
# Démarrer l'application (vulnérable aux deux CVE)
docker-compose up --build -d
# Application disponible à : http://localhost:3000
cd scanner
# Installer les dépendances
pip install -r requirements.txt
# Scanner les deux vulnérabilités
python scan.py http://localhost:3000
# Scanner uniquement CVE-2025-55183
python scan.py --cve 55183 http://localhost:3000
# Scanner uniquement CVE-2025-55184
python scan.py --cve 55184 http://localhost:3000
# Scanner plusieurs cibles
python scan.py --file targets.txt
react-server-cve-lab/
├── README.md # Ce fichier
├── DOCUMENTATION.md # Documentation technique complète
├── LICENSE
├── .gitignore
├── docker-compose.yml
│
├── vulnerable-app/ # Vulnérable aux DEUX CVE
│ ├── Dockerfile
│ ├── package.json
│ ├── next.config.js
│ └── app/
│ ├── layout.js
│ ├── page.js
│ └── actions.js # Actions serveur vulnérables
│
├── scanner/
│ ├── requirements.txt
│ ├── scan.py # Scanner pour les deux CVE
│ └── README.md
│
└── exploits/
├── exploit-55183.py # PoC pour CVE-2025-55183
├── exploit-55184.py # PoC pour CVE-2025-55184
└── README.md
L'application est une application Next.js exécutant React 19.0.0 avec des Actions Serveur, vulnérable aux deux CVE.
# Utiliser Docker Compose (recommandé)
docker-compose up --build -d
# Vérifier si elle tourne
curl http://localhost:3000
# Voir les logs
docker-compose logs -f
# Arrêter l'application
docker-compose down
cd vulnerable-app
npm install
npm run build
npm start
Le scanner unifié détecte à la fois CVE-2025-55183 et CVE-2025-55184.
cd scanner
# Scanner les deux CVE
python scan.py http://localhost:3000