CitrixBleed 3 — CVE-2026-3055

Citrix NetScaler ADC / NetScaler Gateway out-of-bounds memory read (SAML IdP) → session-token disclosure → session hijacking. Companion: CVE-2026-4368.
Threat
CVE-2026-3055 · CitrixBleed 3
Severity
EXPLOITED ITW · CVSS 9.3
Type
Edge-device / memory disclosure
Access
Unauthenticated · remote
Version
v0.1 · 2026-06-25
Author
HuntPack
Confidence
High (behavioral)
01

Executive Summary

CVE-2026-3055 ("CitrixBleed 3") is a critical (CVSS 9.3) out-of-bounds memory read (CWE-125) in Citrix NetScaler ADC and NetScaler Gateway appliances configured as a SAML Identity Provider (IdP). An unauthenticated remote attacker sends a crafted SAML request that triggers a memory overread, leaking sensitive appliance memory — session tokens, cookies, and other authentication artifacts — back in the response. Captured tokens let the attacker replay a valid authenticated session (session hijacking), bypassing MFA, exactly as the original CitrixBleed (CVE-2023-4966) and CitrixBleed 2 (CVE-2025-5777) did.

Citrix patched on 2026-03-23/24. WatchTowr observed active reconnaissance within a week; CISA added it to KEV on 2026-03-31; a Metasploit module landed 2026-03-31; and Fortinet confirmed large-scale active exploitation against internet-facing SAML-IdP NetScaler appliances in early June 2026. Companion CVE-2026-4368 (CVSS 7.7, race condition in Gateway/AAA on build 14.1-66.54) is fixed in the same releases.

Defensive reality: the appliance itself is the leak surface and there are no published atomic IOCs (no attacker IPs, hashes, or domains). The disclosure happens inside encrypted TLS to the appliance, so EDR will not see the overread directly. The hunt is behavioral: it lives in NetScaler/AAA logs (anomalous SAML/AAA traffic, IdP-initiated logins with no matching user session) and — most importantly for Falcon — in the downstream blast radius: hijacked sessions landing on internal hosts from the NetScaler/VPN egress, impossible-travel and new-device authentications, and lateral movement that follows.

Defender priority: Patching alone does NOT evict an attacker who already stole a session token. After upgrading every SAML-IdP NetScaler, you MUST terminate all active sessions (kill aaa session -all, kill icaconnection -all, kill pcoipConnection -all) and force re-authentication — then hunt for sessions that originated before the kill from the appliance's egress.

02

Source Review & Web Hunter Notes

TierSourceKey FindingCarry Forward
VendorCitrix CTX696300CWE-125 memory overread; SAML-IdP precondition; affected/fixed versions; companion CVE-2026-4368; detect config via show authentication samlIdPProfileYes
GovCISA KEVAdded 2026-03-31 — confirmed exploited, federal remediation deadline appliesYes
Vendor TIFortinetLarge-scale active exploitation against internet-facing SAML-IdP NetScaler appliances confirmed ~2026-06-02Yes
ResearchHadrianMemory overread leaks session tokens / credentials / keys / config; monitor SAML processing errors and SAML requests from unexpected source IPsYes
Researchthreat-modeling.comHunt for IdP-initiated logins with no matching user session, unfamiliar source ranges, unauthorized SAML config changes, new local accountsYes
NewsHelp Net SecurityPatch 2026-03-24; WatchTowr recon 2026-03-30; explicit parallel to CitrixBleed; restrict access via network controlsPartial
RefNVD CVE-2026-3055CVSS v4.0 9.3 AV:N/AC:L/AT:N/PR:N/UI:N; vector confirms unauth network exploitationYes

IOC provenance note: No source published concrete atomic IOCs (IPs, hashes, domains, filenames). WatchTowr released detection scripts and described how IOCs "might look," but no attributable atomic indicators exist. This pack is deliberately behavioral / TTP-driven — no IOCs were invented to pad it.

03

Hunt Brief & Attack Chain

