
Escáner de vulnerabilidades pasivo para CVE-2025-55182 y CVE-2025-66478, detectando RCE no autenticado en React Server Components mediante huellas digitales del framework, análisis de versiones y sondeo de endpoints RSC.
Herramienta de Detección de Ejecución Remota de Código en el Protocolo Flight de React Server Components
Este escáner identifica sistemas potencialmente vulnerables a CVE-2025-55182 (React) y CVE-2025-66478 (Next.js), vulnerabilidades críticas de ejecución remota de código no autenticada en el protocolo "Flight" de React Server Components (RSC).
Factores Clave de Riesgo:
Una vulnerabilidad crítica de deserialización insegura en la implementación de Server Components de React. El protocolo "Flight" de RSC no valida correctamente la estructura y los tipos de las cargas útiles entrantes, lo que permite a atacantes inyectar datos maliciosos que influyen en la ejecución del lado del servidor.
| Paquete | Versiones Vulnerables | Versiones Parcheadas |
|---|---|---|
| react-server-dom-webpack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1 |
| react-server-dom-parcel | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1 |
| react-server-dom-turbopack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1 |
| Next.js | 14.3.0-canary.77+, 15.x, 16.0.0-16.0.6 | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 |
Atacante → POST HTTP elaborado → Endpoint RSC → Deserialización → RCE
El ataque solo requiere una solicitud HTTP especialmente diseñada a cualquier endpoint de Server Function. No se necesita autenticación y las configuraciones predeterminadas son vulnerables.
El escáner utiliza huella digital pasiva y sondeo de protocolo para identificar sistemas potencialmente vulnerables. NO intenta la explotación.
┌─────────────────────────────────────────────────────────────────┐
│ TUBERÍA DE DETECCIÓN │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 1. Detección de Framework │
│ ├── Cabeceras HTTP (X-Powered-By: Next.js) │
│ ├── Código fuente de página (__NEXT_DATA__, artefactos react)│
│ └── Manifiestos de compilación │
│ │
│ 2. Huella Digital de Versión │
│ ├── Cadenas de versión incrustadas en bundles JS │
│ ├── Patrones de versión de paquetes │
│ └── Análisis de manifiesto de compilación │
│ │
│ 3. Descubrimiento de Endpoints RSC │
│ ├── Enviar cabeceras RSC (RSC: 1, Accept: text/x-component)│
│ ├── Analizar Content-Type de respuesta │
│ └── Detectar marcadores del protocolo Flight en respuesta │
│ │
│ 4. Sondeo de Server Actions │
│ ├── Solicitud POST con carga útil Flight mínima │
│ ├── Verificar procesamiento de deserialización │
│ └── Identificar endpoints de acción │
│ │
│ 5. Evaluación de Vulnerabilidad │
│ ├── Correlacionar versión con rangos vulnerables conocidos │
│ ├── Ponderar presencia de endpoint RSC │
│ └── Generar veredicto con nivel de confianza │
│ │
└─────────────────────────────────────────────────────────────────┘
| Indicador | Método de Detección | Confianza |
|---|---|---|
X-Powered-By: Next.js | Inspección de cabecera HTTP | Alta |
Etiqueta script __NEXT_DATA__ | Análisis de fuente HTML | Alta |
Rutas de activos /_next/ | Análisis de fuente HTML | Media |
| Marcadores de hidratación de React | Análisis de fuente HTML | Media |
El protocolo Flight utiliza un formato de cable específico:
0:["$","div",null,{"children":"Hello"}]
1:["$","$L1",null,{}]
2:{"name":"ServerComponent"}
El escáner busca:
text/x-component{número}:{carga}$, $L, $F, $@, $undefinedBusca patrones de versión en:
/_next/static/chunks/)[email protected])requests# Clonar o descargar los archivos del escáner
# Instalar dependencias
pip install -r requirements.txt
# Verificar instalación
python3 cve-2025-55182-scanner.py --help
# Objetivo único
python3 cve-2025-55182-scanner.py -t https://example.com
# Con salida detallada
python3 cve-2025-55182-scanner.py -t https://example.com -v
# Crear archivo de objetivos (una URL por línea)
echo "https://app1.example.com" > targets.txt
echo "https://app2.example.com" >> targets.txt
# Escanear todos los objetivos
python3 cve-2025-55182-scanner.py -f targets.txt -o results.json
python3 cve-2025-55182-scanner.py -t https://example.com \
--timeout 15 \
--threads 10 \
--user-agent "SecurityAudit/1.0" \
-v \
-o scan_results.json
| Opción | Descripción | Predeterminado |
|---|---|---|
-t, --target | URL del objetivo único | - |
-f, --file | Archivo con lista de objetivos | - |
-o, --output | Archivo de salida JSON | - |
-v, --verbose | Mostrar evidencia detallada | Falso |
--timeout | Tiempo de espera de solicitud (segundos) | 10 |
--threads | Hilos concurrentes | 5 |
--verify-ssl | Verificar certificados SSL | Falso |
--user-agent | User-Agent personalizado | Mozilla/5.0... |
--no-banner | Suprimir banner | Falso |
Para un análisis más profundo del protocolo:
python3 rsc_analyzer.py https://example.com 2>/dev/null
Esto proporciona un análisis detallado del protocolo Flight y enumeración de componentes.