
Prueba de concepto de exploit para CVE-2025-29927, una vulnerabilidad de omisión de middleware de Next.js. Incluye huella digital de versión, manipulación de cabeceras configurable y heurísticas de detección de éxito para probar el bypass de autenticación.
Este repositorio contiene una prueba de concepto (PoC) para CVE-2025-29927, una vulnerabilidad en el middleware de Next.js que permite eludir las comprobaciones de autenticación y autorización mediante la manipulación de cabeceras.
Versiones Afectadas: >= 11.1.4, <= 1 3.5.6, > 14.0.0, < 14.2.25, > 15.0.0, < 15.2.3
CVE ID: CVE-2025-29927
Severidad: Alta (CVSS: 9.1)
La vulnerabilidad existe en la ejecución de la cadena de middleware en Next.js, donde un atacante puede manipular la cabecera x-middleware-subrequest para eludir los controles de seguridad del middleware. Al crear un valor de cabecera específico, el middleware puede ser engañado para que trate la solicitud como si ya hubiera sido procesada, eludiendo efectivamente las comprobaciones de autenticación.
Esta herramienta se ha probado en: Next.js 15.0.0 hasta 15.2.2, otras versiones pueden requerir modificaciones.
Instala las dependencias con:
pip install -r requirements.txt
python poc-cve-2025-29927.py http://example.com/protected-route
usage: poc-cve-2025-29927.py [-h] [-r REPEAT] [-o OUTPUT] [--no-browser] [-f] url
PoC for CVE-2025-29927 - Next.js Middleware Bypass
positional arguments:
url Target URL to test (e.g., http://localhost:3000/admin/dashboard)
options:
-h, --help show this help message and exit
-r REPEAT, --repeat REPEAT
Number of middleware repeats in header (default: 5)
-o OUTPUT, --output OUTPUT
Output file name (default: response.html)
--no-browser Do not open result in browser
-f, --force Skip version check and force exploit attempt
python poc-cve-2025-29927.py http://localhost:3000/admin/dashboard
python poc-cve-2025-29927.py http://target-site.com/admin/dashboard -f
python poc-cve-2025-29927.py http://vulnerable-app.com/protected-page -r 10 -o result.html --no-browser
El script primero intenta obtener la huella digital de la versión de Next.js de la aplicación objetivo utilizando varios métodos de detección
Si se detecta una versión vulnerable (15.0.0-15.2.2), procede con el exploit
Se envía una solicitud con una cabecera x-middleware-subrequest especialmente manipulada
La respuesta se guarda en un archivo y se analiza en busca de indicadores de éxito
Si tiene éxito, el contenido protegido será accesible sin autenticación
Si estás ejecutando una versión vulnerable de Next.js, actualiza a la versión 15.2.3 o posterior para corregir esta vulnerabilidad.
Esta herramienta se proporciona únicamente con fines educativos y de investigación en seguridad. Úsala solo contra aplicaciones que poseas o para las que tengas permiso explícito de prueba. Las pruebas no autorizadas pueden violar las leyes aplicables.
Este proyecto está licenciado bajo la Licencia MIT; consulta el archivo LICENSE para más detalles.
Heimd411
Investigador de Seguridad
GitHub Profile
This Repository