The exploit is a single unauthenticated request; the damage is everything an attacker does with a stolen, fully-authenticated session. Falcon telemetry begins where the hijacked session touches the network and endpoints behind the gateway.

Hunt hypotheses (highest fidelity first)

#HypothesisMITRETelemetryConf
H1A user session is authenticated from the NetScaler/VPN egress IP but the same user is concurrently logged on from a different geo/device (session token replay)T1550.004UserLogonHigh
H2An internal host receives interactive/remote logons sourced from the NetScaler appliance IP at an anomalous hour or volume after the appliance went unpatched-and-exposedT1133 / T1078UserLogonHigh
H3Post-hijack discovery: a freshly-landed session immediately runs AD/host recon (whoami, net group, nltest, dsquery) within minutes of first logonT1087 / T1018ProcessRollup2High
H4A new local/domain account is created or added to a privileged group shortly after a NetScaler-egress logonT1136 / T1098UserAccountAddedToGroupMedium
H5Lateral movement from the first-landed host: remote service / WMI / PsExec-style child processes to additional internal hostsT1021 / T1570ProcessRollup2Medium
H6Outbound connections from the NetScaler management subnet to rare external IPs (recon scanners / exploitation infrastructure probing the appliance)T1190NetworkConnectIP4Medium
H7Credential-access tooling (LSASS access, comsvcs MiniDump) on a host first reached via a NetScaler-egress sessionT1003.001ProcessRollup2Medium

Attack chain

StepActionTelemetryHunt Angle
1 · ReconIdentify internet-facing NetScaler with SAML IdP enabledAppliance/web logs (not EDR)Scanner traffic to SAML endpoints; correlate with H6
2 · ExploitCrafted SAML request triggers OOB read; response leaks memoryNetScaler ns.log / AAA logsSAML parse errors, oversized/anomalous SAML responses
3 · HarvestParse leaked memory for valid session tokens / cookiesNone on EDR (in-appliance)Behavioral only — pivot to downstream effect
4 · ReplayReuse stolen token → fully authenticated session, MFA bypassedUserLogon (egress IP)H1/H2 — logon from appliance egress + concurrent/impossible-travel
5 · DiscoveryEnumerate AD, hosts, shares from landed sessionProcessRollup2H3 — recon process bursts post-logon
6 · Persist/ExpandNew accounts, group changes, lateral movement, cred dumpingProcessRollup2 / UserAccountAddedToGroupH4/H5/H7
04

Consolidated IOC Table

No atomic IOCs (IPs, hashes, domains, filenames) have been published by any cited source for CVE-2026-3055. The indicators below are configuration / behavioral — the only honest, source-backed indicators for an in-appliance memory-disclosure bug. Atomic-IOC rows are intentionally omitted rather than fabricated.

TypeValue / PatternConfidenceActionContext
Config (vuln)add authentication samlIdPProfile * present in ns.confHighhuntExposure precondition — appliance is exploitable (Citrix CTX696300)
VersionNetScaler 14.1 < 14.1-66.59 / 13.1 < 13.1-62.23 / FIPS-NDcPP < 13.1-37.262HighdetectUnpatched/vulnerable build (Citrix CTX696300 / NVD)
BehaviorSAML/AAA logon from NetScaler egress IP with concurrent session for same user elsewhereMediumhuntSession-token replay signal (threat-modeling.com)
BehaviorIdP-initiated login with no matching originating user sessionMediumhuntHijacked token reuse (threat-modeling.com)
BehaviorSAML processing errors / requests to SAML endpoints from unexpected source IP rangesMediumhuntExploitation attempt artifact (Hadrian)
BehaviorUnauthorized SAML config change / new local account on applianceMediumhuntPost-compromise persistence (threat-modeling.com)
05

Affected Surface & Telemetry Matrix

