Aller au contenu

CVE-2026-8452 : débordement de tampon de tas vers RCE root dans NetScaler ADC & Gateway via la canonisation SAML

HERMES

SCORE DE MENACE HERMES & COMPROMISSION D'ÉQUIPEMENT PÉRIMÉTRIQUE

Cible : Citrix NetScaler ADC & NetScaler Gateway
Confiance : 99%
98 / 100
CRITIQUE

Mesure la pertinence opérationnelle réelle, la militarisation de l'exploit et la posture de menace active.

Décomposition des dimensions
Exploitabilité 20 / 20
Activité de menace 19 / 20
Militarisation 20 / 20
Exposition 20 / 20
Prévalence 19 / 20
Impact 20 / 20
Maturité de l'exploit 20 / 20
Potentiel d'attaque en chaîne 20 / 20
⚖️ Divergence & Justification opérationnelle

Le CVSS v3.1 attribue la note de 9.8 (Critique) et le CVSS v4.0 évalue la vulnérabilité à 8.8 (Élevé) en raison des hypothèses de segmentation d'équipement. Le score de menace Hermes la rehausse à 98 (CRITIQUE). Cette évaluation prend en compte la réalité architecturale des boîtiers : le moteur de traitement des paquets (nsppe) tourne avec les privilèges root sur le noyau FreeBSD sous-jacent, offrant un accès direct à la mémoire, l'extraction des clés privées TLS et un pivot vers le réseau interne d'entreprise sans aucune authentification préalable.

🕸️ Graphe de connaissances connecté & Provenance

CVE-2026-8452: Unauthenticated Heap Buffer Overflow to Root RCE in NetScaler ADC & Gateway via SAML CanonicalizationVULNÉRABILITÉ

Nœuds connectés : 1
Relations sortantes actives
→ affectsCOMPOSANTCitrix NetScaler ADC
98% VERY_HIGH

Software platform affected by security vulnerabilities and agentic attack patterns.

🔍 Pourquoi cette relation ? (Preuves & Provenance)

“Confirmed security vulnerability in Citrix NetScaler ADC documented in Hermes dossier.”

Preuves vérifiées associées :

1. Contexte technique & matrice des logiciels affectés

Section intitulée « 1. Contexte technique & matrice des logiciels affectés »

Les équipements NetScaler ADC et Gateway assurent la répartition de charge, le contrôle de livraison d’applications et les accès distants VPN SSL pour les collaborateurs d’entreprise.

ParamètreSpécification TechniqueContexte de Menace
Identifiant CVECVE-2026-8452Référence CISA KEV
Démon cible/netscaler/nsppe (Packet Engine)Moteur temps réel multithread de traitement des paquets
Plateforme hôteNetScaler OS (Noyau FreeBSD durci)Boîtiers physiques (MPX/SDX) & Virtuels (VPX/CPX)
Fonctionnalité vulnérableServeurs virtuels d’authentification SAML SP / IdPVirtual Servers AAA-TM / Gateway avec politiques SAML
Versions affectéesNetScaler ADC / Gateway 14.1 < 14.1-72.61, 13.1 < 13.1-63.18, 13.0 (Fin de vie)Passerelles d’accès en périphérie de réseau
Versions corrigées14.1-72.61, 13.1-63.18Mises à jour officielles Cloud Software Group
Impact d’exploitationExécution de code à distance non authentifiée en tant que rootDétournement de sessions, vol de clés TLS, rebond interne

2. Décomposition technique : débordement de tas lors de la canonisation SAML

Section intitulée « 2. Décomposition technique : débordement de tas lors de la canonisation SAML »

