“Le sang, c’est la vie.” – Dracula
“Le CitrixBleed, c’est la fin de ta session MFA.” – Un admin débordé
🧠C’est quoi ce bazar encore ?
Tu viens de patcher le dernier CitrixBleed de 2023 ? Félicitations, t’es à jour… jusqu’à hier. Bienvenue dans CitrixBleed 2, le sequel dont personne ne voulait. Une nouvelle vulnérabilité critique affecte les appliances NetScaler ADC et Gateway, ces petites boîtes noires qu’on colle en frontal d’accès VPN, d’authentification SSO, de RDP, d’ICA, bref, de tout ce qui est vital pour ton télétravail.
Et comme dans tout bon film d’horreur, le méchant est toujours le même : lecture hors limites de la mémoire, permettant de voler des jetons de session actifs. Traduction ? Un attaquant non authentifié peut littéralement récupérer la session d’un utilisateur connecté, y compris si ce dernier a passé une MFA. Oui, même avec ton Yubikey à 80 balles.
🏢 Deux mots sur NetScaler
Avant de plonger dans le bain de sang, une pause culture :
NetScaler, c’est quoi ?
- Un ADC (Application Delivery Controller) : ça fait de la répartition de charge, du SSL offload, du cache, du WAF, du trafic HTTPS optimisé…
- Un Gateway VPN : SSL VPN, ICA proxy pour Citrix Virtual Apps, clientless VPN…
- Un reverse proxy avec SSO et MFA, pour tout ce qui est access web, RDP, etc.
- Un serveur AAA pour authentifier à peu près tout et n’importe quoi.
En gros, une boîte centrale qui concentre toutes les portes d’entrée de ton SI. Tu vois venir le problème ?
💥 CitrixBleed 2 – La faille
🧬 Le petit nom : CVE‑2025‑5777
- Type :Â Out-of-Bounds Read
- Gravité : CVSS 9.3/10
- Accès requis : Aucun
- Impact : Jetons de session lisibles dans la mémoire
- Versions touchées :
- 14.1 < 14.1‑43.56
- 13.1 < 13.1‑58.32
- 12.1 (encore en vie sous respirateur)
Ce bug permet à un attaquant non authentifié de lire de la mémoire brute. Et comme les jetons d’authentification (cookies de session, tokens JWT, etc.) traînent dans cette mémoire (coucou TLS), il n’y a plus qu’à les récupérer et les injecter dans sa propre session navigateur.
Résultat ? Session hijacking. Tu prends le contrôle de la session Citrix d’un utilisateur, comme si tu étais lui. Adieu la MFA, les logs, la sécurité. Bonjour le Shadow Access.
🧪 L’exploit – Comment ça se joue
Les chercheurs de watchTowr ont montré qu’il suffisait :
- D’envoyer une requête malformée à une URL vulnérable
- De recevoir une réponse contenant un bout de mémoire (oups)
- De filtrer cette mémoire à la recherche de jetons de session ou credentials en clair
- De rejouer ce token via un cookie HTTP… et tadaa 🧙‍♂️
Et le pire ? Tout cela passe comme une lettre à la poste. Aucun exploit compliqué, pas de RCE, pas d’authentification. Un classic memory leak sauce Heartbleed – d’où le nom “CitrixBleed 2”.
đź§Ż Les actions Ă mener (et vite)
🔧 Patch immédiat :
Mets Ă jour ton NetScaler :
- 14.1‑43.56 ou plus
- 13.1‑58.32 ou plus
- 12.1‑55.328-FIPS si tu vis dangereusement
Pas de mise à jour = vulnérabilité exploitable.
🔪 Tue les sessions actives :
Exécute ces commandes après le patch :
bashC kill icaconnection -all kill pcoipConnection -all
Pourquoi ? Parce que même après le patch, les sessions volées restent valides jusqu’à leur expiration. Tu ne veux pas ça.
🕵️‍♀️ Surveille ton trafic :
- Inspecte les logs HTTP pour des requĂŞtes suspectes
- Active un WAF (Web Application Firewall)
- Trace les connexions anormales sur tes gateways VPN
đź§° Bonnes pratiques :
- Supprime les versions EOL (13.0 et autres zombies)
- Segmente ton réseau (oui, encore)
- Surveille la mémoire, même si ça pique
- MFA ? Oui, mais sans confiance aveugle
🤡 Le mot de la fin
Quand on installe une appliance censée sécuriser l’accès distant, on n’imagine pas qu’elle va distribuer les sessions actives comme des flyers au métro. Et pourtant, nous voilà ici, à tuer manuellement des connexions parce qu’un attaquant peut « sniffer » de la mémoire sans auth.
La morale ?
- Le patching n’est pas optionnel
- Un WAF ne fait pas tout
- Et une session MFA peut saigner aussi
Allez, bon patch et bon kill de sessions. Et n’oublie pas de prévenir ton RSSI avant qu’il tombe sur le tweet de Kevin Beaumont en panique.