SurfaceRequired TelemetryPriorityGap Risk
NetScaler ADC / Gateway appliancens.log / AAA / syslog forwarded to NGSIEMCriticalHigh — not EDR-covered; needs syslog ingest
Identity (SAML SP / AD / Entra)UserLogon, federation/sign-in logsCriticalMedium — depends on IdP log forwarding
Windows / server endpoints behind gatewayProcessRollup2, UserLogon, UserAccountAddedToGroupHighLow — Falcon-native
Internal network egress from applianceNetworkConnectIP4MediumMedium — appliance IP must be known

The single most valuable enrichment for this hunt is a list of your NetScaler / VPN egress IP(s). Every CQL below that references egress uses the placeholder 10.20.30.40 — replace it with your appliance's internal source IP(s) before running.

06

ATT&CK Mapping

TacticTechniqueObserved BehaviorQuery / Control
Initial AccessT1190 Exploit Public-Facing ApplicationSAML OOB-read against NetScaler IdPQ6 · Patch (H1 hardening)
Initial AccessT1133 External Remote ServicesAuthenticated session via stolen tokenQ1 / Q2
Defense EvasionT1550.004 Use Alternate Auth Material: Web Session CookieSession-token replay, MFA bypassQ1
PersistenceT1078 Valid AccountsContinued use of hijacked identityQ2
DiscoveryT1087 Account Discovery / T1018 Remote System DiscoveryRecon burst after landingQ3
Persistence / Priv EscT1136 Create Account / T1098 Account ManipulationNew account or group add post-logonQ4
Lateral MovementT1021 Remote Services / T1570 Lateral Tool TransferPivot to additional internal hostsQ5
Credential AccessT1003.001 LSASS MemoryCredential dumping on landed hostQ7
07

Native Audit-Log Hunts (non-CQL)

Run these directly on the appliance and IdP — they cover the steps Falcon EDR cannot see.

On each NetScaler (CLI)

# Confirm exposure: is SAML IdP configured?
show authentication samlIdPProfile

# Confirm running build vs fixed (14.1-66.59 / 13.1-62.23 / 13.1-37.262 FIPS-NDcPP)
show version

# Review for unauthorized config changes / new local users
show ns runningConfig | grep -iE "samlIdPProfile|add system user|bind system"

# Inspect auth logs for SAML parse errors & anomalous source IPs
shell tail -n 5000 /var/log/ns.log | grep -iE "saml|aaad|assertion"

On the SAML SP / IdP (Entra ID / ADFS / Okta)

  • Search federated sign-ins for IdP-initiated logins with no matching authentication request (token reuse).
  • Flag sign-ins where the source IP is the NetScaler egress but the session shows impossible travel or a new/unmanaged device.
  • Alert on MFA-satisfied sessions that never presented an MFA challenge (replayed post-MFA token).
  • Review for new app-consent grants, new federation trusts, or new local appliance accounts after 2026-03-23.
08

CrowdStrike LogScale CQL Hunt Queries

Pick your tenant's cloud first — every "Open in Falcon" button below uses this selection.
Replace 10.20.30.40 with your NetScaler/VPN egress IP(s) wherever it appears. These queries hunt the downstream blast radius of a hijacked session — the appliance overread itself is not in EDR telemetry.
Q1 · Concurrent logons — appliance egress + elsewhere (token replay)
CONF HIGHFP MEDCOST MED

Looks for: the same user authenticating from the NetScaler egress IP while also logging on from a different source within the window — the classic signature of a replayed session token. FP: roaming/VPN users, NAT, and shared service accounts; exclude known service accounts and tune the egress IP list.

// HUNT: Concurrent logons from NetScaler egress + another source (session-token replay)
// MITRE: T1550.004, T1078
// CONF: high  FP: medium  COST: medium | REQUIRES: UserLogon
// FALSE POSITIVES: roaming users, NAT, shared service accounts
// TUNING: maintain RemoteAddressIP4!=/^(known-svc-egress)$/ and exclude service UserName values
#event_simpleName=UserLogon
| UserName!=/^(DWM-|UMFD-|SYSTEM$|LOCAL SERVICE|NETWORK SERVICE)/i
| egress := if(RemoteAddressIP4=="10.20.30.40", "appliance", "other")
| groupBy([UserName], function=([collect([egress, RemoteAddressIP4, ComputerName]), count(RemoteAddressIP4, as=srcCount, distinct=true)]))
| test(srcCount >= 2)
| egress=/appliance/
| table([UserName, srcCount, RemoteAddressIP4, ComputerName, egress], limit=200)
Q2 · Interactive/remote logons sourced from the appliance IP
CONF HIGHFP MEDCOST LOW

