Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-29927-PoC — Preuve de concept d'exploitation pour CVE-2025-29927, un contournement d'autorisation du middleware Next.js. Inclut un laboratoire cible vulnérable et un script Python pour vérifier le contournement en envoyant des en-têtes x-middleware-subrequest spécialement conçus. | Kitploit
Outils/GitHubGitHub/ritinify/cve-2025-29927-poc
ExploitationExploitation d'Applications WebCTFTests d'IntrusionApprentissage et ÉducationLabs et Pratique
GitHubritinify/cve-2025-29927-poc

CVE-2025-29927-PoC

Preuve de concept d'exploitation pour CVE-2025-29927, un contournement d'autorisation du middleware Next.js. Inclut un laboratoire cible vulnérable et un script Python pour vérifier le contournement en envoyant des en-têtes x-middleware-subrequest spécialement conçus.

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

CVE-2025-29927 — Contournement de l'autorisation du middleware Next.js — PoC de validation

Un petit projet GitHub pour valider CVE-2025-29927 (contournement de l'autorisation du middleware Next.js) dans un environnement de laboratoire local (VMware : machine cible Ubuntu + machine d'attaque Kali).

⚠️ Avertissement : Ce projet est uniquement destiné à l'éducation en sécurité, aux CTF et aux environnements de laboratoire que vous possédez ou pour lesquels vous disposez d'une autorisation explicite. Toute utilisation sur des systèmes non autorisés est strictement interdite. Les conséquences d'une mauvaise utilisation de ce projet relèvent de la seule responsabilité de l'utilisateur.


📋 Table des matières

  • 1. Fiche de vulnérabilité
  • 2. Principe de la vulnérabilité (compris en 30 secondes)
  • 3. Structure du dépôt
  • 4. Topologie du laboratoire (deux machines virtuelles VMware)
  • 5. Mise en place de la machine cible (Ubuntu 24.04)
  • 6. Préparation de la machine d'attaque (Kali)
  • 7. Validation locale (étape clé)
  • 8. Paramètres du PoC
  • 9. Auto-test rapide sans machine cible (optionnel)
  • 10. Correction et détection
  • 11. FAQ — Foire aux questions
  • 12. Références

1. Fiche de vulnérabilité

ÉlémentContenu
CVECVE-2025-29927
Date de divulgation2025-03-25 (bulletin de sécurité officiel Next.js)
Composant affectéVercel Next.js (framework full-stack Node.js)
Type de vulnérabilitéContournement d'autorisation / Autorisation inappropriée (CWE-863)
Versions affectées< 12.3.5, < 13.5.9, < 14.2.25, < 15.2.3
Versions corrigées12.3.5 / 13.5.9 / 14.2.25 / 15.2.3 et supérieures
Niveau de gravitéCritique / Élevé (le score exact dépend de la page NVD)

Après la divulgation de cette vulnérabilité, de nombreux panneaux d'administration, callbacks de paiement et API internes en production ont été contournés. Metasploit et ProjectDiscovery Nuclei ont tous deux intégré des modules de détection. Il s'agit de l'une des vulnérabilités de « contournement d'autorisation au niveau framework » les plus représentatives de 2025.


2. Principe de la vulnérabilité (compris en 30 secondes)

Next.js permet d'écrire la « logique d'authentification » dans un middleware, par exemple :

export function middleware(request) {
  if (!isLogin(request)) return NextResponse.redirect("/login"); // Non connecté → bloquer
  return NextResponse.next();
}

Le problème est que Next.js s'appuie en interne sur un en-tête de requête que le client peut falsifier pour déterminer si « cette requête a déjà exécuté le middleware » :

x-middleware-subrequest: middleware

Dans les versions affectées, si une requête externe transporte cet en-tête interne, Next.js croit à tort que le middleware a déjà été exécuté, et l'intégralité du middleware d'authentification est donc ignorée. L'attaquant n'a besoin d'aucun compte : il lui suffit d'envoyer cet en-tête pour accéder directement (code 200) à des routes protégées comme /admin — or la page elle-même fait généralement confiance au middleware et n'effectue pas de seconde vérification. Le contrôle d'autorisation est ainsi neutralisé (erreur de frontière de confiance).

