
Script NSE de Nmap para escanear React2Shell (CVE-2025-55182)
Script NSE de Nmap para escanear React2Shell (CVE-2025-55182)
Aviso de exención de responsabilidad El siguiente código se proporciona únicamente con fines educativos y de investigación. Cualquier uso de este script queda bajo la exclusiva discreción y responsabilidad del usuario.
Este escáner puede generar falsos positivos o resultados no concluyentes, por lo que es responsabilidad del usuario validar y confirmar cualquier hallazgo reportado. El autor no asume ninguna responsabilidad por el mal uso, daños o consecuencias no deseadas derivadas de la ejecución de este código.
Utilice esta herramienta únicamente en entornos donde tenga autorización explícita. Las pruebas no autorizadas en sistemas están estrictamente prohibidas y pueden ser ilegales.
Autor: Kevin Leon
Categorías: discovery, vuln, intrusive
Tipo de Script: Nmap NSE
nmap --script http-vuln-cve2025-55182.nse -p- <target>
nmap --script http-vuln-cve2025-55182.nse -p3000,3001,3002 <target>
nmap --script http-vuln-cve2025-55182.nse \
--script-args=http-vuln-cve2025-55182.waf_bypass=true <target>
PORT STATE SERVICE
3000/tcp open ppp
| http-vuln-cve2025-55182:
| VULNERABLE:
| React2Shell Remote Code Execution (RCE)
| State: VULNERABLE
| IDs: CVE:2025-55182
| Risk factor: High CVSS: 10.0
| Disclosure date: 2025-12-03
| References:
| https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components
| https://nvd.nist.gov/vuln/detail/CVE-2025-55182
| https://github.com/assetnote/react2shell-scanner
|_ https://github.com/msanft/CVE-2025-55182
Antes de intentar la explotación, el script verifica que el objetivo probablemente esté ejecutando:
Métodos de detección
El script realiza una solicitud inicial:
http.get(host, port, "/")
e inspecciona:
X-Powered-By: next.jsX-Powered-By: react_next
(indicativo de recursos estáticos de Next.js)Entonces se considera que el objetivo es potencialmente vulnerable.
Generación de Límite Multipart
El script genera un límite aleatorio de tipo WebKit:
----WebKitFormBoundary<random 16 chars>
Esto se utiliza para la explotación multipart/form-data.
Dependiendo de los argumentos del usuario:
Carga Útil de Explotación Simple
Carga Útil de Evasión de WAF
--script-args=http-vuln-cve2025-55182.waf_bypass=true
Incluye más campos y ofuscación para evadir middleware.
Dentro de la carga útil, el script inyecta:
process.mainModule.require('child_process')
.execSync('echo $((41*271))')
Este comando evalúa a 11111 y posteriormente se utiliza para verificar la explotación mediante la detección de digerido de redirección.
El script intenta explotar la vulnerabilidad enviando mediante POST la carga útil diseñada a varios endpoints RSC conocidos:
/
/_action
/api/action
/api
/_next/data
/__rsc
/action
/server
/server/action
Cada solicitud se envía como:
http.post(host, port, path, header, payload)
Caso A — Error HTTP 500 del Servidor
Un fallo exitoso en la deserialización indica posible vulnerabilidad:
Caso B — Presencia de Digerido NEXT_REDIRECT
La carga útil fuerza una redirección del lado del servidor:
NEXT_REDIRECT;push;/login?a=11111;307;
El script verifica en las cabeceras de respuesta:
11111Si se encuentra → Altamente probable vulnerable
Según el resultado de la detección, el script completa un informe de vulnerabilidad estándar de NSE:
VULNERABLE_VULN ┌──────────────────────┐
│ Start NSE Script │
└─────────────┬────────┘
│
▼
┌────────────────────┐
│ Request "/" │
│ Check headers/body │
└──────────┬─────────┘
│Yes
▼
┌────────────────────┐
│ React/Next.js Detected? ── No ─▶ Exit (Not Vulnerable)
└──────────┬─────────┘
│Yes
▼
┌────────────────────┐
│ Build multipart │
│ exploit payload │
└──────────┬─────────┘
▼
┌─────────────────────────────────┐
│ Loop through RSC endpoints │
│ Send POST exploit payload │
└──────────┬──────────────────────┘
│
┌─────────┴──────────────────────────────┐
▼ ▼
┌───────────────┐ ┌───────────────────┐
│ HTTP 500? │ YES │ Redirect digest? │ YES
└───────┬────────┘ └────────┬──────────┘
│NO │NO
▼ ▼
Continue testing Continue testing
│ │
└──────────────────────────────┬─────────┘
▼
┌────────────────────┐
│ Vulnerable? │
└──────────┬─────────┘
▼
Generate Report
Este script proporciona un mecanismo de detección completo, automatizado y seguro para la vulnerabilidad React2Shell de alto impacto. Su enfoque de validación en capas garantiza una detección fiable minimizando los falsos positivos.