🔍 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 :

  1. 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.
  2. NSB (NetScaler Buffers) : les données reçues sont stockées dans des objets NSB formant une liste chaînée.
  3. 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

  1. Passage du cookie DTLS : envoi d’un ClientHello, réception du HelloVerifyRequest, renvoi avec cookie — aucune authentification utilisateur requise.
  2. 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.
  3. 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.
  4. 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 mprotect puis 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

⚠️ À 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