
RSC/Next.js RCE (CVE-2025-55182 y CVE-2025-66478)
Una herramienta de línea de comandos para detectar CVE-2025-55182 y CVE-2025-66478 en aplicaciones Next.js que utilizan React Server Components.
Para obtener detalles técnicos sobre la vulnerabilidad y la metodología de detección, consulta nuestra publicación de blog: https://slcyber.io/research-center/high-fidelity-detection-mechanism-for-rsc-next-js-rce-cve-2025-55182-cve-2025-66478
Por defecto, el escáner envía una solicitud POST multipart manipulada que contiene un payload de prueba de concepto de RCE que ejecuta una operación matemática determinista (41*271 = 11111). Los hosts vulnerables devuelven el resultado en el encabezado de respuesta X-Action-Redirect como /login?a=11111.
El escáner prueba la ruta raíz (/) por defecto. Usa --path o --path-file para probar rutas personalizadas. Si no es vulnerable, sigue las redirecciones del mismo host (p. ej., de a ) y prueba el destino de la redirección. Las redirecciones de origen cruzado no se siguen.
//en/El indicador --safe-check utiliza un método de detección alternativo que se basa en indicadores de canal lateral (código de estado 500 con un digest de error específico) sin ejecutar código en el objetivo. Usa este modo cuando no se desee ejecutar el RCE.
El indicador --waf-bypass antepone datos basura aleatorios al cuerpo de la solicitud multipart. Esto puede ayudar a evadir la inspección de contenido del WAF que solo analiza la primera parte de los cuerpos de las solicitudes. El tamaño por defecto es de 128KB, configurable mediante --waf-bypass-size. Cuando el bypass de WAF está habilitado, el tiempo de espera se aumenta automáticamente a 20 segundos (a menos que se establezca explícitamente).
El indicador --vercel-waf-bypass utiliza una variante alternativa de payload diseñada específicamente para evadir las protecciones del WAF de Vercel. Esta usa una estructura multipart diferente con un campo de formulario adicional.
El indicador --windows cambia el payload de shell de Unix (echo $((41*271))) a PowerShell (powershell -c "41*271") para objetivos que ejecutan Windows.
pip install -r requirements.txt
Escanear un solo host:
python3 scanner.py -u https://example.com
Escanear una lista de hosts:
python3 scanner.py -l hosts.txt
Escanear con múltiples hilos y guardar resultados:
python3 scanner.py -l hosts.txt -t 20 -o results.json
Escanear con encabezados personalizados:
python3 scanner.py -u https://example.com -H "Authorization: Bearer token" -H "Cookie: session=abc"
Usar detección segura por canal lateral:
python3 scanner.py -u https://example.com --safe-check
Escanear objetivos Windows:
python3 scanner.py -u https://example.com --windows
Escanear con bypass de WAF:
python3 scanner.py -u https://example.com --waf-bypass
Escanear rutas personalizadas:
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)
El PoC de RCE fue divulgado originalmente por @maple3142 -- estamos increíblemente agradecidos por su trabajo al publicar un PoC funcional.
Esta herramienta se construyó originalmente como una forma segura de detectar el RCE. Esta funcionalidad sigue disponible mediante --safe-check, el modo de "detección segura".
Los resultados se imprimen en la terminal. Al usar -o, los hosts vulnerables se guardan en un archivo JSON que contiene la solicitud y la respuesta HTTP completas para su verificación.