
Bu laboratuvar ortamını sıfırdan kendim oluşturdum. Next.js uygulaması içerisinde giriş, ana sayfa ve admin sayfalarını hazırladım. Middleware ile yetkilendirme mekanizmasını kurduktan sonra Burp Suite kullanarak CVE-2025-29927 zafiyetini kontrollü ortamda gösterdim.
En las aplicaciones Next.js, el middleware se ejecuta antes de que las solicitudes lleguen a la aplicación y realiza controles como la autenticación y la autorización.
En la vulnerabilidad CVE-2025-29927, debido a la cabecera HTTP x-middleware-subrequest añadida de forma especial, el middleware puede, en algunos casos, considerar la solicitud como verificada. Esta situación puede provocar que usuarios no autorizados accedan a páginas protegidas.
En este proyecto mostré la vulnerabilidad CVE-2025-29927, que afecta a las aplicaciones Next.js, en un entorno de laboratorio que creé con Docker.
Creé el entorno de laboratorio desde cero. Preparé las páginas login, index y admin con Next.js. Después, añadí el control de autorización a la página admin utilizando middleware.
Al capturar las solicitudes HTTP con Burp Suite, añadí la cabecera x-middleware-subrequest y mostré el acceso no autorizado a la página admin omitiendo el control del middleware.
.
├── pages
│ ├── admin.js
│ ├── index.js
│ └── login.js
├── middleware.js
├── Dockerfile
├── package.json
└── README.md
Antes de ejecutar el proyecto deben estar instalados los siguientes elementos.
Descargue el repositorio en su equipo.
git clone https://github.com/berraesen/nextjs-middleware-auth-bypass-lab.git
Entre en la carpeta.
cd nextjs-middleware-auth-bypass-lab
Cree la imagen de Docker.
docker build -t nextjs-auth-bypass .
Inicie el contenedor.
docker run -d -p 3000:3000 --name nextjs-lab nextjs-auth-bypass
Vaya a la siguiente dirección en el navegador.
http://localhost:3000
En el proyecto se encuentran las siguientes páginas.
El acceso a la página admin se controla a través del middleware.
En primer lugar, intente acceder a la página /admin desde el navegador.
Como no tiene autorización, será redirigido a la página de inicio de sesión.
Capture la solicitud con Burp Suite.
Añada la siguiente cabecera HTTP a la solicitud.
x-middleware-subrequest: middleware
Envíe la solicitud de nuevo.
Se puede observar que, cuando se omite el control del middleware, es posible acceder a la página admin.
Una vez completada la instalación:
İstemci
│
▼
HTTP Request
│
▼
Next.js Middleware
│
├──────────────► Normal İstek
│ │
│ ▼
│ Yetki Kontrolü
│ │
│ ▼
│ Login Sayfasına Yönlendirme
│
▼
x-middleware-subrequest
Header Eklendi
│
▼
Middleware Kontrolü Atlandı
│
▼
Admin Sayfasına Erişim
Para solucionar esta vulnerabilidad, se recomienda sustituir las versiones afectadas de Next.js por versiones actualizadas.
Además, no debe realizarse la autorización únicamente en el middleware; también deben aplicarse controles de autorización adicionales en el lado del servidor.