CitrixBleed: the patch closed the leak but left the stolen keys working
CVE-2023-4966 leaked post-MFA session tokens from NetScaler. Organizations that patched and stopped there got breached anyway, because a stolen token still worked after the update. The action that mattered was killing every active session, and a lot of victims skipped it.
CitrixBleed is the bug that taught a lot of organizations a hard lesson about the difference between patching a vulnerability and ending a breach. CVE-2023-4966 leaked valid session tokens out of Citrix NetScaler appliances. Plenty of victims did exactly what you’re supposed to do, applied Citrix’s October 10, 2023 update, and still got compromised, because the patch stopped the leak but did nothing about the tokens that had already leaked. A stolen session token kept working after the update. The action that actually mattered, terminating every active session, wasn’t a patch step, and skipping it is how the most damaging intrusions of late 2023 happened.
This is the original CitrixBleed. The sequels that followed in 2025 and 2026 repeated the pattern, but this is the one that hit Boeing, ICBC, and a long list of others.
What the bug is
CVE-2023-4966 is a buffer over-read (CWE-119) in NetScaler ADC and NetScaler Gateway configured as a Gateway (VPN virtual server, ICA Proxy, CVPN, RDP Proxy) or AAA virtual server. Citrix rates it 9.4; NVD scores it 7.5 because it’s “only” information disclosure. The mechanism is the reason that lower score is misleading: an attacker sends a large crafted HTTP request, the appliance over-reads memory in its response, and the leaked memory can contain a valid NetScaler AAA session cookie, one issued after the user already passed authentication, including multi-factor.
That’s the devastating part. The leaked token represents a fully-authenticated session. An attacker who replays it gets an authenticated session on the appliance without ever knowing the username, the password, or having the MFA device. The bug doesn’t break MFA; it walks around it by stealing the thing MFA was used to issue. Mandiant’s investigation found exploitation as a zero-day going back to late August 2023, and heavy n-day exploitation after disclosure. CISA added it to the Known Exploited Vulnerabilities catalog on October 18, 2023, with a November 8 deadline and the ransomware flag.
Why patching wasn’t enough
Here’s the trap that caught real organizations. The standard mental model is: vulnerability disclosed, patch released, apply patch, threat closed. For a session-token-leaking bug, that model has a hole. The patch stops new tokens from leaking. It does not invalidate the tokens that leaked before you patched. If an attacker grabbed a valid session token during the exploitation window, that token remained usable against the patched appliance until the session was explicitly killed.
So the remediation had two required steps, and the second one was the one people missed. After upgrading, you had to terminate all active and persistent sessions on the NetScaler, using the documented commands (kill icaconnection -all, kill pcoipConnection -all, kill aaa session -all, kill rdp connection -all). CISA and Citrix both spelled this out, and Mandiant warned explicitly that patched devices were still being accessed via previously-stolen tokens. The organizations that patched but didn’t reset sessions left the door open behind a locked-looking front.
The consequences were not subtle. LockBit 3.0 affiliates used CVE-2023-4966 for initial access; a joint CISA/FBI advisory confirmed Boeing Distribution was breached through it, and the same campaign was tied to the disruptive intrusion at ICBC’s US financial-services arm. Session-token theft was the entry, and incomplete remediation kept it open.
What to do
If you somehow still run an unremediated NetScaler, or you’re building the playbook so the next session-hijacking bug doesn’t catch you, the sequence is what matters.
- Patch to a fixed build. Get NetScaler ADC/Gateway to the fixed versions (ADC 14.1-8.50+, 13.1-49.15+, 13.0-92.19+, 12.1-55.300+, and the matching Gateway builds). This stops the leak.
- Then terminate all sessions. Run the
killcommands for ICA, PCoIP, AAA, and RDP connections after upgrading. This is the step that evicts an attacker holding a stolen token, and it is not optional. Patching without it is a half-remediation. - Hunt for session hijacking that already happened. Look for the same session token in use from multiple IPs or geographies, authenticated sessions with no corresponding login event, and post-access activity: LDAP reconnaissance, lateral movement, and credential theft from the network behind the gateway. Mandiant published indicators; an exposed-and-unpatched appliance from the August-to-November 2023 window should be treated as potentially breached.
- Rotate credentials reachable from the compromised sessions. A hijacked session could be used to harvest credentials and pivot, so if you find evidence of access, the response expands beyond the appliance.
- Bake the two-step model into your IR playbook. For any vulnerability that leaks credentials, tokens, or session material, “patch” and “invalidate what leaked” are separate actions, and the second is the one that ends the breach.
The reframe is the durable takeaway, and it generalizes well past Citrix. A patch fixes the flaw. It does not retroactively undo what the flaw already gave away. For information-disclosure and session-hijacking bugs, the leaked material outlives the patch, so remediation has to include invalidating it: kill the sessions, rotate the tokens, reset the credentials. CitrixBleed is the canonical example because so many capable organizations patched, exhaled, and were compromised through tokens already in an attacker’s hands. We flag these the day they hit the catalog and say plainly when patching is only half the job, because the half everyone forgets is the half the attacker is counting on.
Sources
- CISA Known Exploited Vulnerabilities Catalog
- CISA: Guidance for addressing Citrix NetScaler CVE-2023-4966 (Citrix Bleed) — 2023-11
- NVD CVE-2023-4966 — 2023-10-10
- Citrix/NetScaler security bulletin CTX579459 — 2023-10-10
- Mandiant/Google Cloud: Investigation of session hijacking via Citrix CVE-2023-4966 — 2023-10
- HHS: LockBit 3.0 exploiting Citrix Bleed sector alert — 2023-11
Share
Related field notes
-
Patching the NetScaler RCE doesn't tell you if a webshell is already on it
CVE-2023-3519 was an unauthenticated RCE on Citrix NetScaler used as a zero-day to drop webshells. Patching closes the hole; it doesn't remove an implant planted before you patched. With a black-box appliance, finding out is the hard part. Here's the IOC-hunt runbook.
-
Shitrix: the Citrix bug that taught everyone how fast a perimeter RCE goes from PoC to pandemic
CVE-2019-19781, 'Shitrix,' was a path-traversal RCE in Citrix NetScaler. After disclosure with no patch, a public exploit dropped and mass exploitation followed within days. It set the template for the NetScaler-as-target story that CitrixBleed later continued.
-
They read one file off the VPN gateway and left with your whole Active Directory
CVE-2024-24919 is filed as 'information disclosure.' On a Check Point gateway that meant unauthenticated file read, which meant password hashes, which meant ntds.dit within hours. It was a zero-day for a month before disclosure, and patching it doesn't undo the theft.
One email, every weekday morning.
You're in. Check your inbox.