
Demostración de CVE-2025-29927 para clase de programación segura
Este es un demo de CVE-2025-29927, una vulnerabilidad crítica en Next.js que permitía eludir el middleware con una cabecera determinada.
La cabecera x-middleware-subrequest estaba diseñada para evitar bucles infinitos del middleware. Cada vez que la solicitud llega al middleware, se añade el valor middleware a esta cabecera, y si se añade 5 veces, entonces el middleware deja pasar la solicitud. Enviar una solicitud con el valor middleware:middleware:middleware:middleware:middleware permitirá eludir el middleware.
Después de clonar el repositorio y construir el proyecto, ejecuta el servidor de desarrollo:
npm run dev
Accede a la aplicación en tu navegador usando el enlace http://localhost:3000.
El objetivo de esta aplicación es llegar a la página /cool. El botón de envío lleva a esta página, pero la solicitud es interceptada por el middleware y redirigida a /uncool.
Ahora podemos enviar la misma solicitud pero con la cabecera manipulada, y el middleware nos permitirá pasar a la página /cool. Esto se puede hacer con las herramientas de desarrollo del navegador.
