
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 (). Los hosts vulnerables devuelven el resultado en el encabezado de respuesta como .
41*271 = 11111X-Action-Redirect/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)