
Exploit proof-of-concept per CVE-2025-29927, una vulnerabilità di bypass del middleware Next.js. Include fingerprinting della versione, manipolazione configurabile dell'header ed euristiche di rilevamento del successo per testare il bypass dell'autenticazione.
Questo repository contiene una proof of concept (PoC) per CVE-2025-29927, una vulnerabilità nel middleware di Next.js che consente di aggirare i controlli di autenticazione e autorizzazione tramite la manipolazione degli header.
Versioni interessate: >= 11.1.4, <= 1 3.5.6, > 14.0.0, < 14.2.25, > 15.0.0, < 15.2.3
ID CVE: CVE-2025-29927
Gravità: Alta (CVSS: 9.1)
La vulnerabilità risiede nell'esecuzione della catena middleware di Next.js, dove un attaccante può manipolare l'header x-middleware-subrequest per aggirare i controlli di sicurezza del middleware. Creando un valore specifico per l'header, il middleware può essere indotto a trattare la richiesta come se fosse già stata elaborata, aggirando di fatto i controlli di autenticazione.
Questo strumento è testato su: Next.js dalla 15.0.0 alla 15.2.2; altre versioni potrebbero richiedere modifiche.
Installa le dipendenze con:
pip install -r requirements.txt
python poc-cve-2025-29927.py http://example.com/protected-route
usage: poc-cve-2025-29927.py [-h] [-r REPEAT] [-o OUTPUT] [--no-browser] [-f] url
PoC for CVE-2025-29927 - Next.js Middleware Bypass
positional arguments:
url Target URL to test (e.g., http://localhost:3000/admin/dashboard)
options:
-h, --help show this help message and exit
-r REPEAT, --repeat REPEAT
Number of middleware repeats in header (default: 5)
-o OUTPUT, --output OUTPUT
Output file name (default: response.html)
--no-browser Do not open result in browser
-f, --force Skip version check and force exploit attempt
python poc-cve-2025-29927.py http://localhost:3000/admin/dashboard
python poc-cve-2025-29927.py http://target-site.com/admin/dashboard -f
python poc-cve-2025-29927.py http://vulnerable-app.com/protected-page -r 10 -o result.html --no-browser
Lo script tenta innanzitutto di rilevare la versione di Next.js dell'applicazione target utilizzando vari metodi di rilevamento
Se viene rilevata una versione vulnerabile (15.0.0-15.2.2), procede con l'exploit
Viene inviata una richiesta con un header x-middleware-subrequest appositamente costruito
La risposta viene salvata in un file e analizzata per individuare indicatori di successo
In caso di successo, il contenuto protetto sarà accessibile senza autenticazione
Se stai eseguendo una versione vulnerabile di Next.js, aggiorna alla versione 15.2.3 o successiva per correggere questa vulnerabilità.
Questo strumento è fornito esclusivamente a scopo educativo e di ricerca sulla sicurezza. Usalo solo contro applicazioni di tua proprietà o per le quali hai esplicita autorizzazione al test. I test non autorizzati potrebbero violare le leggi applicabili.
Questo progetto è concesso in licenza secondo i termini della Licenza MIT - consulta il file LICENSE per i dettagli.
Heimd411
Ricercatore di sicurezza
Profilo GitHub
Questo repository