Synthèse
Deux vulnérabilités critiques de type zero-day (CVE-2026-1281et CVE-2026-1340) affectant Ivanti Endpoint Manager Mobile (EPMM) sont activement exploitées, impactant les flottes mobiles d'entreprise et les réseaux internes. Ces vulnérabilités permettent à des attaquants non authentifiés d'exécuter à distance du code arbitraire sur les serveurs cibles, leur octroyant un contrôle total sur l'infrastructure de gestion des appareils mobiles (MDM) sans nécessiter d'interaction utilisateur ni d'identifiants.
Unit 42 a observé une exploitation généralisée de ces vulnérabilités, incluant :
- L'établissement de reverse shells
- L'installation de webshells
- Des activités de reconnaissance
- Le téléchargement de malwares
Cette campagne a également touché les secteurs suivants aux États-Unis, en Allemagne, en Australie et au Canada :
- Gouvernements étatiques et locaux
- Santé
- Industrie manufacturière
- Services professionnels et juridiques
- Haute technologie
En raison de la gravité de la menace, l'agence américaine CISA (Cybersecurity and Infrastructure Security Agency) a ajouté la CVE-2026-1281 à son catalogue de vulnérabilités exploitées connues (KEV - Known Exploited Vulnerabilities).
Les acteurs malveillants accélèrent leurs opérations, passant de la reconnaissance initiale au déploiement de backdoors dormantes conçues pour maintenir un accès à long terme, même après l'application des correctifs par les organisations.
La télémétrie de Palo Alto Networks Cortex Xpanse a identifié la présence de plus de 4 400 instances EPMM.
Les clients de Palo Alto Networks bénéficient d'une protection accrue contre les vulnérabilités CVE-2026-1281 et CVE-2026-1340 via les produits suivants :
- Advanced URL Filtering et Advanced DNS Security
- Cortex Xpanse
- Next-Generation Firewall avec l'abonnement de sécurité Advanced Threat Prevention
Palo Alto Networks recommande également de consulter l'avis de sécurité d'Ivanti publié en janvier 2026. Ivanti y préconise l'application du RPM 12.x.0.x ou 12.x.1.x, selon la version utilisée. Les RPM sont spécifiques à la version et non à la vulnérabilité. Aucun temps d'arrêt n'est requis pour appliquer le correctif, et Ivanti n'a connaissance d'aucun impact sur les fonctionnalités logicielles. Plus de détails sont disponibles dans la section "Conseils provisoires".
L'équipe Unit 42 Incident Response peut également être sollicitée pour aider en cas de compromission ou pour fournir une évaluation proactive afin de réduire les risques.
| Vulnérabilités analysées | CVE-2026-1281, CVE-2026-1340 |
Détails de la CVE-2026-1281
La CVE-2026-1281 (score CVSS de 9.8) est une vulnérabilité critique d'exécution de code à distance (RCE) dans Ivanti EPMM. La faille réside dans des scripts bash hérités utilisés par le serveur web Apache pour gérer la réécriture d'URL.
Le composant vulnérable d'Ivanti EPMM utilise des configurations Apache RewriteMap qui pointent vers des scripts bash situés dans /mi/bin/map-appstore-url. Ces scripts sont destinés à traiter les URL pour la fonctionnalité de distribution d'applications internes ("In-House Application Distribution").
La faille est un type spécifique d'injection de code exploitant l'expansion arithmétique de bash. Le processus d'exploitation consiste à tromper le script bash pour qu'il évalue une variable contenant une commande malveillante. Ce processus se décompose comme suit:
- Manipulation de l'entrée : L'attaquant envoie une requête HTTP GET vers un point de terminaison tel que /mifs/c/appstore/fob/....
- Pointage de variable : L'attaquant définit le paramètre st sur la chaîne theValue (complétée par des espaces pour respecter les exigences de longueur). Le script assigne cette entrée à une variable nommée gStartTime.
- Injection de la charge utile (payload) : L'attaquant configure le paramètre h pour inclure la commande malveillante encapsulée dans un index de tableau, par exemple gPath['sleep 5']. Le script assigne cela à la variable theValue.
- Exécution : Le script tente de comparer gStartTime (qui contient désormais la chaîne theValue) à l'heure actuelle via une évaluation arithmétique (if [[ ${theCurrentTimeSeconds} -gt ${gStartTime} ]]).
- Expansion : Comme gStartTime pointe vers theValue, bash résout theValue. À l'intérieur de theValue, l'attaquant a intégré une substitution de commande (via l'index du tableau). Bash exécute alors la commande (ex: sleep 5 ou un reverse shell) tout en résolvant l'index du tableau.
Détails de la CVE-2026-1340
La CVE-2026-1340 (score CVSS de 9.8) impacte le mécanisme de transfert de fichiers Android d'Ivanti. Bien que la cause profonde (utilisation non sécurisée de scripts bash) soit identique à la CVE-2026-1281, elle réside dans deux scripts distincts (map-appstore-url vs. map-aft-store-url) gérant des fonctionnalités différentes. Cette vulnérabilité est déclenchée via des requêtes HTTP GET vers des points de terminaison commençant par /mifs/c/aftstore/fob/.
Portée actuelle de l'exploitation
Unit 42 a observé des tentatives d'exploitation généralisées et principalement automatisées des CVE-2026-1281 et CVE-2026-1340.
Nous avons identifié la commande suivante ciblant les serveurs Ivanti EPMM vulnérables via le format d'URL illustré ci-dessous dans la Figure 1.

Téléchargement de malwares
Dans certains cas, les attaquants ont tenté de contourner l'authentification sur la plateforme MobileIron d'Ivanti pour télécharger et exécuter immédiatement une charge utile de second niveau (le script /slt). Cette seconde étape installe généralement un webshell, un cryptomineur ou une backdoor persistante pour donner à l'attaquant le contrôle de l'équipement.
La Figure 2 ci-dessous montre un exemple de l'URL et des commandes subséquentes observées lors d'une tentative.

Activité de botnets
Nous avons observé des attaquants téléchargeant l'agent de surveillance Nezha, un utilitaire open-source de surveillance de serveurs. Ils ont utilisé des paramètres spécifiques pour récupérer l'outil sur Gitee si la victime est localisée en Chine, garantissant ainsi une base de victimes la plus large possible, quel que soit l'emplacement géographique. La Figure 3 ci-dessous montre la commande de téléchargement de l'agent Nezha.

Tentatives de reverse shell
Dans de nombreux cas, nous avons observé des tentatives d'exécution de reverse shells en injectant des commandes établissant des connexions sortantes vers un poste d'écoute. La Figure 4 ci-dessous illustre ces tentatives

Reconnaissance
Nous avons également constaté que des attaquants envoyaient des commandes sleep pour déterminer si le serveur ciblé était vulnérable. C'est une méthode simple pour tester si le serveur marque une pause de cinq secondes. Si la connexion se fige pendant exactement cinq secondes avant de renvoyer une erreur (ex: erreur 404), l'attaquant sait qu'il a obtenu une RCE et enchaînera immédiatement avec des charges utiles malveillantes. La Figure 5 montre des exemples de commandes pour ces phases de reconnaissance.

Activité de webshells
Nous avons observé des acteurs de la menace tenter d'installer des webshells JSP légers (nommés par exemple 401.jsp, 403.jsp et 1.jsp) dans le répertoire /mi/tomcat/webapps/mifs/ sur diverses cibles. Dans ces cas, si le serveur web s'exécute avec les privilèges root ou Administrateur, l'attaquant obtient le contrôle administratif du serveur. La Figure 6 ci-dessous montre un exemple de ces webshells JSP.

Conseils provisoires pour les CVE-2026-1281 et CVE-2026-1340
Un avis de sécurité d'Ivanti de janvier 2026 recommande à ses clients d'appliquer soit le RPM 12.x.0.x, soit le RPM 12.x.1.x, selon leur version. Les clients n'ont pas besoin d'appliquer les deux RPM, car ils sont spécifiques à la version et non à la vulnérabilité.
Aucune interruption de service n'est requise pour appliquer ce correctif, et l'entreprise n'a pas connaissance d'impact sur les fonctionnalités applicatives.
La recommandation d'Ivanti reste la même : les clients qui n'ont pas encore appliqué le correctif doivent le faire immédiatement, puis inspecter leur équipement pour détecter tout signe d'exploitation ayant pu survenir avant le correctif. L'application du correctif est le moyen le plus efficace de prévenir l'exploitation, quelle que soit l'évolution des IoC (indicateurs de compromission) au fil du temps, surtout une fois qu'un PoC (Proof of Concept) est disponible. Le correctif ne nécessite aucun temps d'arrêt et s'applique en quelques secondes.
Ivanti a fourni à ses clients des indicateurs de compromission de haute fidélité, une analyse technique lors de la divulgation, ainsi qu'un script de détection d'exploitation développé avec le NCSC-NL, et continue de soutenir ses clients face à cette menace.
Requêtes Unit 42 Managed Threat Hunting
L'équipe Unit 42 Managed Threat Hunting continue de traquer toute tentative d'exploitation de ces CVE chez nos clients, en utilisant Cortex XDR et les requêtes XQL ci-dessous. Les clients Cortex XDR peuvent également utiliser ces requêtes XQL pour rechercher des signes d'exploitation.
Si les logs d'Ivanti EPMM sont ingérés dans Cortex XDR ou XSIAM, la requête suivante peut être utilisée pour identifier des signes d'exploitation. Pour ce faire, le nom du jeu de données (dataset) devra être spécifié dans l'étape dataset.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
//Description: This query identifies HTTP(S) requests logged within Ivanti EPMM (Formerly MobileIron) logs that match exploitation URI parameters. The EPMM Version number is also extracted (as EPMM_Version) to provide additional context for security teams to identify if their software version is vulnerable. config case_sensitive = false //Note: Replace <ENTER_DATASET_NAME_FOR_IVANTI_EPMM> with the actual name of your Ivanti EPMM syslog dataset. | dataset = <ENTER_DATASET_NAME_FOR_IVANTI_EPMM> | fields _time, _raw_log, _reporting_device_ip, _broker_hostname | alter log_type = arrayindex(regextract(_raw_log, "^[^\+]+\+\d{2}:\d{2}\s[^\s]+\s([^\s]+)\s"),0) | filter log_type in ("https_request", "https_access", "http_request", "https_access") | alter EPMM_Version = arrayindex(regextract(_raw_log, "^(?:[^P]*P)+RODUCT=([^,]+)"),0), HTTP_Request_src_ip = if(log_type in ("https_request", "http_request"), arrayindex(regextract(_raw_log, "^(?:[^P]*P)+RODUCT=(?:[^,]+),[^\s]+\s([^\s]+)"), 0), arrayindex(regextract(_raw_log, "^(?:[^P]*P)+RODUCT=(?:[^,]+),([^:]+)"), 0)), HTTP_Method = arrayindex(regextract(_raw_log, "^(?:[^P]*P)+RODUCT=(?:[^\"]*\")(GET|POST|PUT)"), 0), HTTP_Request_URI = arrayindex(regextract(_raw_log, "^(?:[^P]*P)+RODUCT=(?:[^\"]*\")(?:GET|POST|PUT)\s+([^\"]+)"), 0), HTTP_response_Code = arrayindex(regextract(_raw_log, "^(?:[^P]*P)+RODUCT=(?:[^\"]*\")(?:GET|POST|PUT)\s+(?:[^\"]+)\"\s+([1-5]\d\d)"), 0), Attempted_command_execution = arrayindex(regextract(_raw_log, "^(?:[^P]*P)+RODUCT=(?:[^\"]*\")(?:GET|POST|PUT)\s+(?:[^=]*=)+gPath([^\s]+)"), 0) | filter HTTP_Request_URI ~= "\/mifs\/c\/(?:app|aft)store\/fob" AND HTTP_Request_URI ~= "\=gPath" | fields _time, log_type, EPMM_Version, HTTP_Request_src_ip, HTTP_Method, HTTP_Request_URI, HTTP_response_Code, Attempted_command_execution | sort asc _time |
|
1 2 3 4 5 6 7 8 9 10 11 |
// Description: This query identifies HTTP(S) requests logged by NGFW that match Ivanti EPMM exploitation URI parameters. config case_sensitive = false | dataset = panw_ngfw_url_raw | filter uri ~= "\/mifs\/c\/(?:app|aft)store\/fob" and uri ~= "\=gPath" | fields _time, app, app_category, action, source_ip, dest_ip, dest_port, url_domain, uri, file_url, http_method, http_headers, action, session_id, from_zone, to_zone | sort asc _time |
Conclusion
L’exploitation rapide de ces vulnérabilités démontre que le délai entre la divulgation et l'exploitation de masse s'est pratiquement réduit à néant, les attaquants opportunistes intégrant les nouvelles CVE dans des frameworks de scan automatisés en l'espace de quelques heures. Bien que ce type d'attaques manque de précision, la compromission réussie à grande échelle d'équipements de bord non patchés en fait des actifs à haut risque qu'un simple cycle de correctifs ne suffit pas à sécuriser. Les organisations disposant d'interfaces de gestion exposées sur Internet devraient adopter une mentalité "assumed breach" (intrusion supposée) et traiter la détection de tout indicateur comme une compromission potentielle avec une possible persistance profonde et des mouvements latéraux.
Palo Alto Networks a partagé ses conclusions avec les membres de la Cyber Threat Alliance (CTA). Les membres de la CTA utilisent ces renseignements pour déployer rapidement des protections pour leurs clients et perturber systématiquement les acteurs cybermalveillants. En savoir plus sur la Cyber Threat Alliance.
Les clients de Palo Alto Networks sont mieux protégés par nos produits, comme listé ci-dessous. Nous mettrons à jour ce bulletin d'alerte à mesure que de nouvelles informations pertinentes seront disponibles.
Protections des produits Palo Alto Networks pour les CVE-2026-1281 et CVE-2026-1340
Les clients de Palo Alto Networks peuvent s'appuyer sur diverses protections et mises à jour de produits pour identifier et se défendre contre cette menace.
Next-Generation Firewalls avec Advanced Threat Prevention
Le Next-Generation Firewall avec l'abonnement de sécurité Advanced Threat Prevention peut aider à bloquer les attaques via la signature Threat Prevention suivante : 96919.
Services de sécurité basés sur le cloud pour le Next-Generation Firewall
Advanced URL Filtering et Advanced DNS Security identifient comme malveillants les domaines et URL connus associés à cette activité.
Cortex Xpanse
Cortex Xpanse a la capacité d'identifier les appareils Ivanti EPMM exposés sur l'internet public et de transmettre ces résultats aux défenseurs. Les clients peuvent activer l'alerte sur ce risque en s'assurant d'avoir activé la règle de surface d'attaque "Ivanti Endpoint Manager Mobile (MobileIron Core)". Les résultats identifiés peuvent être consultés dans la vue incident d'Expander. Ces résultats sont également disponibles pour les clients Cortex XSIAM ayant acheté le module ASM.
Cortex Cloud
Bien qu'il n'y ait aucune indication connue d'exploitation de cette vulnérabilité au sein d'infrastructures cloud, les clients Cortex Cloud sont mieux protégés et peuvent détecter et remédier aux infrastructures cloud vulnérables grâce à la surveillance des vulnérabilités de Cortex Cloud. De plus, le déploiement approprié de l'agent endpoint XDR et des agents serverless de Cortex Cloud dans un environnement cloud aide à détecter et prévenir les opérations malveillantes, les modifications de configuration ou les exploitations à l'exécution, offrant ainsi des défenses durables de l'environnement cloud.
Si vous pensez avoir été compromis ou pour toute urgence, contactez l'équipe de réponse aux incidents de Unit 42 ou appelez :
- Amérique du Nord (numéro gratuit) : +1 (866) 486-4842 (866.4.UNIT42)
- Royaume-Uni : +44.20.3743.3660
- Europe et Moyen-Orient : +31.20.299.3130
- Asie : +65.6983.8730
- Japon : +81.50.1790.0200
- Australie : +61.2.4062.7950
- Inde : 000 800 050 45107
- Corée du Sud : +82.080.467.8774
Indicateurs de compromission (IoC)
- 23[.]227[.]199[.]80 (Port 443)
- 64[.]7[.]199[.]177 (Ports 10882, 18899)
- 83[.]138[.]53[.]139
- 84[.]72[.]235[.]18 (Port 443)
- 86[.]106[.]143[.]200 (Port 443)
- 91[.]193[.]19[.]12 (Port 443)
- 107[.]173[.]231[.]201 (Port 6666)
- 130[.]94[.]41[.]206 (Ports 8082, 10808)
- 138[.]226[.]247[.]241
- 144[.]172[.]106[.]4
- 146[.]70[.]41[.]193 (Port 443)
- 152[.]32[.]173[.]138
- 158[.]247[.]199[.]185 (Port 80)
- 185[.]173[.]235[.]232
- 192[.]242[.]184[.]234
- 193[.]242[.]184[.]234 (Port 443)
- 194[.]78[.]67[.]253 (Port 443)
- 198[.]13[.]158[.]58 (Port 8443)
- 204[.]251[.]198[.]205 (Port 443)
- [subdomain].gobygo[.]net
- [subdomain].introo[.]sh
- [subdomain].ngrok-free[.]app
- [subdomain].main[.]interacth3[.]io
- [subdomain].ddns[.]1433[.]eu[.]org
- [subdomain].oast[.]live
- [subdomain].oast[.]me
- [subdomain].oast[.]site
- [subdomain].eyes[.]sh
- [subdomain].requestrepo[.]com
- [subdomain].ceye[.]io
- interact[.].gateway[.]horizon3ai[.]com
- hxxp://152[.]32[.]173[.]138/U26d86f1899513347.5b5b0c1b
- hxxp://64[.]7[.]199[.]177:18899
- zeetcckhtudizieudqyck5o4ez16y973h[.]oast[.]fun/
- hxxp://152[.]32[.]173[.]138/U5213b63dda61af48.0F3Ab3D3
- hxps://e598292a5fbd[.]ngrok-free[.]app/
- /mi/tomcat/webapps/mifs/401.jsp
- /mi/tomcat/webapps/mifs/403.jsp
- /mi/tomcat/webapps/mifs/1.jsp
- agent[.]sh
- /mi/tomcat/webapps/mifs/css/test.css
- /mi/tomcat/webapps/mifs/css/poc.css
- /mi/tomcat/webapps/mifs/css/cssaaa.css
- /mi/tomcat/webapps/mifs/css/login.css
Mis à jour le 23 février 2026 à 9 h 45 (heure du Pacifique) pour mettre à jour la section Indicateurs de compromission.
Mis à jour le 23 février 2026 à 11 h 56 (heure du Pacifique) pour mettre à jour la section Indicateurs de compromission et mettre à jour la figure 2.