
Next.js y el middleware corrupto... ¡INTENTA HACKEARLO..!
Este es un proyecto de muestra Next.js iniciado con [create-next-app] para explicar prácticamente cómo funciona cve-2025-29927. (https://nextjs.org/docs/app/api-reference/cli/create-next-app).
Primero, ejecuta el servidor de desarrollo:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Abre http://localhost:3000 con tu navegador para ver el resultado.
AHORA puedes usar Burp u otras extensiones del navegador para modificar los encabezados y explotar el middleware usando el payload.

Cuando una aplicación next.js usa un middleware, se utiliza la función runMiddleware; esta última, además de su utilidad principal, recupera el valor de la cabecera x-middleware-subrequest y lo usa para saber si el middleware debe aplicarse o no. El valor de la cabecera se divide para crear una lista utilizando el carácter de dos puntos (:) como separador y luego se comprueba si esta lista contiene el valor middlewareInfo.name.
Esto significa que si añadimos la cabecera x-middleware-subrequest con el valor correcto a nuestra solicitud, el middleware - sea cual sea su propósito - será completamente ignorado, y la solicitud se reenviará mediante NextResponse.next() y completará su viaje hasta su destino original sin que el middleware tenga ningún impacto/influencia sobre ella. La cabecera y su valor actúan como una llave universal que permite sobrescribir las reglas. En este punto ya sabemos que acabamos de desenterrar algo increíble.
Uploading next-middleware-2.png…
Toma nota de que aquí estamos usando "next": "14.0.4".