
Ivanti corrige la CVE-2026-104935, exploitée depuis début octobre par un acteur inconnu qui enchaîne trois zero-day pour obtenir les droits root sur Connect Secure sans authentification. Le troisième maillon, une élévation de privilèges, reste sans correctif, et l’Integrity Checker Tool d’Ivanti ne détecte pas la compromission.
Les faits
Le 13 octobre 2026, Ivanti publie l’avis de sécurité 000109571 consacré à la CVE-2026-104935, un contournement d’authentification par usurpation dans Ivanti Connect Secure, abrégé ICS (1), sa passerelle VPN (2). L’éditeur indique que la faille permet à un attaquant distant non authentifié d’exécuter des commandes arbitraires et qu’il a connaissance d’une exploitation touchant un nombre limité de clients au moment de la publication. Les versions corrigées sont disponibles.
Le même jour, Volexity publie l’analyse de l’incident qui a conduit à la découverte. Un acteur jusqu’alors inconnu, que la société suit sous le nom UTA0576, exploite depuis le 3 octobre 2026 une chaîne de trois vulnérabilités sur une passerelle ICS à jour, en version 22.8R2.4, pour exécuter du code avec les droits root sans s’authentifier. La CVE-2026-104935 couvre les deux premiers maillons de la chaîne. Le troisième, une élévation de privilèges, n’a ni CVE (3) ni correctif à la date de publication ; Ivanti annonce une correction dans une version ultérieure, dans les semaines à venir.
L’agence américaine CISA (4) ajoute la CVE-2026-104935 à son catalogue KEV (5) le 13 octobre 2026, avec une échéance de remédiation au 16 octobre 2026 pour les agences fédérales, et publie une alerte qui reprend les procédures de récupération d’Ivanti. Elle y précise qu’une recherche de compromission suppose une analyse forensique du réseau et de la mémoire, l’Integrity Checker Tool pouvant ne rien détecter.
Mettre à jour ferme le point d’entrée de la chaîne mais ne dit rien d’une compromission antérieure : l’acteur n’a déposé ni backdoor ni web shell, a rejoué l’exploitation à chaque commande et a nettoyé les journaux. Toute passerelle ICS exposée et restée en version vulnérable après le 1er octobre 2026 relève d’une recherche de compromission, avec réinitialisation des comptes de service Active Directory qu’elle utilise.
Chronologie
| Date | Événement | Source |
|---|---|---|
| Juillet 2026 | Publication de la 25.1.3.0, qui corrige la partie de la vulnérabilité découverte en interne | Ivanti |
| 25 septembre 2026 | Dernière modification du guide de compatibilité 25.x | Ivanti |
| 30 septembre au 7 octobre 2026 | Serveur OpenVPN actif sur 108.165.147[.]64 | Volexity |
| 1er octobre 2026 | Premiers signes d’exploitation observés par Defused | BleepingComputer |
| 3 octobre 2026 | Première exploitation de la passerelle étudiée par Volexity | Volexity |
| 5 octobre 2026 | Ouverture de l’enquête de Volexity ; mise à disposition de la 25.1.1.2 | Volexity, Ivanti |
| 10 octobre 2026 | Indicateurs fournis aux clients de Volexity ; règle YARA (6) de détection de l’élévation de privilèges | Volexity |
| 12 octobre 2026 | Mise à disposition de la 22.8R2.5 ; bulletin TIB-20261012 de Volexity | Ivanti, Volexity |
| 13 octobre 2026 | Avis Ivanti, analyse de Volexity, publication de la CVE, ajout au catalogue KEV et alerte de la CISA | Ivanti, Volexity, CISA |
| 16 octobre 2026 | Échéance de remédiation KEV pour les agences fédérales américaines | CISA |
| 31 janvier 2027 | Fin de vie des branches 22.7 et 22.8 | Ivanti |
Fig. 1. Chronologie reconstituée à partir de l’avis Ivanti, de l’analyse de Volexity, de la fiche CVE et de l’alerte de la CISA.
L’échéance de trois jours découle de la directive BOD (7) 26-04 de la CISA, à laquelle renvoie l’action requise de l’entrée KEV, avec une obligation de triage forensique. La version 25.1.1.2 était disponible deux jours après le début de l’exploitation observée par Volexity, et la 22.8R2.5 la veille de la publication de l’avis : une passerelle 22.8 mise à jour le jour de l’avis est restée vulnérable pendant au moins dix jours d’exploitation constatée.
Versions concernées et correctifs
Trois branches sont touchées. La branche 22.7 ne l’est pas jusqu’à la 22.7R2.14 incluse. La branche 25.1.3, publiée en juillet 2026, ne l’est pas non plus : Ivanti indique avoir découvert une partie de la vulnérabilité dans le cadre de son programme de sécurité produit et l’avoir corrigée dans cette version, puis avoir travaillé au report de la correction sur les autres versions maintenues lorsque l’exploitation est survenue. Le chemin de correction dépend aussi de la plateforme Ivanti Secure Access, dite ISA (8), sur laquelle fonctionne la passerelle, matérielle ou virtuelle.
| Branche | Versions vulnérables | Version corrigée | Date de mise à disposition | Plateformes |
|---|---|---|---|---|
| 25.1.1 | 25.1.1.1 et antérieures | 25.1.1.2 | 5 octobre 2026 | Matériel ISA6000 et ISA8000 ; virtuel ISA4000, ISA6000 et ISA8000 |
| 25.1.2 | 25.1.2.2 et antérieures | 25.1.3.0, 25.1.3.1 | Juillet 2026 pour 25.1.3.0 | Nouvelle plateforme ISA4500, ISA6500 ou ISA8500 |
| 22.8 | 22.8R2.4 et antérieures | 22.8R2.5 | 12 octobre 2026 | Branche de transition vers 25.1, fin de vie le 31 janvier 2027 |
| 22.7 | Non concernée jusqu’à 22.7R2.14 incluse | Sans objet | Sans objet | Fin de vie le 31 janvier 2027 |
Fig. 2. Versions concernées et corrigées selon l’avis Ivanti 000109571, recoupées avec la fiche de la CVE, les critères CPE (9) de la NVD (10) et l’alerte de la CISA.
Pour la branche 22.8, Ivanti recommande de passer directement en 25.1.1.2 ou ultérieure, la 22.8 n’étant conçue que comme une passerelle temporaire de la 22.7 vers la 25.1 ; la 22.8R2.5 est proposée aux clients qui ne peuvent pas migrer immédiatement. Les deux branches 22.7 et 22.8 arrivent en fin de vie le 31 janvier 2027.
Trois écritures des versions à ne pas confondre
La description de la CVE indique « ICS before version 25.1.3.0 », formulation qui, lue seule, désignerait aussi comme vulnérables les versions corrigées 25.1.1.2 et 22.8R2.5. Les critères CPE publiés par la NVD retiennent trois périmètres plus précis : de 25.1.0.0 à 25.1.1.2 exclue, de 25.1.2.0 à 25.1.3.0 exclue, et les versions 22.8R2 à 22.8R2.4. La fiche du CNA (11) liste comme non affectées les versions 25.1.3.0, 25.1.3.1, 22.8R2.5 et 22.7R2.14. Enfin, la section Solution de l’avis Ivanti écrit « Versions 22.7.14 and lower » là où la description et la fiche CVE écrivent 22.7R2.14.
Un outil de gestion des vulnérabilités qui s’appuie sur la seule description textuelle de la CVE peut signaler à tort une passerelle en 25.1.1.2 ou en 22.8R2.5. La correspondance de versions à retenir est celle des critères CPE et du tableau de l’avis, pas la phrase de description.
Une chaîne en trois maillons
Volexity décrit trois vulnérabilités distinctes, dont l’enchaînement donne une exécution de code avec les droits root sans authentification. Les deux premières, contournement d’authentification et écriture de fichier menant à l’exécution de code, sont suivies sous la CVE-2026-104935. La troisième ne l’est pas.
| Maillon | Composant | Effet | Statut |
|---|---|---|---|
| 1. Contournement d’authentification | welcome.cgi | Acheminement d’une requête non authentifiée vers un script CGI (12) protégé | CVE-2026-104935, corrigée |
| 2. Écriture de fichier et exécution | wu.cgi | Exécution de code avec les droits de l’utilisateur cgi-server | CVE-2026-104935, corrigée |
| 3. Élévation de privilèges | dsinvoked, DSCache | Exécution de commandes avec les droits root | Sans CVE, correctif annoncé |
Fig. 3. Les trois maillons de la chaîne d’exploitation décrite par Volexity le 13 octobre 2026.
Le contournement d’authentification
Le script /dana-na/auth/url_default/welcome.cgi est public : il sert la page de connexion de la passerelle et accepte donc les requêtes sans authentification. Volexity montre que la passerelle décide d’autoriser une requête d’après son URL (13), mais choisit le script de destination d’après la valeur de l’en-tête HTTP (14) X-DSCGI-PATH. Une requête adressée à welcome.cgi et portant dans cet en-tête le chemin d’un script non public, ici /home/webserver/htdocs/dana/fb/smb/wu.cgi, est donc autorisée comme une requête publique, puis transmise à un script qui s’exécute dans un contexte de confiance. C’est le sens de la classe de faiblesse 290 du référentiel CWE (15) retenue par Ivanti, un contournement d’authentification par usurpation.
L’écriture de fichier et la situation de concurrence
Le gestionnaire de téléversement wu.cgi écrit le contenu reçu dans /home/runtime/tmp/, sous un nom égal à l’empreinte MD5 (16) du nom de fichier fourni par le client, puis vérifie seulement après l’écriture qu’il s’agit d’une archive ZIP (17) valide. L’acteur envoie un script Perl portant l’extension .zip ; le contrôle échoue et le fichier est supprimé, mais il existe sur le disque pendant un bref intervalle. L’acteur envoie en parallèle plusieurs requêtes dont l’en-tête X-DSCGI-PATH pointe vers ce fichier temporaire, par la même technique que le premier maillon. Si l’une d’elles atteint le fichier avant sa suppression, le script s’exécute. Le script Perl lance un script Bash, qui exécute à son tour un script Python transmis compressé et encodé, décodé puis exécuté en mémoire seulement.
L’élévation de privilèges, toujours ouverte
Le service dsinvoked s’exécute avec les droits root et lance à la demande des tâches de maintenance, dont il lit le programme dans DSCache, le magasin de configuration partagé de la passerelle. Le script Python de l’acteur modifie en mémoire la copie de la bibliothèque /home/lib/libdsplibs.so chargée par le processus cgi-server, ce qui lui permet de modifier DSCache et de rediriger une tâche existante, ScriptUtil/updateOpswatSDK, vers l’interpréteur Perl. Il demande ensuite à dsinvoked d’exécuter cette tâche avec un script Perl en argument, qui s’exécute avec les droits root. Le script contrôle sa réussite en testant la lecture de /etc/shadow, puis restaure l’entrée DSCache vers /home/bin/updateOpswatSDK.pl et l’octet modifié de la bibliothèque en mémoire, par /proc/self/mem. La bibliothèque sur disque n’est jamais modifiée.
Après mise à jour, l’élévation de privilèges reste exploitable par tout code qui s’exécuterait avec les droits cgi-server. Le correctif ferme l’accès sans authentification décrit par Volexity ; il ne protège pas contre un autre point d’entrée qui serait découvert d’ici la publication du correctif de dsinvoked. Volexity estime par ailleurs probable que d’autres chemins, en URL comme en valeur d’en-tête, soient identifiés pour le premier maillon.
Ce que l’acteur a fait sur la passerelle
Volexity a ouvert son enquête le 5 octobre 2026 chez un client de son offre de surveillance réseau, à partir d’une activité suspecte dont l’origine a été remontée jusqu’à la passerelle ICS. L’acteur n’a pas utilisé de canal de commande et de contrôle distinct : chaque commande transitait par les requêtes HTTPS (18) de la chaîne d’exploitation, qui était rejouée intégralement à chaque fois, et le résultat revenait dans la réponse HTTP. Volexity estime avec une confiance élevée que l’opérateur interagissait avec les résultats plutôt que de dérouler un script préparé, au vu de la diversité des commandes.
| Objectif | Actions observées | Artefacts cités par Volexity |
|---|---|---|
| Configuration et journaux de la passerelle | Collecte de la configuration, dont les méthodes d’authentification ; extraction des noms d’utilisateur depuis les journaux d’authentification | /home/etc/pulse/, /home/etc/, /home/*.cfg, /home/runtime, log.events.vc0, /tmp/pu.txt |
| Identifiants stockés | Extraction des identifiants de domaine utilisés par la passerelle pour LDAP (19) | Non précisé |
| Annuaire Active Directory | Requêtes LDAP avec le compte de service Active Directory de la passerelle, à la recherche des mots de passe LAPS (20), des informations de récupération BitLocker, des attributs userPassword et unixUserPassword et des chemins de scripts de connexion ; export compressé et encodé en JSON (21) | /tmp/ml.py, /tmp/rq5.py |
| Kerberos | Outil Kerberos écrit en Python pour tester des identifiants ; fonction de Kerberoasting présente mais non utilisée | /tmp/mk.py, /tmp/rr.py |
| Interception réseau | Binaire tcpdump renommé, filtrant les ports des protocoles en clair (LDAP, HTTP, FTP (22), telnet) sur huit fichiers de capture tournants ; analyse des captures pour récupérer les identifiants LDAP, HTTP Basic et les empreintes NTLM (23) ; exfiltration des 8 premiers Ko d’une capture | /data/.icscap/dsstatmond, /data/.icscap/h.py, /data/.icscap/cap0 |
| Reconnaissance et password spray | Exfiltration de /etc/resolv.conf, résolution DNS (24) de domaines internes, puis password spray contre des comptes Active Directory | sp_run.py, sp_out.txt, spray_hits.json |
Fig. 4. Actions de post-exploitation reconstituées par Volexity à partir de la mémoire, du disque et des fichiers core de la passerelle compromise.
La technique de capture des échanges LDAP depuis la passerelle a déjà été observée par Volexity chez un autre acteur, UTA0533, qui avait obtenu les droits root par l’exploitation d’un zero-day sur des passerelles SonicWall SMA, décrite en juillet 2026. L’opération ayant été détectée et interrompue, Volexity n’a pas pu établir l’objectif final de l’acteur ; elle estime avec une confiance élevée que ses actions préparaient un mouvement latéral et une compromission plus large du réseau de la victime.
Attribution
- Motivation criminelle plutôt qu’espionnage : confiance faible, fondée sur la nature de la cible
- Recours à des LLM (25) pour le développement des codes d’exploitation et la post-exploitation : confiance moyenne, fondée sur l’usage continu du canal d’exploitation, des scripts très spécifiques à identifiants codés en dur et la complexité de la chaîne
- Infrastructure : adresse IP (26)
108.165.147[.]64, un VPS (27) de l’hébergeur Evoxt, sur lequel un serveur OpenVPN a fonctionné du 30 septembre au 7 octobre 2026
Pourquoi l’Integrity Checker Tool ne voit rien
L’Integrity Checker Tool d’Ivanti compare les fichiers présents sur le disque de la passerelle à leur état attendu. La chaîne d’UTA0576 ne laisse rien de durable à ce niveau : la bibliothèque n’est modifiée qu’en mémoire puis restaurée, l’entrée DSCache est remise à sa valeur d’origine, les scripts sont exécutés en mémoire ou supprimés après usage. Volexity en conclut que l’outil ne détecte aucune modification, et la CISA comme Ivanti reprennent cette réserve.
Les charges récupérées par Volexity contiennent plusieurs fonctions destinées à effacer les traces :
- Suppression sélective des entrées récentes de
/home/runtime/dlogs/debugloget/var/log/audit/audit.log, les fichiers étant tronqués puis réécrits avec les seules entrées antérieures à la fenêtre ciblée - Suppression par le script Perl exécuté avec les droits root de son propre fichier
/home/runtime/tmp/ics-root-run-inband-*.pl, et des résultats temporaires/home/runtime/tmp/ics-root-result-inband-* - Suppression explicite de
/tmp/rq5.pyet/tmp/rr.pyaprès exécution - Redirection des flux des processus de nettoyage vers
/dev/null - Rotation des huit fichiers de capture, qui écrase le trafic capturé le plus ancien
Volexity précise que la présence de ces fonctions est établie dans le code récupéré, mais que la mesure dans laquelle chacune a abouti sur la passerelle compromise n’est pas entièrement établie. L’exploitation a été reconstituée à partir de l’image mémoire, de l’image disque et des fichiers core générés par l’exploitation elle-même, collectés avec Ivanti.
La FAQ de l’avis Ivanti invite à exécuter régulièrement l’Integrity Checker Tool pour savoir si l’on a été compromis. Pour cette chaîne, un résultat négatif de l’outil n’est pas une preuve d’absence de compromission ; la CISA demande une analyse forensique du réseau et de la mémoire.
Une faille, plusieurs notations
Ivanti, en tant que CNA, note la CVE-2026-104935 à 8,6 sur l’échelle CVSS (28), sévérité élevée. Le vecteur publié dans l’avis porte le préfixe CVSS:3.0, celui de la fiche CVE le préfixe CVSS:3.1 ; les huit métriques sont identiques et le score de base est le même dans les deux versions du référentiel.
| Source | Notation | Lecture |
|---|---|---|
| Avis Ivanti | 8,6, CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L | Accès réseau, sans privilège ni interaction ; confidentialité élevée, intégrité et disponibilité faibles |
| Fiche CVE et NVD | 8,6, CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L, CWE-290 | Mêmes métriques, statut « Analyzed » à la NVD |
| Décision SSVC (29) de la CISA | Exploitation active, automatisable yes, impact technique total | Horodatée au 13 octobre 2026 à 15:42 UTC (30) |
Fig. 5. Notations publiées pour la CVE-2026-104935 au 13 octobre 2026.
Le vecteur d’Ivanti classe l’atteinte à l’intégrité et à la disponibilité comme faible, alors que la description de la CVE annonce l’exécution de commandes arbitraires et que la CISA qualifie l’impact technique de total. Le score CVSS ne porte que sur les deux maillons couverts par la CVE, qui donnent une exécution avec les droits cgi-server ; l’élévation de privilèges vers root, qui fait de la chaîne une prise de contrôle complète, n’est notée nulle part faute de CVE. La sévérité « élevée » porte donc sur les deux maillons corrigés, pas sur l’effet observé de la chaîne complète.
Mettre à jour : ce que dit le guide de compatibilité 25.x
La CISA renvoie, en complément de l’avis, vers le guide de compatibilité des mises à jour et des migrations de la branche 25.x publié par Ivanti (article 000108861). Le document, créé le 6 septembre et modifié pour la dernière fois le 25 septembre 2026, est antérieur aux versions correctives 25.1.1.2 et 22.8R2.5, qui n’y figurent pas : leur chemin de mise à jour est à vérifier dans les notes de version correspondantes.
| Version cible | Mise à jour sur place depuis | Migration de configuration depuis |
|---|---|---|
25.1.3.1 | 25.1.3.0 | 25.1.3.0, 25.1.2.2, 25.1.1.1, 22.7R2.14 |
25.1.3.0 | 25.1.2.1 (matériel ISA-6500 seul), 25.1.2.2 (matériel ISA-6500 et ISA-8500 seul) | 25.1.2.2, 25.1.2.1, 25.1.1.1, 25.1.1.0, 22.8R2.4, 22.7R2.14 |
25.1.1.1 | 25.1.1.0, 22.8R2.3 | 25.1.0.1, 25.1.1.0, 22.8R2.3, 22.7R2.12 |
25.1.1.0 | 25.1.0.1, 25.1.0.0, 22.8R2.3, 22.8R2.2, 22.8R2.1 | 25.1.0.1, 25.1.0.0, 22.8R2.3, 22.8R2.2, 22.8R2.1, 22.7R2.12, 22.7R2.11 |
25.1.0.1 | 25.1.0.0, 22.8R2 | 25.1.0.0, 22.8R2, 22.7R2.8 |
25.1.0.0 | 22.8R2 | 22.8R2, 22.7R2.8, 22.7R2.7 |
Fig. 6. Matrice de compatibilité du guide Ivanti 000108861, état du 25 septembre 2026. Les deux colonnes portent le même intitulé « Upgrade From » dans l’original ; leur distinction entre mise à jour sur place et migration de configuration suit le texte d’introduction du guide.
Les contraintes à anticiper
- La mise à jour directe vers 25.1.3.0 n’est prise en charge que sur les matériels ISA-6500 et ISA-8500 ; les matériels ISA-6000 et ISA-8000 et les passerelles virtuelles existantes doivent migrer vers une plateforme prise en charge. L’avis précise que la 25.1.3.0 exige la nouvelle plateforme, ISA4500, ISA6500 ou ISA8500, et que les passerelles virtuelles ou cloud doivent être reconstruites à partir du modèle 25.1.3.0
- Les versions 25.1.2.1 et 25.1.2.2 sont réservées aux matériels ISA-6500, et ISA-8500 pour la seconde, et ne sont pas en téléchargement libre
- Les déploiements virtuels exigent un vTPM (31)
- Une grappe ne peut pas être mise à jour directement de 22.8R2 vers 25.x : elle doit être dissociée, chaque nœud mis à jour séparément, puis la grappe recréée ; la mise à jour de grappe n’est prise en charge qu’à l’intérieur de la branche 25.x
- Le guide renvoie à une liste des fonctions abandonnées en 25.x, à consulter avant toute migration depuis 22.x
Une passerelle en 22.8R2.x qui ne peut pas migrer dans l’immédiat passe en 22.8R2.5 ; c’est la seule option qui ne suppose ni changement de plateforme ni dissociation de grappe. Une passerelle en 25.1.1.1 ou antérieure sur ISA6000 ou ISA8000 passe en 25.1.1.2. Une passerelle en 25.1.2.x passe en 25.1.3.0 ou 25.1.3.1. Dans tous les cas, la mise à jour ne dispense pas de la recherche de compromission décrite plus loin.
Détection et indicateurs
Trafic vers la passerelle
Volexity recommande de surveiller un volume important de requêtes vers /dana-na/auth/url_default/welcome.cgi portant un en-tête de la forme suivante :
X-DSCGI-PATH: /home/webserver/htdocs/dana/fb/smb/wu.cgiX-DSCGI-PATH: /home/runtime/tmp/<MD5(filename)>
D’autres chemins pouvant être trouvés pour l’URL comme pour l’en-tête, Volexity conseille de rechercher plus largement toute discordance entre le chemin de l’URL et la valeur de X-DSCGI-PATH. La situation de concurrence du deuxième maillon impose à l’attaquant d’envoyer plusieurs requêtes rapprochées, et la chaîne est rejouée pour chaque commande : une exploitation se traduit donc par des rafales de requêtes répétées.
Artefacts sur la passerelle
| Emplacement | Nature |
|---|---|
/tmp/ | Scripts ml.py, rq5.py, mk.py, rr.py, sp_run.py ; résultats pu.txt, sp_out.txt, spray_hits.json ; fichiers JSON compressés et encodés |
/data/.icscap/ | Répertoire caché : dsstatmond (tcpdump renommé), h.py, captures cap* |
/home/runtime/tmp/ | ics-root-run-inband-*.pl, ics-root-result-inband-*, fichiers nommés d’après une empreinte MD5 |
| Processus | dsstatmond en écoute réseau, lancé depuis un répertoire caché |
/home/runtime/dlogs/debuglog, /var/log/audit/audit.log | Trous dans la chronologie des entrées récentes |
| Fichiers core | Générés par l’exploitation, exploitables en analyse forensique |
Fig. 7. Artefacts cités par Volexity. Une partie est supprimée par l’acteur ; leur absence ne vaut pas absence de compromission.
Indicateurs publiés par Volexity
Le dépôt GitHub de Volexity pour cette campagne contient un seul indicateur réseau, l’adresse 108.165.147[.]64, décrite comme adresse d’exploitation d’UTA0576, et deux règles YARA :
exploit_log_ivanti_rce, qui recherche dans des fichiers ou des régions mémoire la chaîneX-DSCGI-PATH: /home/webserver/htdocs/dana/fb/smb/wu.cgiexploit_py_ivanti_oct26, qui détecte en mémoire l’implémentation Python de l’élévation de privilèges, à partir de chaînes propres au script de l’acteur ; empreinte SHA-256 (32) de référence25b95f47359c327e3a5ae5ac5cd147f8d9afd98092faf136822ee287e25e3dc8
Côté Active Directory
Au vu des actions décrites par Volexity, la recherche s’étend aux contrôleurs de domaine. Les actions de l’acteur passent par le compte de service Active Directory de la passerelle et partent de son adresse. Les journaux des contrôleurs de domaine sont à examiner sur cette adresse source et ce compte : requêtes LDAP portant sur les mots de passe LAPS et les informations de récupération BitLocker, demandes de tickets Kerberos inhabituelles, échecs d’authentification répartis sur de nombreux comptes, caractéristiques d’un password spray. Ivanti indique que les indicateurs disponibles restent limités.
En cas de compromission suspectée
La CISA reprend les procédures de récupération d’Ivanti en cinq étapes :
| Étape | Action |
|---|---|
| 1 | Sauvegarder la configuration de la passerelle, selon la procédure Ivanti de sauvegarde et de restauration de la configuration binaire par serveur d’archivage |
| 2 | Réinitialiser la passerelle aux paramètres d’usine et la mettre à jour vers la dernière version |
| 3 | Pour les passerelles virtuelles et cloud, reconstruire l’instance et la mettre à jour vers la dernière version |
| 4 | Restaurer la configuration sauvegardée à l’étape 1 |
| 5 | Réinitialiser les mots de passe de tous les comptes, de domaine, d’administration et locaux ; révoquer et réémettre les certificats stockés ; réinitialiser les clés d’API (33) stockées et les identifiants du serveur de licences |
Fig. 8. Procédure de récupération recommandée par la CISA le 13 octobre 2026, d’après les procédures d’Ivanti.
La CISA demandant une analyse forensique de la mémoire, l’acquisition de la mémoire et du disque doit précéder la réinitialisation aux paramètres d’usine : la chaîne s’exécutant en mémoire, une réinitialisation préalable efface l’essentiel des éléments qui permettent d’établir ou d’écarter la compromission. Au vu des actions décrites par Volexity, l’étape 5 s’étend aux comptes dont la passerelle détient ou voit passer les secrets : compte de service Active Directory de la passerelle, comptes dont les identifiants ont pu transiter en clair par LDAP ou HTTP Basic, mots de passe LAPS et clés de récupération BitLocker lisibles par ce compte de service.
Qualification des sources
L’avis d’Ivanti, l’analyse de Volexity, la fiche CVE et l’alerte de la CISA sont des sources primaires, lues en intégralité. Les versions ont été recoupées entre ces quatre documents.
| Élément | Statut | Commentaire |
|---|---|---|
| Versions vulnérables et corrigées | corroboré | Avis Ivanti, fiche CVE du CNA, critères CPE de la NVD et alerte de la CISA concordants ; seule l’écriture « 22.7.14 » de la section Solution de l’avis diverge. |
| Exploitation active | corroboré | Avis Ivanti, analyse de Volexity, ajout au catalogue KEV et décision SSVC de la CISA. |
| Score et vecteur CVSS | corroboré | Métriques identiques dans l’avis et la fiche CVE, préfixe 3.0 dans l’avis et 3.1 dans la fiche. |
| Fonctionnement de la chaîne, post-exploitation et anti-forensique | source unique | Analyse de Volexity, seule source technique ; Ivanti et la CISA y renvoient sans la détailler. |
| Élévation de privilèges non corrigée | corroboré | Volexity ; reprise par la presse spécialisée. L’avis Ivanti ne la mentionne pas. |
| Premiers signes d’exploitation au 1er octobre 2026 | source unique | Observation de Defused rapportée par BleepingComputer, non consultée à la source. |
| Plus de 5 500 passerelles ICS exposées | source unique | Chiffre de Shadowserver rapporté par BleepingComputer, sans distinction des pots de miel ni des passerelles déjà corrigées. |
| Motivation criminelle de l’acteur | source unique | Estimation de Volexity à confiance faible. |
| Description « ICS before version 25.1.3.0 » comme périmètre des versions vulnérables | écarté | Contredite par l’avis et les critères CPE, qui donnent 25.1.1.2 et 22.8R2.5 comme corrigées. |
Évaluation
Analyse fondée sur l’avis Ivanti 000109571 du 13 octobre 2026, le guide de compatibilité 000108861 dans son état du 25 septembre 2026, l’analyse de Volexity du 13 octobre 2026 et ses indicateurs sur GitHub, l’alerte de la CISA et la fiche de la CVE consultée sur Vulnerability-Lookup, le 14 octobre 2026. Les indicateurs n’ont pas été testés. Les éléments de la chaîne d’exploitation sont repris au niveau de détail utile à la détection. Les niveaux de la grille relèvent du jugement.
Lexique
- ICS (1) : Ivanti Connect Secure, passerelle d’accès distant d’Ivanti, anciennement Pulse Connect Secure.
- VPN (2) : Virtual Private Network, réseau privé virtuel.
- CVE (3) : Common Vulnerabilities and Exposures, identifiant public attribué à une vulnérabilité.
- CISA (4) : Cybersecurity and Infrastructure Security Agency, agence américaine de cybersécurité et de sécurité des infrastructures.
- KEV (5) : Known Exploited Vulnerabilities, catalogue de la CISA des vulnérabilités dont l’exploitation est constatée.
- YARA (6) : outil et langage de règles de détection de motifs dans des fichiers ou des régions mémoire.
- BOD (7) : Binding Operational Directive, directive opérationnelle contraignante de la CISA pour les agences fédérales civiles américaines.
- ISA (8) : Ivanti Secure Access, gamme de plateformes matérielles et virtuelles sur lesquelles s’exécute Connect Secure.
- CPE (9) : Common Platform Enumeration, nomenclature normalisée des produits et versions, employée par la NVD pour décrire les configurations vulnérables.
- NVD (10) : National Vulnerability Database, base de vulnérabilités du NIST.
- CNA (11) : CVE Numbering Authority, organisme habilité à attribuer des CVE et à publier leur fiche ; ici Ivanti.
- CGI (12) : Common Gateway Interface, interface d’exécution de scripts par un serveur web.
- URL (13) : Uniform Resource Locator, adresse d’une ressource sur le web.
- HTTP (14) : Hypertext Transfer Protocol, protocole de transfert du web.
- CWE (15) : Common Weakness Enumeration, classification des faiblesses logicielles.
- MD5 (16) : Message Digest 5, fonction de hachage.
- ZIP (17) : format d’archive compressée.
- HTTPS (18) : HTTP Secure, HTTP chiffré par TLS.
- LDAP (19) : Lightweight Directory Access Protocol, protocole d’accès aux annuaires, dont Active Directory.
- LAPS (20) : Local Administrator Password Solution, solution Microsoft de gestion des mots de passe d’administrateur local, stockés dans Active Directory.
- JSON (21) : JavaScript Object Notation, format texte de données structurées.
- FTP (22) : File Transfer Protocol, protocole de transfert de fichiers.
- NTLM (23) : NT LAN Manager, protocole d’authentification de Microsoft.
- DNS (24) : Domain Name System, système de résolution des noms de domaine.
- LLM (25) : Large Language Model, grand modèle de langage.
- IP (26) : Internet Protocol, protocole d’adressage du réseau Internet.
- VPS (27) : Virtual Private Server, serveur virtuel loué chez un hébergeur.
- CVSS (28) : Common Vulnerability Scoring System, système de notation de la gravité des vulnérabilités.
- SSVC (29) : Stakeholder-Specific Vulnerability Categorization, méthode d’aide à la décision de traitement des vulnérabilités, appliquée par la CISA.
- UTC (30) : Coordinated Universal Time, temps universel coordonné.
- vTPM (31) : virtual Trusted Platform Module, module de sécurité matériel émulé pour une machine virtuelle.
- SHA-256 (32) : Secure Hash Algorithm 256 bits, fonction de hachage employée pour les empreintes de fichiers.
- API (33) : Application Programming Interface, interface de programmation.
Sources
- Ivanti, Security Advisory Ivanti Connect Secure (CVE-2026-104935), article 000109571, 13 octobre 2026. hub.ivanti.com
- Ivanti, Ivanti Connect Secure 25.x Upgrade and Migration Compatibility Guide, article 000108861, 6 septembre 2026, modifié le 25 septembre 2026. hub.ivanti.com
- Volexity, Charlie Gardner, Sean Koessel, Steven Adair, A Series of Unauthenticated Events: Chained Exploitation of Ivanti Connect Secure Zero-Days, 13 octobre 2026. volexity.com
- Volexity, indicateurs et règles YARA de la campagne,
iocs.csvetrules.yar, 12 octobre 2026. github.com/volexity/threat-intel - CISA, CISA Urges Patching Newly Exploited Vulnerability in Ivanti Connect Secure, 13 octobre 2026. cisa.gov
- CISA, catalogue Known Exploited Vulnerabilities, entrée CVE-2026-104935, consulté le 14 octobre 2026. cisa.gov/known-exploited-vulnerabilities-catalog
- RadioCSIRT, Vulnerability-Lookup, fiche CVE-2026-104935 (données NVD, CNA et ADP de la CISA), consultée le 14 octobre 2026. cve.radiocsirt.org
- BleepingComputer, Sergiu Gatlan, Ivanti warns of Connect Secure zero-day exploited in attacks, 13 octobre 2026. bleepingcomputer.com
Marquage TLP:CLEAR, PAP:CLEAR. Diffusion libre, exploitation sans restriction.
Les analyses présentées ici n’engagent que leur auteur et reposent sur les sources publiques listées ci-dessus.



