Laboratoire d'application bancaire vulnérable React2Shell
Application bancaire volontairement vulnérable pour CVE-2025-55182 (React) et CVE-2025-66478 (Next.js) afin d'apprendre, de détecter et d'exercer React2Shell en toute sécurité. Fonctionne avec React 19.0.0 et Next.js 15.0.3 non corrigés.
Vue d'ensemble
- SecureBank fictive construite avec Next.js App Router et Server Actions.
- Configuration par défaut, aucun code dangereux personnalisé, volontairement laissée sans correctif.
- Conçue pour étudier la désérialisation non sécurisée dans le protocole RSC « Flight » et pour pratiquer la détection/atténuation.
Démarrage rapide (Docker recommandé)
# 1. Démarrer le lab
docker-compose up -d
# 2. Ouvrir l'application
http://localhost:3000
# 3. Arrêter quand c'est terminé
docker-compose down
Identifiants de démo :
admin / admin123
johndoe / password123
janedoe / password456
Installation manuelle et mode développement
Exécution manuelle proche de la production :
npm install --legacy-peer-deps
npm run build
npm start
# Rendez-vous sur http://localhost:3000
Développement avec rechargement à chaud :
npm install --legacy-peer-deps
npm run dev
Remarques :
- Utilisez toujours --legacy-peer-deps en raison de l'épinglage de version intentionnel.
- Si le port 3000 est occupé, modifiez le mappage dans docker-compose.yml (par ex., 3001:3000) ou exportez PORT avant de démarrer.
Statut opérationnel rapide
- Conteneur : react2shell-vulnerable-bank
- Port : 3000 (attend une réponse HTTP 200 OK)
- Versions vulnérables : React 19.0.0, Next.js 15.0.3
Commandes utiles :
docker-compose ps
docker-compose logs -f vulnerable-bank
docker-compose restart
docker-compose build --no-cache && docker-compose up -d
Résumé des vulnérabilités (React2Shell)
- CVE-2025-55182 (React) et CVE-2025-66478 (Next.js) permettent une exécution de code à distance (RCE) non authentifiée via une désérialisation non sécurisée dans RSC.
Versions concernées :
- React : 19.0.0, 19.1.0, 19.1.1, 19.2.0
- Next.js : >=14.3.0-canary.77, toutes les versions 15.x, 16.x non corrigées
Réalité de l'exploitation
- Aucun exploit RCE publiquement connu pour une application par défaut ; react2shell.com dit « Surveillez cet espace ».
- Les PoC qui exposent manuellement child_process, vm ou fs ne sont pas représentatifs.
Références