
Prueba de concepto del exploit para CVE-2025-29927 que añade x-middleware-subrequest para evadir las comprobaciones de autenticación del middleware de Next.js.
Este repositorio contiene una prueba de concepto para la vulnerabilidad CVE-2025-29927 en Next.js, donde la cabecera interna x-middleware-subrequest puede ser explotada para eludir comprobaciones del middleware como la autenticación.
🧪 Este proyecto fue probado con Next.js v13.4.19.
git clone https://github.com/goncalocsousa1/CVE-2025-29927.git
cd CVE-2025-29927
npm install
npm run dev
http://localhost:3000
La aplicación demuestra un sistema de autenticación simple con una ruta protegida que puede ser eludida usando la vulnerabilidad CVE-2025-29927. Así es como funciona:
Página de inicio (/)
auth-token)Página protegida (/protected)
auth-tokenProtección del middleware
auth-token/protected/*, redirige a la página de inicioDemostración de la vulnerabilidad
x-middleware-subrequestauth-token válida, los atacantes pueden acceder a rutas protegidasEsta aplicación incluye una ruta protegida en /protected que normalmente requiere autenticación. Sin embargo, usando la cabecera x-middleware-subrequest: middleware en una petición como curl -H "x-middleware-subrequest: middleware" http://localhost:3000/protected, puedes eludir la comprobación de autenticación.
También puedes reproducir este comportamiento usando Burp Suite interceptando la petición y añadiendo manualmente la cabecera.
Para probarlo con Burp Suite, abre la pestaña Proxy y ve a la subpestaña Intercept. Asegúrate de que Intercept is On, luego haz clic en Open Browser y navega a la ruta protegida: http://localhost:3000/protected

Burp Suite capturará la petición a la ruta protegida. Desde allí, añade la siguiente cabecera: x-middleware-subrequest: middleware (resaltada en la captura de pantalla anterior). Finalmente, reenvía la petición y accede a la ruta protegida.

Actualiza a una de las siguientes versiones parcheadas: