
Detección del vector de explotación de React Server Actions – CVE-2025-55182 / CVE-2025-66478
Detección para CVE-2025-55182 / CVE-2025-66478 – Componentes del Servidor React / Next.js
Este repositorio contiene un script del Motor de Scripting de Nmap (NSE) escrito en Lua diseñado para detectar de forma segura la vulnerabilidad crítica conocida como React2Shell, que afecta a las implementaciones de Componentes del Servidor React (RSC) y Acciones del Servidor React (RSA), incluyendo muchos despliegues de Next.js.
El método de detección utiliza una técnica de canal lateral no intrusiva basada en el comportamiento de errores del servidor al manejar cargas útiles malformadas de React Flight. No se realiza explotación, ejecución de código ni operaciones inseguras.
React2Shell (CVE-2025-55182 / CVE-2025-66478) es un fallo de diseño crítico en los pipelines de Componentes del Servidor React que puede permitir:
La vulnerabilidad se desencadena cuando React intenta resolver referencias de React Flight manipuladas como:
["$1:aa:aa"]
En servidores vulnerables, esto produce un error 500 que contiene el patrón característico:
E{"digest":"..."}
Este script detecta ese patrón sin intentar ninguna operación dañina.
✔ Detección segura y pasiva (sin explotación, sin intentos de RCE)
✔ Detecta la firma de alta fidelidad del fallo de React Flight
✔ Funciona en HTTP y HTTPS
✔ Rutas y tiempos de espera configurables por el usuario
✔ Evita automáticamente falsos positivos de mitigaciones de Vercel/Netlify
✔ Salida compatible con pipelines automatizados e ingesta en SIEM
✔ Ligero y adecuado para equipos rojos, bug bounty, respuesta a incidentes y escaneo en CI/CD
git clone https://github.com/MoisesTapia/http-react2shell.git
cd http-react2shell
Coloque el archivo dentro de su directorio de scripts de Nmap:
sudo cp http-react2shell.nse /usr/share/nmap/scripts/
Actualice el índice de scripts:
sudo nmap --script-updatedb
nmap -p80 --script http-react2shell <host>
nmap -p443 --script http-react2shell \
--script-args 'react2shell.path=/'
<host>
nmap -p443 --script http-react2shell \
--script-args 'react2shell.path=/api/action'
<host>
nmap -p443 --script http-react2shell \
--script-args 'react2shell.path=/,react2shell.timeout=20000'
<host>
nmap -iL targets.txt -p80,443 \
--script http-react2shell
nmap -sV -p80,443 \
--script "http-react2shell,http-headers,http-server-header,http-security-headers" \
<host>
PORT STATE SERVICE
443/tcp open https
| http-react2shell:
| Path: /login
| Scheme: auto (http/https decidido por la librería http de Nmap)
| No se observó un patrón de fallo característico.
| Esto sugiere que el endpoint evaluado no es vulnerable o está parcheado,
|_ pero no es una garantía (pueden existir otras rutas RSC/Server Actions).
PORT STATE SERVICE
443/tcp open https
| http-react2shell:
| Path: /login
| Scheme: auto (http/https decidido por la librería http de Nmap)
| VULNERABLE: posible React2Shell (CVE-2025-55182 / CVE-2025-66478)
| Evidencia: HTTP 500 + patrón similar a digest encontrado en la respuesta
|_ Notas: canal lateral de alta fidelidad; verificar manualmente y parchear de inmediato.
PORT STATE SERVICE
443/tcp open https
| http-react2shell:
| Path: /login
| Scheme: auto (http/https decidido por la librería http de Nmap)
|_ ERROR: La solicitud HTTP falló (conexión reiniciada por el peer)
Artículos de análisis técnico y documentos de investigación sobre los internos de React Flight
Este proyecto se proporciona únicamente con fines educativos, de investigación y seguridad defensiva. No escanee sistemas que no sean de su propiedad o para los que no tenga permiso explícito para realizar pruebas. Los mantenedores no son responsables por el uso indebido o cualquier daño resultante.
Se aceptan pull requests, mejoras y heurísticas de detección adicionales. Puede contribuir con:
Si esta herramienta le ayuda en equipos rojos, bug bounty o seguridad defensiva, considere darle una estrella ⭐ al repositorio en GitHub.