
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.
Nelle applicazioni Next.js, il middleware viene eseguito prima che le richieste raggiungano l'applicazione, effettuando controlli come autenticazione e autorizzazione.
Nella vulnerabilità CVE-2025-29927, a causa dell'intestazione HTTP x-middleware-subrequest aggiunta appositamente, il middleware in alcuni casi può considerare la richiesta come verificata. Ciò può consentire a utenti non autorizzati di accedere a pagine protette.
In questo progetto ho dimostrato la vulnerabilità CVE-2025-29927 che colpisce le applicazioni Next.js in un ambiente di laboratorio creato utilizzando Docker.
Ho creato l'ambiente di laboratorio da zero. Ho preparato le pagine login, index e admin con Next.js. Successivamente ho aggiunto il controllo di autorizzazione alla pagina admin utilizzando il middleware.
Utilizzando Burp Suite per intercettare le richieste HTTP, ho aggiunto l'intestazione x-middleware-subrequest e ho mostrato l'accesso non autorizzato alla pagina admin bypassando il controllo del middleware.
.
├── pages
│ ├── admin.js
│ ├── index.js
│ └── login.js
├── middleware.js
├── Dockerfile
├── package.json
└── README.md
Prima di eseguire il progetto, è necessario che siano installati i seguenti componenti.
Scarica la repository sul tuo computer.
git clone https://github.com/berraesen/nextjs-middleware-auth-bypass-lab.git
Entra nella cartella.
cd nextjs-middleware-auth-bypass-lab
Crea l'immagine Docker.
docker build -t nextjs-auth-bypass .
Avvia il container.
docker run -d -p 3000:3000 --name nextjs-lab nextjs-auth-bypass
Dal browser, vai al seguente indirizzo.
http://localhost:3000
Nel progetto sono presenti le seguenti pagine.
L'accesso alla pagina admin è controllato tramite il middleware.
Innanzitutto, prova ad accedere alla pagina /admin tramite il browser.
Poiché non hai l'autorizzazione, verrai reindirizzato alla pagina di login.
Intercetta la richiesta con Burp Suite.
Aggiungi la seguente intestazione HTTP alla richiesta.
x-middleware-subrequest: middleware
Invia di nuovo la richiesta.
Quando il controllo del middleware viene bypassato, si può vedere che la pagina admin è accessibile.
Dopo aver completato l'installazione:
İ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
Per risolvere questa vulnerabilità, si consiglia di aggiornare le versioni di Next.js interessate alle versioni più recenti.
Inoltre, l'autorizzazione non dovrebbe essere effettuata solo tramite middleware; dovrebbero essere implementati anche ulteriori controlli di autorizzazione lato server.