Looks for: internal hosts receiving network/remote-interactive logons whose source is the NetScaler egress IP — the landing point of a hijacked session. Baseline normal gateway logon volume first, then alert on new users/hosts/off-hours. FP: legitimate VPN/ICA users; scope to off-hours or privileged accounts to cut noise.

// HUNT: Remote/interactive logons originating from the NetScaler egress IP
// MITRE: T1133, T1078
// CONF: high  FP: medium  COST: low | REQUIRES: UserLogon
// FALSE POSITIVES: legitimate VPN/ICA gateway users
// TUNING: restrict to LogonType 10/3 and exclude baselined gateway users
#event_simpleName=UserLogon
| RemoteAddressIP4="10.20.30.40"
| in(LogonType, values=[10, 3])
| UserName!=/\$$/
| groupBy([UserName, ComputerName, LogonType], function=([count(aid, as=hits), min(LogonTime, as=firstSeen)]))
| table([UserName, ComputerName, LogonType, hits, firstSeen], limit=200)
Q3 · Post-landing AD/host discovery burst
CONF HIGHFP LOWCOST MED

Looks for: classic discovery tooling (whoami, net, nltest, dsquery, nltest /dclist, quser) clustered on a host shortly after first logon — what an operator runs minutes after a hijacked session lands. FP: admin scripts and login banners; the multi-tool burst threshold keeps this low.

// HUNT: Discovery command burst (account/host/domain enumeration)
// MITRE: T1087, T1018, T1016
// CONF: high  FP: low  COST: medium | REQUIRES: ProcessRollup2
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ImageFileName=/\\(whoami|net1?|nltest|dsquery|quser|systeminfo|tasklist|arp|ipconfig)\.exe$/i
| groupBy([ComputerName, UserName], function=([count(ImageFileName, as=tools, distinct=true), collect([ImageFileName, CommandLine])]))
| test(tools >= 4)
| table([ComputerName, UserName, tools, ImageFileName, CommandLine], limit=200)
Q4 · New account / privileged group change after gateway logon
CONF HIGHFP MEDCOST LOW

Looks for: account creation or addition to a sensitive group via command line (net user /add, net localgroup administrators /add, Add-ADGroupMember) — post-hijack persistence/privilege escalation. FP: legitimate IT provisioning; exclude known admin hosts/accounts and correlate with a recent Q2 hit.

// HUNT: Account creation / privileged group addition via CLI
// MITRE: T1136, T1098
// CONF: high  FP: medium  COST: low | REQUIRES: ProcessRollup2
// FALSE POSITIVES: legitimate IT provisioning workflows
// TUNING: exclude sanctioned admin hosts/users and IT automation accounts
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| CommandLine=/(net\s+user\s+\S+\s+.*\/add|net\s+localgroup\s+administrators\s+\S+\s+\/add|Add-ADGroupMember|New-LocalUser)/i
| table([ComputerName, UserName, ParentBaseFileName, ImageFileName, CommandLine], limit=200)
Q5 · Lateral movement from first-landed host
CONF MEDFP MEDCOST MED

Looks for: remote-execution tradecraft (psexec, wmic ... /node:, sc \\host, PsExec, wsmprovhost, scheduled-task creation against a remote host) spawned from a session that landed via the gateway. FP: admin and patch-management tooling; restrict to hosts that appear in a Q2 result and exclude RMM agents.

