FortiClient EMS : un bypass d'auth qui contamine tout le parc
- FortiClient EMS 7.4.5
- FortiClient EMS 7.4.6
Le contexte
FortiClient EMS est le plan de management central d'un déploiement endpoint Fortinet : c'est de là que les administrateurs déploient, configurent et supervisent l'agent FortiClient sur tout le parc. La faille a été exploitée comme zero-day ; Arctic Wolf a documenté une campagne active en mai 2026 (l'infostealer EKZ). Elle suit de près CVE-2026-21643 (SQLi non authentifiée dans EMS 7.4.4), elle aussi exploitée : deux failles non authentifiées et activement exploitées dans le même produit de management en quelques semaines.
La mécanique
Il s'agit d'un bypass d'authentification d'API en pré-authentification (CWE-284). Lorsqu'une requête HTTP spécialement forgée est envoyée à certains endpoints EMS sans identifiants valides, elle est traitée comme une action administrative légitime.
Le détail technique documenté par les chercheurs : le bypass repose sur l'injection d'un en-tête forgé X-SSL-CLIENT-VERIFY: SUCCESS.
Une méthode de détection non destructive consiste en une analyse de réponse différentielle : une requête de base sans en-tête spécial renvoie un HTTP 401 sur un serveur patché ou non affecté ; la même requête avec l'en-tête injecté révèle la vulnérabilité par une réponse différente.
La chaîne d'attaque observée
Après le bypass, l'acteur abuse de la position de confiance de l'EMS pour pousser du malware vers les endpoints gérés :
- modification de la configuration
remind_upgrade_after(pour différer les rappels de mise à niveau firmware) ; - édition du Remote Access Profile et de la politique endpoint pour insérer un script malveillant ;
- la fonction légitime d'exécution de script à l'établissement du tunnel VPN (directives
on_connect) est entièrement détournée.
Le payload livré, FortiEndpoint_Patch.exe (ou p.exe hébergé à distance), est un voleur d'identifiants Windows compilé avec MinGW, baptisé EKZ Infostealer, exécuté silencieusement via PowerShell. Il extrait les identifiants de Chrome, Edge et autres navigateurs Chromium, ainsi que de Firefox, avec des techniques contournant le stockage chiffré des mots de passe de Chrome. Il dispose d'un store SQLite interne et de verbes CLI (action_list, view, label, export) suggérant un usage répété piloté par opérateur. Détail pour les défenseurs : le malware se fait passer pour le correctif de la vulnérabilité même qui a servi à le livrer.
Remédiation
- Patcher vers FortiClient EMS 7.4.7 ou supérieur (ou appliquer le hotfix éditeur). S'agissant d'un zero-day, le patch seul n'est pas une réponse complète.
- Restreindre l'accès au port de management : limiter le port EMS
8013aux plages d'IP de confiance uniquement. - Auditer les configurations de scripts VPN : revoir les directives
on_connectet de script dans les Remote Access Profiles à la recherche d'entrées non autorisées.
Indicateurs de compromission
- fichiers
.cmdnommés en GUID dans le cheminlogs\Trace\scripts\de FortiClient ; - chaînes de processus
fortitray.exeanormales ; - process enfants inattendus de l'EMS (
cmd.exe,powershell.exe).
Vérifier l'efficacité du patch en rejouant un test sûr d'usurpation d'en-tête.
Ce qu'il faut retenir
Une seule compromission EMS équivaut à une exposition de tout le parc endpoint. Au-delà du patch, traiter tous les identifiants et cookies de session des endpoints gérés comme potentiellement compromis et déclencher une rotation des identifiants navigateur. Si la campagne EKZ a touché votre EMS, c'est une réponse à incident fleet-wide qu'il faut ouvrir, pas un simple correctif.
- Kreomnis
Références
- nvd NVD - CVE-2026-35616
- vendor Fortinet PSIRT
- research Analyse campagne EKZ (Arctic Wolf)