Les failles de Citrix NetScaler transforment les appliances en tunnels réseau avec accès root
Citrix confirme l'exploitation des CVE-2026-88771 et 88772 sur NetScaler, permettant exécution root, web shells et tunnels vers réseaux internes.
Image d’illustration générée par IA
Citrix a confirmé l’exploitation active de deux vulnérabilités préauthentification dans NetScaler ADC et NetScaler Gateway. Ces failles, CVE-2026-88771 et CVE-2026-88772, permettent à des attaquants de compromettre des appliances vulnérables sans identifiants valides.
Les attaques ne se limitent pas à l’exécution de code initiale. Les enquêteurs ont observé des web shells PHP dissimulés, des configurations de serveur web modifiées, un accès root persistant, des vols d’identifiants et la mise en place de tunnels reliant des appareils NetScaler exposés à des réseaux internes.
Ces deux vulnérabilités figurent au catalogue Known Exploited Vulnerabilities de la Cybersecurity and Infrastructure Security Agency (CISA) des États-Unis depuis le 27 septembre 2026. Les agences fédérales doivent y remédier au plus tard le 30 septembre 2026.
Deux failles exploitées dans les mêmes versions de NetScaler
CVE-2026-88771 est une vulnérabilité liée à une validation incorrecte des entrées, classée CWE-20. Elle permet à un attaquant distant non authentifié d’exécuter des commandes arbitraires.
La NVD lui attribue un score CVSS v3 de 9,8 et le vecteur suivant :
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVE-2026-88772 est une faille de sûreté mémoire classée CWE-119, qui concerne les opérations effectuées en dehors des limites valides d’un tampon mémoire. Elle peut entraîner l’exécution de code à distance ou un déni de service. Le scénario d’exploitation fait intervenir DTLS.
La NVD lui attribue un score de 8,1 et le vecteur suivant :
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Un autre rapport attribue à CVE-2026-88772 un score de 9,5. Cet écart ne change rien à son importance opérationnelle : Citrix a confirmé son exploitation et une attaque réussie peut permettre l’exécution de shellcode avec les privilèges root.
Les seuils de version concernés indiqués pour ces deux vulnérabilités sont les suivants :
| Produit | Versions concernées |
|---|---|
| NetScaler ADC | Versions antérieures à 14.1-73.37 |
| NetScaler ADC | Versions antérieures à 13.1-64.23 |
| NetScaler ADC FIPS | Versions antérieures à 14.1-73.37 FIPS |
| NetScaler ADC FIPS and NDcPP | Versions antérieures à 13.1.37.279 FIPS and NDcPP |
| NetScaler Gateway | Versions antérieures à 14.1-73.37 |
| NetScaler Gateway | Versions antérieures à 13.1-64.23 |
Le résumé des produits de la NVD mentionne également les versions de NetScaler Application Delivery Controller et NetScaler Gateway antérieures à 13.1-64.23. Les administrateurs doivent installer les dernières mises à jour de sécurité de Citrix, plutôt que de se fier uniquement à la comparaison des numéros de version.
Des fragments DTLS malformés provoquent une importante écriture hors limites
La faille la mieux documentée, CVE-2026-88772, est due à une gestion incohérente des messages fragmentés de négociation DTLS.
NetScaler fait confiance au champ fragment_length d’un fragment même lorsque sa valeur ne correspond pas à la longueur totale indiquée par length pour la négociation. Dans l’exemple analysé par Sina Kheirkhah, chercheur chez watchTowr, le message complet indique une longueur de 120 octets, alors que chaque fragment prétend n’en contenir qu’un seul.
Un attaquant peut envoyer des fragments couvrant les décalages de 0 à 119. Lorsque tous ces décalages sont présents, NetScaler considère la négociation comme terminée et lance le réassemblage.
La quantité de données mise en mémoire tampon peut toutefois largement dépasser la longueur déclarée du message. Chaque paquet de 1 459 octets est stocké dans un NetScaler Buffer, ou NSB. Les paquets sont ensuite copiés dans un tampon temporaire de 35 840 octets.
L’implémentation vulnérable ne vérifie pas que chaque paquet entrant tiendra dans le tampon avant d’y écrire. Après 120 enregistrements, la négociation semble complète, alors que la chaîne NSB associée contient environ 174 Ko. Son réassemblage provoque une écriture hors limites.
Selon l’analyse technique de CVE-2026-88772, le dépassement de tampon peut rediriger l’exécution vers du shellcode contrôlé par l’attaquant. La chaîne d’exploitation utilise mprotect() pour contourner les protections mémoire NX et obtenir une exécution avec les privilèges root.
La télémétrie de Mandiant confirme une conclusion similaire : des en-têtes d’enregistrement spécialement conçus ou fragmentés corrompent les limites du tas dans le NetScaler Packet Processing Engine (NSPPE), permettant l’exécution de shellcode sur le système FreeBSD sous-jacent. L’exploitation peut aussi provoquer l’arrêt inopiné du NSPPE. Des plantages inexpliqués du moteur de traitement des paquets constituent donc un signal utile à rechercher.
Les détails techniques de l’exploitation de CVE-2026-88771 n’ont pas été rendus publics. On sait toutefois qu’elle ne nécessite aucune authentification et permet d’exécuter des commandes arbitraires.
Des web shells dissimulés derrière des requêtes de fichiers ordinaires
GreyNoise a détecté une tentative d’attaque contre un NetScaler Gateway le 24 septembre 2026, soit trois jours avant la divulgation publique des vulnérabilités par Citrix. L’attaque provenait de 149.104.78.141.
Les attaquants ont cherché à modifier /bin/sh pour obtenir un shell root et à installer un web shell PHP protégé par mot de passe à l’emplacement suivant :
/var/netscaler/logon/LogonPoint/custom/.ctxs.receiver
Ils ont également tenté de modifier /etc/httpd.conf. Leur objectif était de faire en sorte que des requêtes visant des ressources CSS apparemment inoffensives, dont receiver.min.css, exécutent le fichier PHP dissimulé.
D’autres intrusions ont utilisé des méthodes de camouflage similaires. Mandiant a découvert des web shells enregistrés sous forme de fichiers .deb dans des répertoires normalement réservés aux logiciels clients NetScaler. Les attaquants ont configuré ces fichiers de paquets pour qu’ils soient exécutés comme du PHP.
Dans d’autres cas, du code malveillant était dissimulé dans des fichiers .sig. Les modifications apportées à la configuration du serveur web redirigeaient vers les charges utiles PHP les requêtes visant des images .ico sous /vpn/media/.
Les shells utilisaient des fonctions comme shell_exec() et eval() pour exécuter des commandes. Certains renvoyaient de fausses réponses HTTP 404 tout en exécutant ces commandes, ce qui donnait au trafic malveillant l’apparence de requêtes infructueuses portant sur du contenu statique ordinaire.
L’exploitation initiale donnait accès aux privilèges root, mais les commandes lancées par le serveur web NetScaler héritaient généralement d’un compte moins privilégié. Les attaquants ont contourné cette limite en activant le bit setuid sur /bin/sh, conservant ainsi un moyen de retrouver les privilèges root. Ils ont également redémarré les appliances ou le serveur web pour appliquer les changements de configuration.
WHIPSHOT et SLAPSHOT ouvrent des accès aux réseaux internes
Mandiant a identifié deux familles de logiciels malveillants jusqu’alors inconnues au cours de ces intrusions.
WHIPSHOT est un web shell PHP déguisé en paquet Debian et placé dans le répertoire des scripts VPN de NetScaler. Il extrait des données encodées en Base64 à partir des en-têtes HTTP et sert de proxy HTTP à un second implant.
WHIPSHOT peut vérifier si cet implant est en cours d’exécution. Il peut également extraire les charges utiles Python intégrées et les lancer en arrière-plan.
SLAPSHOT est le composant de tunnellisation écrit en Python. Il reçoit des instructions via WHIPSHOT et peut se connecter à des hôtes internes, échanger des données et fermer des sessions. Il peut s’arrêter de lui-même après une période d’inactivité.
Lors d’au moins une intrusion, les attaquants ont utilisé ce tunnel pour mener manuellement des opérations de reconnaissance sur le réseau interne et voler des identifiants. Cette capacité rend la compromission d’une appliance particulièrement dangereuse : les systèmes NetScaler sont souvent accessibles depuis Internet, tout en se trouvant dans une position du réseau qui peut leur permettre d’atteindre des services internes.
La détection classique sur les terminaux ne couvre pas nécessairement ces appliances. Une exploitation réussie peut donc créer une passerelle difficile à surveiller, qui contourne les protections du périmètre.
Mandiant estime que les attaques ont commencé au plus tard début septembre et ont touché des organisations d’Amérique du Nord et d’Europe. Les victimes comprenaient des entités gouvernementales, financières, éducatives, juridiques et de services professionnels. L’identité des attaquants n’a pas été révélée.
Les recherches de compromission doivent se poursuivre après l’installation des correctifs
L’installation des dernières mises à jour de sécurité de Citrix bloque les vecteurs de vulnérabilité connus, mais ne supprime pas les traces d’une compromission antérieure. Les équipes doivent examiner les appliances afin de détecter toute persistance ou modification de configuration.
Les éléments à vérifier en priorité comprennent :
- Le web shell
.ctxs.receiveret tout fichier inattendu dans les répertoires web de NetScaler. - Les directives
AliasouAliasMatchnon autorisées danshttpd.conf. - Les gestionnaires PHP associés aux extensions
.deb,.sig,.icoou à d’autres extensions inhabituelles. - Le code PHP intégré à des fichiers présentés comme des paquets, des signatures, des images ou des feuilles de style.
- Les permissions setuid root appliquées à
/bin/sh. - Toute modification du propriétaire, du mode ou du contenu de
/bin/sh. /tmp/.uxdportou/tmp/.uxdlock, associés à SLAPSHOT.- Les processus Python lancés via
nohup. - Les commandes ou fichiers Python contenant d’importantes charges utiles encodées en Base64.
- Les arrêts inattendus du NSPPE.
- Les commandes suspectes associées à des réponses HTTP 404.
- Les connexions impliquant
149.104.78.141.
GreyNoise n’a pas publié l’exploit complet. L’absence de trafic provenant de l’adresse identifiée ne suffit donc pas à établir qu’une appliance est saine.
Dans la mesure où les contraintes opérationnelles le permettent, les organisations doivent préserver les journaux et fichiers de configuration pertinents avant de reconstruire ou de redémarrer les systèmes suspects. Les identifiants auxquels une appliance compromise a pu accéder doivent également être considérés comme potentiellement exposés.
La désactivation de DTLS ne protège que contre l’une des deux vulnérabilités
Lorsqu’un correctif ne peut pas être installé immédiatement, la désactivation de DTLS peut réduire l’exposition à CVE-2026-88772. Les organisations qui n’ont pas besoin de DTLS peuvent également bloquer en amont de l’appliance le trafic UDP entrant sur le port 443.
Aucune de ces mesures ne protège contre CVE-2026-88771. La mise à jour vers une version corrigée de NetScaler est la seule mesure disponible qui couvre les deux vulnérabilités exploitées.
La CISA exige des agences fédérales qu’elles appliquent les mesures d’atténuation des éditeurs, suivent les recommandations de correction fondées sur les risques de BOD 26-04 et respectent ses exigences en matière de triage forensique avant le 30 septembre 2026. Pour les services cloud, les agences doivent suivre les recommandations applicables de BOD 26-04 ou cesser de les utiliser si aucune mesure d’atténuation n’est disponible. Elles doivent également évaluer l’exposition de chaque actif à Internet.
Ces entrées ne sont pas des cas isolés dans l’historique récent du catalogue KEV de Citrix. CVE-2026-19490 y a été ajoutée le 9 septembre 2026, puis CVE-2026-8452 le 26 août 2026.
L’exploitation de CVE-2026-88771 et de CVE-2026-88772 est déjà avérée. Il faut associer l’installation des correctifs à une analyse forensique : les attaquants observés ont mis en place des mécanismes d’accès persistants et se sont servis d’appliances compromises pour atteindre des systèmes situés derrière le périmètre réseau.
Sources
Cet article est une réécriture originale fondée sur les sources ci-dessous.
CVE traitées dans cet article
- CVE-2026-88771Critique9.8Improper input validation vulnerability in Citrix NetScaler ADC and Citrix NetScaler Gateway. This issue affects ADC: before 14.1-73.37, before 13.1-64.23, before 14.1-73.37 FIPS, and before 13.1.37.279 FIPS and NDcPP; Gateway: before 14.1-73.37 and before 13.1-64.23 leading to an unauthenticated a
- CVE-2026-88772Élevée8.1Vulnerability in Citrix NetScaler ADC and Citrix NetScaler Gateway. This issue affects ADC: before 14.1-73.37, before 13.1-64.23, before 14.1-73.37 FIPS, and before 13.1.37.279 FIPS and NDcPP; Gateway: before 14.1-73.37 and before 13.1-64.23 leading to Remote Code Execution or Denial of Service