// HUNT: Lateral movement tooling (remote exec / service install) from landed host
// MITRE: T1021, T1570, T1569.002
// CONF: medium  FP: medium  COST: medium | REQUIRES: ProcessRollup2
// FALSE POSITIVES: legitimate admin / RMM remote-exec tooling
// TUNING: scope ComputerName to Q2 landing hosts; exclude sanctioned RMM ParentBaseFileName
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ImageFileName=/\\(psexec|psexesvc|paexec|wmic|wsmprovhost|winrs)\.exe$/i OR CommandLine=/(\/node:|\\\\[A-Za-z0-9.-]+\\(ADMIN|C)\$|sc\s+\\\\)/i
| table([ComputerName, UserName, ParentBaseFileName, ImageFileName, CommandLine], limit=200)
Q6 · Anomalous outbound from appliance/management subnet
CONF MEDFP HIGHCOST MED

Looks for: rare external destinations contacted by hosts in the NetScaler management subnet — potential exploitation infrastructure or exfil staging. FP: high — update servers, telemetry, CDNs; restrict to the management subnet and exclude known-good destinations / RFC1918, then rank by rarity.

// HUNT: Rare external egress from NetScaler management subnet
// MITRE: T1190, T1071
// CONF: medium  FP: high  COST: medium | REQUIRES: NetworkConnectIP4
// FALSE POSITIVES: update/telemetry/CDN endpoints
// TUNING: set the LocalAddressIP4 prefix to your mgmt subnet; exclude allow-listed RemoteAddressIP4
#event_simpleName=NetworkConnectIP4
| ConnectionDirection="1"
| LocalAddressIP4=/^10\.20\.30\./
| RemoteAddressIP4!=/^(10\.|172\.(1[6-9]|2[0-9]|3[01])\.|192\.168\.)/
| groupBy([RemoteAddressIP4, RemotePort], function=([count(aid, as=hosts, distinct=true), count(LocalAddressIP4, as=hits)]))
| sort(hosts, order=asc)
| table([RemoteAddressIP4, RemotePort, hosts, hits], limit=200)
Q7 · Credential dumping on a gateway-reached host
CONF HIGHFP LOWCOST LOW

Looks for: LSASS credential theft via comsvcs.dll MiniDump, rundll32 dump, or known dumpers — the standard next step after landing a session and running recon. FP: low; legitimate crash-dump tooling is rare and easily excluded by ParentBaseFileName.

// HUNT: LSASS credential dumping (comsvcs MiniDump / known dumpers)
// MITRE: T1003.001
// CONF: high  FP: low  COST: low | REQUIRES: ProcessRollup2
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| CommandLine=/(comsvcs\.dll.{0,40}MiniDump|rundll32.{0,40}MiniDump|procdump.{0,20}lsass|\bnanodump\b|\bmimikatz\b|sekurlsa)/i
| table([ComputerName, UserName, ParentBaseFileName, ImageFileName, CommandLine], limit=200)
09

CrowdStrike Custom IOA Recommendations

IOA NamePatternExclusionsDeployment
NetScaler-Egress Discovery BurstProcess · ImageFileName (nltest|dsquery|net1)\.exe with discovery args, host first reached via gatewaySanctioned admin hosts, logon scriptsDetect → promote from Q3 after baseline
Post-Hijack Account CreationProcess · CommandLine net localgroup administrators .* /addIT provisioning accounts/hostsDetect (high severity) from Q4
LSASS MiniDump via comsvcsProcess · CommandLine comsvcs\.dll.*MiniDumpNone recommendedPrevent — high confidence (Q7)
Gateway-Egress Remote ExecProcess · psexec/wmic /node: from a Q2 landing hostRMM/patch toolingDetect from Q5 after scoping

Q1/Q2 are identity-correlation hunts best run as scheduled searches (they need the egress-IP enrichment), not endpoint IOAs. Q7 is the strongest Prevent candidate.

10

Machine-Readable IOC Appendix

No atomic IOCs are published for CVE-2026-3055, so the Falcon IOC-Management block uses REPLACE_WITH_* placeholders — populate only from confirmed incident evidence. The behavioral, config-audit, and validation blocks are the operative content for this pack.

