
CVE-2025-55182 y CVE-2025-66478 Herramienta de detección para Next.js RSC RCE
Un escáner de vulnerabilidades de línea de comandos de alta fidelidad para detectar CVE-2025-55182 y CVE-2025-66478 (Ejecución Remota de Código) en aplicaciones Next.js que utilizan React Server Components (RSC).
Estas vulnerabilidades críticas afectan a aplicaciones Next.js que utilizan React Server Components, permitiendo la ejecución remota de código no autenticado a través de solicitudes POST multipart manipuladas.
Versiones afectadas:
Para detalles técnicos, consulte: Assetnote Research
El escáner envía una solicitud POST multipart manipulada que contiene un payload de prueba de concepto (PoC) 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.
| Modo | Descripción | Caso de Uso |
|---|---|---|
| PoC de RCE (por defecto) | Ejecuta una operación matemática inocua en el objetivo | Confirmación rápida de vulnerabilidad |
| Verificación Segura | Detección por canal lateral a través de respuestas de error | Cuando no se desea ejecución de código |
# Clonar el repositorio
git clone https://github.com/YOUR_USERNAME/react2shell-scanner.git
cd react2shell-scanner
# Instalar dependencias
pip install -r requirements.txt
# Escanear un solo objetivo
python scanner.py -u https://example.com
# Escanear múltiples objetivos desde un archivo
python scanner.py -l hosts.txt
# Escaneo multi-hilo con salida JSON
python scanner.py -l hosts.txt -t 20 -o results.json
# Escanear con encabezados personalizados
python scanner.py -u https://example.com -H "Authorization: Bearer token" -H "Cookie: session=abc"
# Modo de detección segura (sin ejecución de código)
python scanner.py -u https://example.com --safe-check
# Escanear objetivos Windows
python scanner.py -u https://example.com --windows
# Modo de evasión de WAF
python scanner.py -u https://example.com --waf-bypass
# Evasión de WAF específica para Vercel
python scanner.py -u https://example.com --vercel-waf-bypass
# Combinar opciones
python scanner.py -l hosts.txt -t 50 --waf-bypass --windows -o results.json
| Opción | Descripción |
|---|---|
-u, --url | URL única a verificar |
-l, --list | Archivo que contiene los hosts (uno por línea) |
-t, --threads | Número de hilos concurrentes (por defecto: 10) |
--timeout | Tiempo de espera de la solicitud en segundos (por defecto: 10) |
-o, --output | Archivo de salida para los resultados (formato JSON) |
--all-results | Guardar todos los resultados, no solo hosts vulnerables |
-v, --verbose | Incluir el cuerpo de la respuesta en la salida |
-q, --quiet | Solo mostrar hosts vulnerables |
--no-color | Deshabilitar la salida de terminal con color |
-k, --insecure | Deshabilitar la verificación del certificado SSL |
-H, --header | Encabezado personalizado (se puede usar varias veces) |
--safe-check | Usar detección segura por canal lateral en lugar de PoC de RCE |
--windows | Usar payload de Windows PowerShell en lugar de shell Unix |
--waf-bypass | Agregar datos basura para evadir la inspección de contenido del WAF |
--waf-bypass-size | Tamaño de los datos basura en KB (por defecto: 128) |
--vercel-waf-bypass | Usar variante de payload de evasión de WAF de Vercel |
╔═══════════════════════════════════════════════════════════════╗
║ react2shell-scanner ║
║ CVE-2025-55182 & CVE-2025-66478 Herramienta de Detección ║
╚═══════════════════════════════════════════════════════════════╝
┌─────────────────────────────────────────────────────────────┐
│ CONFIGURACIÓN DEL ESCANEO │
├─────────────────────────────────────────────────────────────┤
│ Objetivos: 5 │
│ Hilos: 10 │
│ Modo de Detección: PoC de RCE │
│ Tipo de Payload: Unix (Shell) │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ OBJETIVO: https://example.com │
├─────────────────────────────────────────────────────────────┤
│ Estado: 🟢 SEGURO │
│ Estado HTTP: 200 │
│ Tiempo de Respuesta: 245.32ms │
│ Servidor: Vercel │
└─────────────────────────────────────────────────────────────┘
═════════════════════════════════════════════════════════════════
RESUMEN DEL ESCANEO
═════════════════════════════════════════════════════════════════
Total de Objetivos: 5
Vulnerables: 0
Seguros: 5
Tiempo Total de Escaneo: 2.34s
═════════════════════════════════════════════════════════════════
Cuando se usa -o results.json, los resultados se guardan en formato JSON:
[
{
"url": "https://vulnerable-site.com",
"vulnerable": true,
"message": "RCE confirmado: X-Action-Redirect = /login?a=11111",
"status_code": 200,
"response_time": 342.15,
"server": "Next.js",
"payload_type": "rce-poc (Unix)",
"x_action_redirect": "/login?a=11111"
}
]
Esta herramienta está destinada únicamente para pruebas de seguridad autorizadas. Utilice este escáner solo contra sistemas para los que tenga permiso explícito. El acceso no autorizado a sistemas informáticos es ilegal.
Los autores no son responsables por el mal uso o daño causado por esta herramienta.
Licencia MIT - Consulte el archivo LICENSE para más detalles.
¡Las contribuciones son bienvenidas! No dude en enviar un Pull Request.
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)