
Mécanisme de détection haute fidélité pour RSC/Next.js RCE (CVE-2025-55182 & CVE-2025-66478)
Un outil en ligne de commande pour détecter CVE-2025-55182 et CVE-2025-66478 dans les applications Next.js utilisant React Server Components.
Pour les détails techniques sur la vulnérabilité et la méthodologie de détection, consultez notre article de blog : https://slcyber.io/research-center/high-fidelity-detection-mechanism-for-rsc-next-js-rce-cve-2025-55182-cve-2025-66478
Par défaut, le scanner envoie une requête POST multipart spécialement conçue contenant une charge utile (payload) de preuve de concept RCE qui exécute une opération mathématique déterministe (41*271 = 11111). Les hôtes vulnérables renvoient le résultat dans l'en-tête de réponse X-Action-Redirect sous la forme /login?a=11111.
Le scanner teste le chemin racine (/) par défaut. Utilisez --path ou --path-file pour tester des chemins personnalisés. Si le site n'est pas vulnérable, il suit les redirections vers le même hôte (par ex., vers ) et teste la destination de la redirection. Les redirections cross-origin ne sont pas suivies.
//en/L'option --safe-check utilise une méthode de détection alternative reposant sur des indicateurs par canal auxiliaire (code de statut 500 avec un error digest spécifique) sans exécuter de code sur la cible. Utilisez ce mode lorsque l'exécution RCE n'est pas souhaitée.
L'option --waf-bypass ajoute des données aléatoires au début du corps de la requête multipart. Cela peut aider à contourner l'inspection du contenu WAF qui n'analyse que la première partie du corps des requêtes. La taille par défaut est de 128 Ko, configurable via --waf-bypass-size. Lorsque le contournement WAF est activé, le délai d'attente (timeout) est automatiquement augmenté à 20 secondes (sauf s'il est défini explicitement).
L'option --vercel-waf-bypass utilise une variante alternative de charge utile spécialement conçue pour contourner les protections WAF de Vercel. Elle utilise une structure multipart différente avec un champ de formulaire supplémentaire.
L'option --windows bascule la charge utile du shell Unix (echo $((41*271))) vers PowerShell (powershell -c "41*271") pour les cibles fonctionnant sous Windows.
pip install -r requirements.txt
Analyser un seul hôte :
python3 scanner.py -u https://example.com
Analyser une liste d'hôtes :
python3 scanner.py -l hosts.txt
Analyser avec plusieurs threads et enregistrer les résultats :
python3 scanner.py -l hosts.txt -t 20 -o results.json
Analyser avec des en-têtes personnalisés :
python3 scanner.py -u https://example.com -H "Authorization: Bearer token" -H "Cookie: session=abc"
Utiliser la détection sûre par canal auxiliaire :
python3 scanner.py -u https://example.com --safe-check
Analyser des cibles Windows :
python3 scanner.py -u https://example.com --windows
Analyser avec contournement WAF :
python3 scanner.py -u https://example.com --waf-bypass
Analyser des chemins personnalisés :
python3 scanner.py -u https://example.com --path /_next
python3 scanner.py -u https://example.com --path /_next --path /api
python3 scanner.py -u https://example.com --path-file paths.txt
-u, --url Single URL to check
-l, --list File containing hosts (one per line)
-t, --threads Number of concurrent threads (default: 10)
--timeout Request timeout in seconds (default: 10)
-o, --output Output file for results (JSON)
--all-results Save all results, not just vulnerable hosts
-k, --insecure Disable SSL certificate verification
-H, --header Custom header (can be used multiple times)
-v, --verbose Show response details for vulnerable hosts
-q, --quiet Only output vulnerable hosts
--no-color Disable colored output
--safe-check Use safe side-channel detection instead of RCE PoC
--windows Use Windows PowerShell payload instead of Unix shell
--waf-bypass Add junk data to bypass WAF content inspection
--waf-bypass-size Size of junk data in KB (default: 128)
--path Custom path to test (can be used multiple times)
--path-file File containing paths to test (one per line)
La preuve de concept RCE a été initialement divulguée par @maple3142 — nous lui sommes incroyablement reconnaissants pour son travail de publication d'un PoC fonctionnel.
Cet outil a initialement été conçu comme un moyen sûr de détecter la RCE. Cette fonctionnalité est toujours disponible via --safe-check, le mode « détection sûre ».
Les résultats sont affichés dans le terminal. Lorsque -o est utilisé, les hôtes vulnérables sont enregistrés dans un fichier JSON contenant la requête et la réponse HTTP complètes pour vérification.