Falcon IOC Management CSVplaceholders — populate from incident only
type,value,action,severity,expiration,description,tags
ipv4,REPLACE_WITH_ATTACKER_IP,detect,high,2026-09-25,CitrixBleed3 exploit source (confirm in incident),campaign:CitrixBleed3
ipv4,REPLACE_WITH_C2_IP,detect,high,2026-09-25,CitrixBleed3 post-hijack C2 (confirm in incident),campaign:CitrixBleed3
domain,REPLACE_WITH_C2_DOMAIN,detect,high,2026-09-25,CitrixBleed3 C2 (confirm in incident),campaign:CitrixBleed3
sha256,REPLACE_WITH_TOOL_HASH,prevent,critical,2026-12-25,Post-exploit tooling (confirm in incident),campaign:CitrixBleed3
# NOTE: no atomic IOCs were published for CVE-2026-3055 — do NOT import blank rows.
Behavioral signaturesthe real indicators
# CitrixBleed3 (CVE-2026-3055) behavioral indicators
# 1. SAML/AAA logon from NetScaler egress IP + concurrent session for same user elsewhere
# 2. IdP-initiated login with no matching originating user authentication request
# 3. MFA-satisfied federated session that never presented an MFA challenge (replayed token)
# 4. Discovery command burst (nltest/dsquery/net/whoami) minutes after a gateway logon
# 5. New local/domain account or privileged group add shortly after a gateway-egress logon
# 6. SAML processing errors / SAML endpoint hits from unexpected source IP ranges (appliance log)
NetScaler exposure / config auditrun on each appliance
# Is this appliance exploitable, and is it patched?
show authentication samlIdPProfile          # any output = vulnerable config present
show version                                # need: 14.1-66.59+ / 13.1-62.23+ / 13.1-37.262+ (FIPS-NDcPP)
show ns runningConfig | grep -iE "add system user|bind system global"   # rogue local accounts
# Vulnerable if SAML IdP configured AND build below the fixed version.
Patch / session-kill checklistremediation
# After upgrading EVERY SAML-IdP NetScaler to a fixed build:
kill aaa session -all          # invalidate all AAA sessions
kill icaconnection -all        # terminate ICA sessions
kill pcoipConnection -all      # terminate PCoIP sessions
# Then force re-auth and rotate any secrets that may have been in appliance memory.
# Patching WITHOUT this step does not evict an attacker holding a stolen token.
11

Detection Validation Gates

GateCheckPass Criteria
Telemetry readyNetScaler syslog/ns.log forwarded to NGSIEM; UserLogon & ProcessRollup2 flowing from hosts behind the gatewayAppliance logs visible; EDR events < 5 min latency
Enrichment readyNetScaler/VPN egress IP(s) substituted for 10.20.30.40 in Q1/Q2/Q6Real egress IP(s) confirmed and applied
Benign baselineRun Q1/Q2 over a known-clean week; catalog normal gateway users/hostsFP set documented and excluded
Positive testQ3/Q4/Q7 fire on a lab host running the recon/account/dump commandsEach query returns the seeded activity
PromotionQ7 → Prevent IOA; Q3/Q4 → Detect IOA after baselinePromoted with documented exclusions
12

Hardening — Tiered

Immediate (this week)
  • Patch every NetScaler ADC/Gateway to 14.1-66.59+ / 13.1-62.23+ / 13.1-37.262+ (FIPS-NDcPP). Fixes both CVE-2026-3055 and CVE-2026-4368. (Citrix CTX696300 · MITRE M1051)
  • Terminate all active sessions after patchingkill aaa session -all, kill icaconnection -all, kill pcoipConnection -all — then force re-authentication. (MITRE M1018 · CitrixBleed remediation parallel)
  • Audit for compromise indicators — rogue local appliance accounts, unauthorized SAML config changes, IdP-initiated logins without matching sessions. (MITRE M1047)