💡 La valeur la plus couramment utilisée dans les exploits publics consiste à répéter le chemin du middleware, par exemple middleware:middleware:middleware:middleware:middleware ; une valeur unique middleware ne fonctionne pas dans certaines versions/structures de répertoires (c'est le cas constaté avec la version 14.2.24 de ce laboratoire). Ce PoC teste plusieurs valeurs candidates en boucle ; si l'une d'elles aboutit, le contournement est réussi.


3. Structure du dépôt

CVE-2025-29927-PoC/
├── README.md                 # Ce document (explication de la vulnérabilité + tutoriel laboratoire VMware)
├── LICENSE                   # MIT
├── .gitignore
├── exploit.py                # ★ PoC de validation en Python3, bibliothèque standard uniquement (exécutable sur Kali/toute machine)
├── target/                   # ★ Laboratoire de vulnérabilité intégré (à copier sur la machine cible Ubuntu)
│   ├── package.json          #   Verrouille [email protected] (version affectée)
│   ├── middleware.js         #   Simule un « middleware d'authentification » de production réelle
│   ├── pages/
│   │   ├── index.js          #   Page d'accueil
│   │   ├── login.js          #   Page de connexion (démonstration de la redirection ici)
│   │   └── admin.js          #   ★ Panneau d'administration protégé, lit flag.txt côté serveur
│   ├── flag.txt              #   Drapeau du laboratoire : FLAG{...}
│   ├── setup.sh              #   Installation en une commande sur la cible : Node 20 + npm install + build
│   └── start.sh              #   Écoute sur 0.0.0.0:3000 en mode production
└── tests/
    └── mock_target.py        #   Cible simulée sans Node (uniquement pour l'auto-test de développement)

4. Topologie du laboratoire (deux machines virtuelles VMware)

┌───────────────────────────────────────────────────────────┐
│ VMware Workstation Pro 17 (hôte : Windows)                │
│ Réseau : NAT (VMnet8 par défaut), les deux VM sur le même │
│ sous-réseau, ping mutuel possible                         │
│                                                           │
│   ┌──────────────────┐        ┌─────────────────────┐     │
│   │ Cible Ubuntu 24.04│        │ Attaque Kali Linux  │     │
│   │                  │  http   │                     │     │
│   │  Node 20 + Next  │◄───────│  python3 exploit.py  │     │
│   │  14.2.24 :3000   │  GET    │                     │     │
│   └──────────────────┘        └─────────────────────┘     │
│   IP : <TARGET_IP>              IP : <ATTACKER_IP>        │
└───────────────────────────────────────────────────────────┘

4.1 Éléments à télécharger

UsageImage/LogicielVersion recommandée
Logiciel de virtualisationVMware Workstation Pro 17 (gratuit pour un usage personnel)17.x
Image de la machine cibleISO Ubuntu Server LTS24.04.x
Machine d'attaqueKali Linux (image VMware officielle préinstallée ou installation ISO)2025.x
(Optionnel)8 Go de RAM ou plus sur l'hôte, 50 Go d'espace disque ou plus—

4.2 Configuration générale des machines virtuelles

  1. Les deux VM reçoivent 2 vCPU / 4 Go de RAM / 40 Go de disque ;
  2. L'adaptateur réseau des deux VM est réglé sur NAT (pour garantir la communication sur le même sous-réseau) ; pour un simple apprentissage, le mode pont n'est pas nécessaire ;
  3. Lors de l'installation d'Ubuntu, cochez OpenSSH server (pour faciliter le transfert de fichiers par SSH depuis l'hôte) ;
  4. Une fois le système installé et la connexion Internet confirmée, prenez un instantané propre pour pouvoir rouvrir facilement le laboratoire.

5. Mise en place de la machine cible (Ubuntu 24.04)

Toutes les étapes suivantes s'exécutent sur la machine cible Ubuntu.

5.1 Transférer le code du projet sur la machine cible (au choix)

# Méthode A : pousser le projet sur votre GitHub puis le cloner (recommandé ; utilisez ceci si vous comptez le publier sur GitHub)
git clone https://github.com/<votre_nom_utilisateur>/CVE-2025-29927-PoC.git
cd CVE-2025-29927-PoC

# Méthode B : transfert scp depuis l'hôte
# scp -r CVE-2025-29927-PoC  ubuntu@<TARGET_IP>:~/
Télécharger l’outil