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é.

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

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-35616-check — Scanneur non destructif pour CVE-2026-35616, un contournement d'API avant authentification dans FortiClient EMS. Détecte la vulnérabilité en comparant les réponses HTTP avec et sans en-têtes SSL falsifiés, en utilisant uniquement la bibliothèque standard Python. | Kitploit
Outils/GitHubGitHub/bishopfox/cve-2026-35616-check
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests de Sécurité des APITests d'IntrusionAuthentification
GitHubbishopfox/cve-2026-35616-check

CVE-2026-35616-check

Scanneur non destructif pour CVE-2026-35616, un contournement d'API avant authentification dans FortiClient EMS. Détecte la vulnérabilité en comparant les réponses HTTP avec et sans en-têtes SSL falsifiés, en utilisant uniquement la bibliothèque standard Python.

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

Outil d'évaluation de la vulnérabilité CVE-2026-35616

Détectez en toute sécurité si un serveur FortiClient EMS est vulnérable à CVE-2026-35616 sans provoquer de perturbation. Consultez l'article complet sur le blog de Bishop Fox.

Description

CVE-2026-35616 est un contournement d'authentification préalable dans FortiClient EMS 7.4.5 et 7.4.6 qui permet à des attaquants distants non authentifiés de contourner l'authentification par certificat via une usurpation d'en-têtes HTTP. L'application Django considère les en-têtes HTTP contrôlables par l'utilisateur (X-SSL-CLIENT-VERIFY, X-SSL-CLIENT-CERT) comme équivalents aux variables d'environnement WSGI d'Apache mod_ssl, et la configuration Apache ne les supprime jamais. Combiné à une validation de chaîne de certificats qui effectue uniquement une correspondance de chaîne de Distinguished Name (sans vérification de signature cryptographique), un attaquant peut forger des certificats et obtenir un accès API authentifié. Fortinet a confirmé une exploitation dans la nature.

Cet outil effectue des tests de vulnérabilité non destructifs en :

  1. Envoi d'un POST de référence à /api/v1/fabric_device_auth/fortigate/init sans en-têtes usurpés
  2. Envoi du même POST avec X-SSL-CLIENT-VERIFY: SUCCESS mais sans données de certificat
  3. Comparaison des deux réponses pour déterminer si l'en-tête a atteint Django

L'envoi de l'en-tête de vérification sans données PEM de certificat déclenche le chemin de détection mais ne peut pas authentifier car aucune chaîne de certificats n'est fournie. Le serveur reste stable et peut continuer à gérer les connexions.

  • Serveurs vulnérables renverront des réponses différentes : la référence renvoie HTTP 401 (« Certificate not found in request header ») tandis que la requête usurpée renvoie HTTP 500 (erreur serveur), car contains_certificate() passe la porte mais validate_cert_chain() plante en raison de l'absence de données PEM.
  • Serveurs corrigés renverront des réponses HTTP 401 identiques pour les deux requêtes, car le correctif ajoute des directives Apache RequestHeader unset qui suppriment l'en-tête usurpé avant qu'il n'atteigne Django.
  • Serveurs non-EMS ne parviendront pas à atteindre le point de terminaison, auquel cas l'outil signale un résultat INCONCLUSIVE.

Installation

git clone https://github.com/BishopFox/CVE-2026-35616-check
cd CVE-2026-35616-check

Aucune dépendance externe. Le scanner utilise uniquement les modules de la bibliothèque standard Python.

Utilisation

Testez un serveur FortiClient EMS à <TARGET>:<PORT>. Le port par défaut est 443/TCP.

python3 CVE-2026-35616-check.py <TARGET> [PORT]

Exemple : Serveur vulnérable

$ python3 CVE-2026-35616-check.py 192.168.1.1
======================================================================
FortiClient EMS CVE-2026-35616 Vulnerability Scanner
Non-Destructive Detection
======================================================================

[*] Target: 192.168.1.1:443
[*] Testing for CVE-2026-35616 (non-destructive)

[1] Sending baseline POST (no spoof headers)... HTTP 401
[2] Sending POST with X-SSL-CLIENT-VERIFY: SUCCESS... HTTP 500

[*] Analyzing responses...
[+] Baseline: 401 — Certificate not found in request header.
[+] Spoofed:  500 — Server encountered an error, please try again later.
[!] Spoofed header changed server behavior
[!] X-SSL-CLIENT-VERIFY is reaching Django (hotfix not applied)

======================================================================
RESULT: VULNERABLE to CVE-2026-35616
Affected versions: FortiClient EMS 7.4.5 - 7.4.6
Recommendation: Apply Fortinet hotfix or upgrade to 7.4.7+
======================================================================

Exemple : Serveur corrigé

$ python3 CVE-2026-35616-check.py 192.168.1.1
======================================================================
FortiClient EMS CVE-2026-35616 Vulnerability Scanner
Non-Destructive Detection
======================================================================

[*] Target: 192.168.1.1:443
[*] Testing for CVE-2026-35616 (non-destructive)

[1] Sending baseline POST (no spoof headers)... HTTP 401
[2] Sending POST with X-SSL-CLIENT-VERIFY: SUCCESS... HTTP 401

[*] Analyzing responses...
[+] Baseline: 401 — Certificate not found in request header.
[+] Spoofed:  401 — Certificate not found in request header.
[-] Responses identical (header stripped by Apache)

======================================================================
RESULT: NOT VULNERABLE (hotfix applied)
Apache is stripping X-SSL-CLIENT-VERIFY before it reaches Django
======================================================================

Prérequis

L'outil ne peut détecter la vulnérabilité que si les conditions suivantes sont remplies :

  • La cible exécute FortiClient EMS 7.4.5 ou 7.4.6
  • L'interface web EMS est accessible
  • Le point de terminaison /api/v1/fabric_device_auth/fortigate/init existe et utilise l'authentification cert_chain_approved

Si une condition n'est pas remplie, l'outil signalera un résultat INCONCLUSIVE.

Licence

Ce code est distribué sous une licence MIT.

Avis de non-responsabilité légal

L'utilisation de cet outil pour attaquer des cibles sans consentement préalable mutuel est illégale. Il est de la responsabilité de l'utilisateur final de se conformer à toutes les lois locales, étatiques et fédérales applicables. Les développeurs n'assument aucune responsabilité et ne sont pas responsables de tout usage abusif ou dommage causé par ce programme.

Voir aussi

  • Avis de sécurité Fortinet FG-IR-26-099
  • Blog Bishop Fox : Analyse technique complète
  • NVD — CVE-2026-35616
Télécharger l’outil