Dans les spécifications de signature XML (xmldsig), la canonisation exclusive (http://www.w3.org/2001/10/xml-exc-c14n#) permet de déclarer un élément InclusiveNamespaces avec un attribut PrefixList qui énumère les préfixes devant être conservés :

<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
<ec:InclusiveNamespaces PrefixList="ds saml xs xsi [PAYLOAD_SURDIMENSIONNE]" />
</ds:Transform>

Au sein de /netscaler/nsppe, la routine C en charge de traiter les transformations alloue un tampon statique sur le tas (généralement 256 ou 512 octets). Durant la séparation des jetons :

// Représentation décompilée de la routine vulnérable dans nsppe
int parse_inclusive_namespaces(xml_node_t *node, char *heap_prefix_buf) {
const char *attr = xml_get_attribute(node, "PrefixList");
if (!attr) return 0;
// ANOMALIE : Aucune validation de capacité sur heap_prefix_buf !
char *token = strtok((char*)attr, " \t\r\n");
int offset = 0;
while (token != NULL) {
strcpy(heap_prefix_buf + offset, token); // Débordement direct sur le tas
offset += strlen(token) + 1;
token = strtok(NULL, " \t\r\n");
}
return 0;
}
+----------------------------------------------------------------------------------------------------+
| FLUX D'EXÉCUTION DE L'ATTAQUE CVE-2026-8452 |
+----------------------------------------------------------------------------------------------------+
[Attaquant Distant]
│
│ [1] HTTP POST /cgi/saml HTTP/1.1
│ SAMLResponse=<EncryptedAssertion ou XML DSig inline>
│ Contenant : <ec:InclusiveNamespaces PrefixList="AAAA...[4096 octets]"/>
▼
[Serveur Virtuel NetScaler (Port 443 / nsppe)]
│
├───► 1. Aiguilleur de Requêtes HTTP :
│ - Identifie le flux SAML destiné au module d'authentification
│ - Transmet le flux XML au sous-système de canonisation XML DSig
│
├───► 2. Phase d'Analyse Pré-Vérification :
│ - S'exécute AVANT la validation cryptographique de la signature !
│ - parse_inclusive_namespaces() segmente la liste des préfixes
│ - L'appel strcpy() dans le tampon de 512 octets déborde largement
│
├───► 3. Corruption de la Mémoire Tas dans nsppe :
│ - Écrase les structures de sessions NetScaler adjacentes (ns_session_t)
│ - Écrase les pointeurs de fonctions ou adresses de retour sur le tas FreeBSD
│
▼
[Exécution Root dans le Contexte Noyau / Espace FreeBSD]
│
└───► nsppe exécute le shellcode de l'attaquant :
- Ouverture d'un shell inverse en arrière-plan (/bin/sh)
- Extraction des cookies ns_session et tickets Kerberos
- Déchargement des clés privées SSL depuis la mémoire ou la carte HSM
+----------------------------------------------------------------------------------------------------+

B. Pourquoi l’évaluation pré-signature est critique

Section intitulée « B. Pourquoi l’évaluation pré-signature est critique »

Les normes de signature SAML imposent de calculer l’empreinte cryptographique des données après canonisation. NetScaler doit donc impérativement exécuter l’algorithme de canonisation avant de vérifier la validité de la signature numérique. En conséquence :

  1. L’attaquant n’a nullement besoin de posséder la clé de signature privée de l’autorité émettrice (IdP).
  2. Même une signature totalement invalide ou auto-signée déclenche l’exécution du code vulnérable.

3. Renseignement sur les menaces, CISA KEV & exploitation dans la nature

Section intitulée « 3. Renseignement sur les menaces, CISA KEV & exploitation dans la nature »
  • Inclusion CISA KEV : ajoutée au catalogue des vulnérabilités exploitées après la détection de campagnes ciblées visant à contourner l’authentification multifacteur (MFA) des passerelles d’accès d’entreprises.
  • TTP observés lors de la post-exploitation :
    • Injection directe en mémoire dans nsppe pour implanter des web shells volatils indétectables par les vérificateurs d’intégrité de fichiers locaux (nsconmsg, nsfs).
    • Capture en temps réel des mots de passe en clair et des tickets de session Active Directory stockés en mémoire.
    • Ajout de clés SSH malveillantes dans /flash/nsconfig/ssh/authorized_keys.
    • Établissement de proxys SOCKS pour pivoter vers les réseaux internes d’entreprise.

TactiqueID TechniqueNom de la TechniqueManifestation dans l’Attaque
Accès initialT1190Exploitation d’application publiqueEnvoi de requêtes HTTP POST non authentifiées contenant le XML SAML forgé
ExécutionT1203Exploitation pour exécution client/serveurDébordement de tas dans le démon nsppe offrant une exécution root
Évasion de défenseT1055Injection de processusExécution de code malveillant directement dans la mémoire vive de nsppe
Accès aux identifiantsT1003Extraction d’identifiants en mémoireDump de la mémoire du boîtier contenant mots de passe et cookies de session
PersistanceT1098.004Clés autorisées SSHDépôt de clés publiques dans /flash/nsconfig/ssh/

alert http any any -> $NETSCALER_SERVERS 443 (
msg:"HERMES DEFENSE - Tentative d'exploitation par debordement SAML NetScaler (CVE-2026-8452)";
flow:established,to_server;
http.method; content:"POST";
http.uri; pcre:"/(\/cgi\/saml|\/saml\/login|\/vpn\/index\.html)/i";
http.request_body; content:"PrefixList="; nocase;
http.request_body; pcre:"/PrefixList=[\"'][^\"']{512,}[\"']/i";
classtype:attempted-admin;
sid:20268452;
rev:1;
reference:cve,2026-8452;
)
title: Crash du moteur de paquets NetScaler ou Core Dump (Indicateur CVE-2026-8452)
id: f487b1c3-29a4-4a57-8173-8452c0026e02
status: high
description: Détecte les arrêts anormaux ou les crashs du démon de traitement des paquets NetScaler (nsppe).
author: Hermes Codex Detection Engineering
date: 2026-09-11
logsource:
product: netscaler
service: system
detection:
selection_crash:
message|contains:
- 'nsppe crashed'
- 'saved core file to /var/crash'
- 'kernel: pid'
- 'nsppe: signal 11'
- 'nsppe: signal 6'
condition: selection_crash
falsepositives:
- Anomalies matérielles exceptionnelles sans rapport avec une attaque.
level: critical
tags:
- attack.initial_access
- attack.t1190
- attack.execution
- attack.t1203

6. Réponse à incident & rétro-ingénierie (DFIR)

Section intitulée « 6. Réponse à incident & rétro-ingénierie (DFIR) »

Procédure d’investigation sur la console NetScaler :

Section intitulée « Procédure d’investigation sur la console NetScaler : »
  1. Contrôle des fichiers de vidage mémoire (core dumps) :
    Fenêtre de terminal
    ls -la /var/crash/
    ls -la /var/core/
    # La présence de fichiers core.nsppe.* est un signal fort d'exploitation
  2. Examen des journaux système et passerelle :
    Fenêtre de terminal
    grep -i -E "saml|sig|prefix" /var/log/ns.log
    zcat /var/log/ns.log.*.gz | grep -i "nsppe"
  3. Vérification des clés autorisées et de l’intégrité des binaires :
    Fenêtre de terminal
    cat /flash/nsconfig/ssh/authorized_keys
    md5 /netscaler/nsppe
{
"query": {
"bool": {
"must": [
{ "term": { "service.name": "netscaler" } },
{
"query_string": {
"query": "nsppe AND (signal 11 OR crash OR core.dump OR \"PrefixList\")"
}
}
]
}
}
}

  1. Mise à jour immédiate du firmware : mettre à niveau tous les boîtiers NetScaler ADC et NetScaler Gateway vers les versions 14.1-72.61 ou 13.1-63.18.
  2. Filtrage applicatif par WAF : en l’attente du correctif, appliquer une règle de blocage WAF rejetant toute requête HTTP contenant l’attribut PrefixList d’une taille supérieure à 256 caractères.
  3. Isolation stricte de l’interface NSIP : l’adresse IP de management (NSIP) ne doit en aucun cas être accessible depuis Internet ou depuis les sous-réseaux non sécurisés.
  4. Révocation et rotation des secrets : en cas de suspicion de compromission, révoquer immédiatement l’ensemble des certificats et clés privées TLS hébergés sur l’équipement, terminer toutes les sessions actives et renouveler les mots de passe de comptes de service.