
React2Shell Scanner (CVE-2025-55182 & CVE-2025-66478)
Una herramienta de detección no intrusiva para identificar implementaciones vulnerables de React Server Components (RSC) afectadas por CVE-2025-55182 (React) y CVE-2025-66478 (Next.js). Esta herramienta realiza detección activa mediante payloads benignos y no maliciosos para determinar si un servidor es vulnerable sin ejecutar ningún código dañino.
CVE-2025-55182 y CVE-2025-66478 son vulnerabilidades críticas de ejecución remota de código (RCE) no autenticada en el protocolo "Flight" de React Server Components. Estas vulnerabilidades afectan a:
react-server-dom 19.0.0, 19.1.0, 19.1.1 y 19.2.0Las vulnerabilidades se originan en una deserialización insegura en la lógica de manejo de payloads RSC, lo que permite que datos controlados por el atacante influyan en la ejecución del lado del servidor. Las configuraciones predeterminadas son vulnerables: una aplicación Next.js estándar creada con create-next-app puede ser explotada sin ningún cambio de código.
Esta herramienta realiza detección activa de vulnerabilidades mediante:
La herramienta utiliza tres métodos de detección:
loadServerReferencearrayBufferImportante: Esta herramienta NO ejecuta ningún código malicioso. Solo envía payloads benignos cuidadosamente elaborados, diseñados para provocar respuestas de error que revelen el estado de vulnerabilidad del servidor.
python react2shell_scanner.py --target https://example.com
python react2shell_scanner.py --target https://example.com --action-id YOUR_ACTION_ID
python react2shell_scanner.py --target https://example.com --verbose
[+] CVE-2025-55182 and CVE-2025-66478 Vulnerability Checker
[*] Target: https://example.com
[*] Action ID: c67c4e1a40fcc26b5e3c0d5d17f16786f4244989
[*] Test 1: Sending $F (Server Reference) payload...
Status: 500, Evidence: workers
[*] Test 2: Sending $L (Lazy) payload...
Status: 500, Evidence: arraybuffer
[+] Result:
[!] Status: LIKELY VULNERABLE
[!] Confidence: HIGH
[!] Evidence: workers
[!] Details: Server reached loadServerReference (Flight $F deserialization bypass)
[!] RECOMMENDATION: Upgrade to patched version
======================================================================
[+] CVE-2025-55182 and CVE-2025-66478 Vulnerability Checker
[*] Target: https://example.com
[*] Action ID: c67c4e1a40fcc26b5e3c0d5d17f16786f4244989
[*] Test 1: Sending $F (Server Reference) payload...
Status: 500, Evidence: could not find the module
[*] Test 2: Sending $L (Lazy) payload...
Status: 500, Evidence: in the react server manifest
[+] Result:
[+] Status: LIKELY NOT VULNERABLE
[+] Confidence: HIGH
[+] Evidence: could not find the module
[+] Details: Server rejected payload with security error (patched)
======================================================================
La herramienta busca estos patrones de error que indican vulnerabilidad:
workers - El servidor alcanzó loadServerReference (confianza HIGH)arraybuffer - El servidor alcanzó el manejador de tipo $L (confianza HIGH)cannot read properties of null (reading 'id') - El servidor alcanzó loadServerReference con metadatos nulos (confianza HIGH)entries - Server Action recibió un objeto deserializado en lugar de FormData (confianza MEDIUM)temporary client reference - El servidor procesó una referencia de tipo $T (confianza MEDIUM)Estos patrones de error indican que el servidor está parcheado:
could not find the modulein the react server manifestInvalid server referenceServer reference not foundUnexpected tokenis probably a bug in the react server components bundler| Producto | Versiones Vulnerables | Versiones Parcheadas |
|---|---|---|
react-server-dom | 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, 15.x, 16.x (App Router) | 14.3.0-canary.88, 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 |
Otros frameworks que utilizan RSC también pueden verse afectados:
Se requiere acción inmediata: Actualice a las versiones parcheadas:
react-server-dom 19.0.1, 19.1.2 o 19.2.1react-serverEsta herramienta está diseñada para pruebas de seguridad defensivas y evaluación de vulnerabilidades. Utiliza únicamente payloads benignos que no ejecutan código malicioso. Sin embargo:
Esta herramienta se proporciona "tal cual", sin garantía. Los autores no son responsables de ningún uso indebido o daño causado por esta herramienta. Asegúrese siempre de tener la autorización adecuada antes de probar cualquier sistema.
| Argumento | Requerido | Valor por Defecto | Descripción |
|---|
--target | Sí | - | URL objetivo a comprobar (debe comenzar con http:// o https://) |
--action-id | No | c67c4e1a40fcc26b5e3c0d5d17f16786f4244989 | ID de acción a utilizar en el payload |
--verbose, -v | No | False | Habilita la salida detallada mostrando los cuerpos de las respuestas |