
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
# Scanner un CVE spécifique uniquement
python scan.py --cve 55183 http://localhost:3000
python scan.py --cve 55184 http://localhost:3000
# Sortie verbeuse
python scan.py --verbose http://localhost:3000
# Timeout personnalisé
python scan.py --timeout 10 http://example.com
# Scanner plusieurs URLs depuis un fichier
python scan.py --file targets.txt
# Enregistrer les résultats en JSON
python scan.py --output results.json http://localhost:3000
# Désactiver la vérification SSL
python scan.py --no-verify https://self-signed.example.com
# Scanner tous les CVE avec sortie verbeuse et enregistrer les résultats
python scan.py --verbose --output scan-results.json http://localhost:3000
╔═══════════════════════════════════════════════════════════╗
║ Scanner de vulnérabilités des Composants Serveur React ║
║ CVE-2025-55183 & CVE-2025-55184 ║
╚═══════════════════════════════════════════════════════════╝
[*] Test de http://localhost:3000
[CVE-2025-55183] Exposition de code source
[!] VULNÉRABLE : Code source divulgué
Fonctions exposées : 3
Longueur du code : 1247 caractères
Contient des secrets : ✓ (clés API trouvées)
[CVE-2025-55184] Déni de service
[!] VULNÉRABLE : Attaque DoS réussie
Code d'état : 404
Content-Type : text/plain
Marqueurs trouvés : ✓
============================================================
RÉSUMÉ
============================================================
Total testé : 1
CVE-2025-55183 vulnérable : 1
CVE-2025-55184 vulnérable : 1
Les deux CVE vulnérables : 1
Non vulnérable : 0
Pour une analyse technique complète des deux vulnérabilités :
DOCUMENTATION.md - Documentation technique complète couvrant :
Les deux vulnérabilités sont corrigées dans les mêmes versions de correctif :
Mettre à jour React vers une version patchée :
npm install [email protected] [email protected]
# ou
npm install react@latest react-dom@latest
Mettre à jour Next.js (si applicable) :
npm install next@latest
Vérifier le correctif :
npm list react react-dom next
python scanner/scan.py http://localhost:3000
| Paquet | Versions vulnérables | Versions patchées |
|---|---|---|
| React | 19.0.0 - 19.2.2 | 19.0.3+, 19.1.4+, 19.2.3+ |
| Next.js 15.1.x | < 15.1.4 | 15.1.4+ |
| Next.js 15.0.x | < 15.0.4 | 15.0.4+ |
| Next.js 14.x | < 14.2.24 | 14.2.24+ |
# Exécuter le scanner pour confirmer les correctifs
cd scanner
python scan.py http://votre-app-patchee.com
# Sortie attendue :
# [+] CVE-2025-55183 : NON VULNÉRABLE
# [+] CVE-2025-55184 : NON VULNÉRABLE
Les contributions sont les bienvenues ! Domaines d'amélioration :
N'hésitez pas à soumettre une Pull Request.
Ce projet est sous licence MIT - voir le fichier LICENCE pour plus de détails.
Si vous trouvez ce dépôt utile pour votre recherche en sécurité, veuillez envisager de lui donner une étoile !