
Escáner para detectar la presencia de CVE-2025-55182 y CVE-2025-66478 en servicios web objetivo.
Un escáner seguro y no invasivo para detectar vulnerabilidades de Ejecución Remota de Código en React Server Components (RSC) y Next.js (CVE-2025-55182 y CVE-2025-66478).
Este escáner ayuda a las organizaciones a identificar si sus servicios web son vulnerables a la vulnerabilidad React2Shell, que afecta a aplicaciones que utilizan React Server Components y Next.js. La vulnerabilidad permite a los atacantes lograr ejecución remota de código a través de datos de formulario multipart especialmente manipulados.
Importante: Este escáner utiliza únicamente métodos de detección de canal lateral seguros y no ejecuta código en los sistemas de destino.
Método de Detección Seguro
Opciones de Escaneo Flexibles
/_next, /api)Opciones de Salida
pip install -r requirements.txt
O instalar manualmente:
pip install requests tqdm urllib3
Escanear una sola URL:
python scanner.py -u https://example.com
Escanear múltiples hosts desde un archivo:
python scanner.py -l hosts.txt
Escanear con rutas personalizadas:
python scanner.py -u https://example.com --path /_next --path /api
Escanear con rutas desde archivo:
python scanner.py -u https://example.com --path-file paths.txt
Cabeceras personalizadas:
python scanner.py -u https://example.com -H "Authorization: Bearer token" -H "X-Custom: value"
Escaneo con múltiples hilos:
python scanner.py -l hosts.txt -t 20
Exportar resultados a JSON:
python scanner.py -l hosts.txt -o results.json
Exportar todos los resultados (incluyendo no vulnerables):
python scanner.py -l hosts.txt -o results.json --all-results
Modo verbose (mostrar detalles de todos los hosts):
python scanner.py -l hosts.txt -v
Modo silencioso (solo mostrar hosts vulnerables):
python scanner.py -l hosts.txt -q
Deshabilitar colores:
python scanner.py -l hosts.txt --no-color
Un host por línea. Las líneas que comienzan con # se ignoran.
https://example.com
http://test.example.org
another-site.com
# This is a comment
Una ruta por línea. Las rutas se prefijarán automáticamente con / si no está presente.
/_next
/api
/actions
# Comment lines are ignored
| Opción | Descripción |
|---|---|
-u, --url URL | URL única para escanear |
-l, --list FILE | Archivo que contiene la lista de hosts a escanear |
-t, --threads N | Número de hilos concurrentes (por defecto: 10) |
--timeout N | Tiempo de espera de petición en segundos (por defecto: 10) |
-o, --output FILE | Archivo de salida para resultados (formato JSON) |
--all-results | Guardar todos los resultados, no solo hosts vulnerables |
-k, --insecure | Deshabilitar verificación de certificado SSL |
-H, --header HEADER | Cabecera personalizada (se puede usar varias veces) |
-v, --verbose | Salida verbose (mostrar detalles de todos los hosts) |
-q, --quiet | Modo silencioso (solo mostrar hosts vulnerables) |
--no-color | Deshabilitar salida con colores |
--path PATH | Ruta personalizada para probar (se puede usar varias veces) |
--path-file FILE | Archivo que contiene la lista de rutas a probar |
El escáner utiliza un método de detección no invasivo que:
Mensajes de Error JavaScript
SyntaxError - Indica un análisis JSON incorrecto de los datos del formularioUnexpected token - Sugiere deserialización RSC vulnerableReferenceError / TypeError - Revela acceso inseguro a propiedades de objetosRespuestas de Error Específicas RSC
text/x-componentVary: RSC, Next-Router-State-Tree){"digest":"..."})$@, objetos de error)El escáner detecta tanto mensajes de error verbose (versiones antiguas) como respuestas de error RSC estructuradas (versiones nuevas), garantizando una cobertura completa en diferentes implementaciones de Next.js.
Importante: Este método NO ejecuta ningún código en el sistema de destino. Solo detecta si el sistema es vulnerable observando las respuestas de error.
python scanner.py -u https://myapp.com
# Create hosts file with all your domains
python scanner.py -l organization-hosts.txt -t 20 -o scan-results.json
# Create paths.txt with common Next.js endpoints
python scanner.py -l hosts.txt --path-file paths.txt -o results.json
python scanner.py -u https://myapp.com -H "Cookie: session=abc123" -H "Authorization: Bearer token"
El escáner marcará un host como VULNERABLE si detecta:
Cuando el escáner detecta una vulnerabilidad, significa:
0: No se encontraron vulnerabilidades1: Se detectaron una o más vulnerabilidades