Near term (1–4 weeks)
  • Restrict management/SAML exposure — limit access to the SAML IdP endpoints and NSIP/management plane to required networks via network ACLs / responder policies. (MITRE M1030 · Help Net Security guidance)
  • Bind a WAF / responder policy in front of the SAML endpoints to drop malformed/oversized SAML requests while monitoring for exploitation attempts. (MITRE M1050 · ⚠ best-practice, no formal benchmark)
  • Shorten session lifetimes and bind sessions to client attributes where supported, to reduce the value/longevity of any leaked token. (MITRE M1018)
Strategic (1–3 months)
  • Phishing-resistant / token-binding MFA (FIDO2, certificate-bound tokens) so a replayed bearer token alone cannot complete authentication. (MITRE M1032)
  • Front internet-facing gateways with an identity-aware proxy / ZTNA and remove direct internet exposure of the appliance management plane. (MITRE M1035 · NIST SP 800-207)
  • Continuous appliance config & version monitoring with alerting on SAML-IdP config drift and out-of-date builds. (MITRE M1047)
13

Deployable Playbooks

Playbook A — Patch & evict (NetScaler CLI)

# 1. Confirm exposure and current build
show authentication samlIdPProfile
show version

# 2. Upgrade to a fixed build (per Citrix upgrade procedure for your platform)
#    Target: 14.1-66.59+  |  13.1-62.23+  |  13.1-37.262+ (FIPS-NDcPP)

# 3. After upgrade — invalidate every session an attacker may already hold
kill aaa session -all
kill icaconnection -all
kill pcoipConnection -all

# 4. Force credential reset for any account that may have been hijacked,
#    and rotate appliance secrets (SAML signing certs, service-account creds).

Playbook B — Restrict SAML/management exposure (responder + ACL)

# Limit management-plane (NSIP) reachability to admin networks only
add ns acl restrict_mgmt DENY -destIP = <NSIP> -srcIP != 10.0.0.0-10.0.0.255 -priority 10
apply ns acls

# Drop malformed/oversized SAML POSTs at the responder layer (illustrative;
# validate the expression against your traffic before enforcing)
add responder action drop_bad_saml drop
add responder policy block_oversized_saml "HTTP.REQ.URL.CONTAINS(\"/saml\") && HTTP.REQ.CONTENT_LENGTH.GT(65536)" drop_bad_saml
bind responder global block_oversized_saml 100 END -type REQUEST

Playbook C — Identity-side response (IdP / Entra)

# Revoke refresh/session tokens for any user seen in Q1/Q2 from the gateway egress
# Entra example:
Revoke-MgUserSignInSession -UserId <upn>
# Require re-registration of MFA for affected users; review and remove
# any new app-consent grants, federation trusts, or appliance-local accounts
# created after 2026-03-23.
14

Containment Runbook

PhaseActionsOwnerEvidence
IsolateRestrict appliance management/SAML exposure; network-contain any host flagged by Q2/Q3 via Falcon RTRNetwork / SOCACL change record; containment event
EradicatePatch all appliances; kill aaa/ica/pcoip session -all; revoke IdP tokens; remove rogue accounts/group adds (Q4)Platform / IAMBuild version; kill output; account-removal log
RecoverForce re-auth, rotate appliance secrets & affected creds, re-enable access; confirm Q1/Q2 quietIAM / SOCSecret-rotation record; clean re-run of Q1/Q2
MonitorRun Q1–Q7 as scheduled searches for 30 days; watch for re-entry from new egressSOCScheduled-search results
15

Detection Coverage Map

TechniqueBehaviorCQLIOACoverage
T1190 Exploit Public-Facing AppSAML overread against applianceGAP — not in EDR; appliance-log/syslog only
T1550.004 Session token replayConcurrent logon, appliance egressQ1Sched. searchPartial — needs egress-IP + IdP logs
T1133 / T1078 Valid AccountsLogon from appliance egressQ2Sched. searchGood
T1087 / T1018 DiscoveryRecon burst post-landingQ3DetectGood
T1136 / T1098 Account creationNew acct / group addQ4DetectGood
T1021 / T1570 Lateral movementRemote exec from landed hostQ5DetectPartial — scope to landing hosts
T1190 / T1071 C2 / exploit infraRare egress from mgmt subnetQ6Partial — high FP, rarity-ranked
T1003.001 Credential dumpingLSASS MiniDumpQ7PreventGood

