🔍 Contexte
Publié le 29 septembre 2026 par watchTowr Labs (https://labs.watchtowr.com), cet article constitue la deuxième partie d’une série d’analyses portant sur un bulletin Citrix (CTX697096) corrigeant huit vulnérabilités dans Citrix NetScaler ADC et NetScaler Gateway. Il fait suite à une analyse du CVE-2026-88771 publiée la veille.
🎯 Vulnérabilité analysée : CVE-2026-88772
CVE-2026-88772 est un débordement mémoire (memory overflow) dans le traitement DTLS, affectant le composant préauthentification de NetScaler. Il présente un score CVSS de 9.5 (Critical) et a été exploité en zero-day dans la nature.
- Condition d’exploitation : DTLS activé (configuration par défaut sur les serveurs virtuels VPN)
- Impact : Exécution de code à distance (RCE) ou déni de service (DoS)
- Authentification requise : Aucune (préauthentification)
- Port concerné : 9462/UDP
🧩 Mécanisme technique
La vulnérabilité réside dans la fonction de réassemblage des fragments DTLS dans le binaire principal NSPPE :
- DTLS sur UDP : chaque paquet UDP peut contenir plusieurs enregistrements DTLS avec un en-tête de 13 octets, suivi d’un en-tête de fragment de 12 octets pour les messages de handshake.
- NSB (NetScaler Buffers) : les données reçues sont stockées dans des objets NSB formant une liste chaînée.
- Scratch buffer : après réassemblage, NSPPE copie la chaîne NSB dans un buffer fixe de 35 840 octets sans vérifier si les données y tiennent.
💣 Exploitation en 4 étapes
- Passage du cookie DTLS : envoi d’un ClientHello, réception du HelloVerifyRequest, renvoi avec cookie — aucune authentification utilisateur requise.
- Construction d’un enregistrement malveillant : chaque enregistrement déclare transporter 1 octet d’un message de 120 octets, mais contient ~1 459 octets réels via un en-tête caché exploitant une confusion dans le parser.
- Répétition 120 fois : après 120 enregistrements, NSPPE considère le message complet mais la chaîne NSB contient ~174 Ko de données.
- Débordement du scratch buffer : la fonction de copie déverse 137 825 octets au-delà du buffer de 35 840 octets, écrasant des données adjacentes.
🔧 Exploitation avancée (RCE)
- Absence de PIE sur le binaire NSPPE (41 Mo) permettant l’utilisation d’adresses fixes.
- Réparation du pointeur de liste global écrasé en réutilisant sa valeur constante connue.
- Falsification d’un objet virtuel à une adresse fixe pour détourner un appel de méthode virtuelle par un thread de fond.
- Chaîne ROP pour appeler
mprotectpuis sauter vers le shellcode (NX activé, pas de PIE).
🩹 Correctifs disponibles
- NetScaler ADC / Gateway 14.1-73.37 et versions ultérieures
- NetScaler ADC / Gateway 13.1-64.23 et versions ultérieures
- NetScaler ADC 14.1-FIPS 14.1-73.37 FIPS et versions ultérieures
- NetScaler ADC 13.1-FIPS / 13.1-NDcPP 13.1-37.279 et versions ultérieures
📋 Type d’article
Analyse technique approfondie (patch diffing, preuve de concept d’exploitation complète jusqu’au shellcode) publiée par watchTowr Labs pour documenter la vulnérabilité et fournir un générateur d’artefacts de détection.
🧠 TTPs et IOCs détectés
TTP
- T1190 — Exploit Public-Facing Application (Initial Access)
- T1203 — Exploitation for Client Execution (Execution)
- T1211 — Exploitation for Defense Evasion (Defense Evasion)
- T1620 — Reflective Code Loading (Defense Evasion)
- T1574 — Hijack Execution Flow (Privilege Escalation)
IOC
- CVEs :
CVE-2026-88772— NVD · CIRCL - CVEs :
CVE-2026-88771— NVD · CIRCL - CVEs :
CVE-2026-88773— NVD · CIRCL - CVEs :
CVE-2026-88774— NVD · CIRCL - CVEs :
CVE-2026-88775— NVD · CIRCL - CVEs :
CVE-2026-88776— NVD · CIRCL - CVEs :
CVE-2026-88777— NVD · CIRCL - CVEs :
CVE-2026-88778— NVD · CIRCL
⚠️ À propos de ces IOC — ils sont extraits automatiquement de l’article original le 1 octobre 2026 et n’ont pas fait l’objet d’une vérification externe. Un indicateur peut avoir été réattribué depuis : une IP de C2 peut redevenir un service légitime, un domaine sinkholé peut changer de propriétaire. Aucune garantie d’exactitude ni d’actualité — contrôlez leur validité avant tout usage opérationnel, en particulier avant de les injecter dans une blocklist ou un SIEM.
🟢 Indice de vérification factuelle : 75/100 (haute)
- ✅ labs.watchtowr.com — source reconnue (liste interne) (20pts)
- ✅ 12572 chars — texte complet (fulltext extrait) (15pts)
- ✅ 8 IOCs (IPs/domaines/CVEs) (10pts)
- ⬜ pas d’IOC vérifié (0pts)
- ✅ 5 TTPs MITRE identifiées (15pts)
- ✅ date extraite du HTML source (10pts)
- ⬜ aucun acteur de menace nommé (0pts)
- ✅ 5/5 CVE(s) confirmée(s) (CIRCL) (5pts)
🔗 Source originale : https://labs.watchtowr.com/here-we-go-again-citrix-netscaler-dtls-preauth-memory-overflow-cve-2026-88772