
Proof-of-concept exploit per CVE-2025-29927 che aggiunge x-middleware-subrequest per bypassare i controlli di autenticazione del middleware di Next.js.
Questo repository contiene una proof of concept per la vulnerabilità CVE-2025-29927 in Next.js, dove l'header interno x-middleware-subrequest può essere sfruttato per bypassare i controlli del middleware come l'autenticazione.
🧪 Questo progetto è stato testato con Next.js v13.4.19.
git clone https://github.com/goncalocsousa1/CVE-2025-29927.git
cd CVE-2025-29927
npm install
npm run dev
http://localhost:3000
L'applicazione dimostra un semplice sistema di autenticazione con una rotta protetta che può essere bypassata utilizzando la vulnerabilità CVE-2025-29927. Ecco come funziona:
Pagina Home (/)
auth-token)Pagina Protetta (/protected)
auth-tokenProtezione del Middleware
auth-token/protected/*, reindirizza alla home pageDimostrazione della Vulnerabilità
x-middleware-subrequest può essere sfruttatoauth-token valido, gli aggressori possono accedere alle rotte protetteQuesta applicazione include una rotta protetta in /protected che normalmente richiede autenticazione. Tuttavia, utilizzando l'header x-middleware-subrequest: middleware in una richiesta come curl -H "x-middleware-subrequest: middleware" http://localhost:3000/protected, è possibile bypassare il controllo di autenticazione.
Puoi anche riprodurre questo comportamento utilizzando Burp Suite intercettando la richiesta e aggiungendo manualmente l'header.
Per provarlo con Burp Suite, apri la scheda Proxy e vai alla sotto-scheda Intercept. Assicurati che Intercept is On, poi clicca su Open Browser e naviga verso la rotta protetta: http://localhost:3000/protected

Burp Suite catturerà la richiesta alla rotta protetta. Da lì, aggiungi il seguente header: x-middleware-subrequest: middleware (evidenziato nello screenshot sopra). Infine, inoltra la richiesta e accedi alla rotta protetta.