Known gap: The exploitation event itself (the SAML memory overread) is invisible to Falcon EDR — it occurs inside the appliance over TLS. Close this gap by forwarding NetScaler ns.log/AAA/syslog into NGSIEM and alerting on SAML parse errors and anomalous SAML-endpoint sources (Native Hunts, §7). Validation gates for all CQL are in §11.

16

Hunt Summary Ticket

HUNT TICKET · CitrixBleed 3 · CVE-2026-3055
TITLE:      CitrixBleed 3 (CVE-2026-3055) — NetScaler SAML IdP memory overread → session hijack
SEVERITY:   CRITICAL (CVSS 9.3 · CISA KEV · exploited in the wild)
SCOPE:      All internet-facing NetScaler ADC/Gateway with SAML IdP; all hosts/identities behind them
HYPOTHESIS: Stolen session tokens from the appliance overread are being replayed to land
            authenticated sessions, followed by discovery, account creation, lateral movement,
            and credential dumping behind the gateway.
QUERIES:    Q1 token-replay · Q2 egress logon · Q3 discovery burst · Q4 account creation ·
            Q5 lateral movement · Q6 mgmt-subnet egress · Q7 LSASS dump
DO FIRST:   1) show authentication samlIdPProfile + show version on every appliance
            2) Patch to fixed build; then kill aaa/ica/pcoip session -all; force re-auth
            3) Substitute real NetScaler egress IP into Q1/Q2/Q6 and run
FINDINGS:   <record concurrent-logon / egress-logon hits and any post-landing activity>
GAPS:       Appliance overread not visible in EDR — requires ns.log/AAA syslog into NGSIEM.
            No atomic IOCs published; hunt is behavioral.
ACTIONS:    Patch + session kill + token revoke + rogue-account removal + 30-day scheduled hunt
OWNER:      HuntPack
VERSION:    v0.1 · 2026-06-25
17

Changelog

v0.32026-07-24CQL correctness pass. All table() calls now carry an explicit row limit: the default is 200 and truncation is silent, so a capped result was indistinguishable from a complete one. Atomic-IOC sweeps (filters over 5+ hashes or C2 IPs) use limit=max so a wide infection is never silently under-scoped; behavioural hunts use limit=200, where exceeding the cap indicates the query needs tuning. Where present, event names that do not exist in the Falcon data model were corrected (e.g. ServiceInstalled is a Sysmon concept, not a Falcon event; ElfFileWritten is ELFFileWritten) — such queries could never return a row. No detection logic, fields, or IOCs changed.
v0.22026-06-29CQL syntax review (crowdstrike-logscale-v3): replaced regex-on-numeric LogonType with in() in the interactive-logon hunt.
v0.12026-06-25Initial HuntPack for CVE-2026-3055 (CitrixBleed 3). 7 behavioral CQL hunts, IOA recs, tiered hardening, patch/session-kill playbooks, containment runbook. Behavioral pack — no atomic IOCs published.
18

References

TierSourceUsed ForAccess Date
VendorCitrix CTX696300CVE detail, versions, SAML precondition, companion CVE2026-06-25
GovNVD CVE-2026-3055CVSS 9.3 vector, CWE-1252026-06-25
ResearchHadrian — Memory overread analysisLeak content, detection guidance2026-06-25
Researchthreat-modeling.com — SAML IdPBehavioral hunt angles, exploitation timeline2026-06-25
NewsHelp Net SecurityPatch date, KEV, recon, CitrixBleed parallel2026-06-25

Generated 2026-06-25 · HuntPack pipeline (web-hunter-v2 → threat-hunter-v2 → crowdstrike-logscale-v2 → alert-builder-v2 → threat-hardening-v2 → review-v2) · Defensive content only.