← Back to Feed CACHED · 2026-07-04 16:19:27 · CACHE_KEY CVE-2026-10817
CVE-2026-10817 · CWE-125 · Disclosed 2026-06-30

Insufficient input validation leading to memory overread in NetScaler ADC and NetScaler Gateway if the TCP…

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

A NetScaler that leaks bits of its own memory to anyone who says hello with a TCP timestamp

CVE-2026-10817 is an out-of-bounds read (CWE-125) in the NetScaler TCP stack that fires when the appliance processes the TCP Timestamp option (RFC 7323) during connection setup. If a TCP Profile with tcpTimestamp ENABLED is bound to a virtual server (LB, CS, VPN) or a service, an unauthenticated remote attacker can send a crafted timestamp payload and get back chunks of adjacent process memory in responses. Affected builds are NetScaler ADC/Gateway 14.1 before 14.1-72.61, 13.1 before 13.1-63.18, and the FIPS/NDcPP variants 14.1-72.61 FIPS and 13.1-37.272. All 12.1 and 13.0 branches are already EOL and receive no fix.

Vendor rating of HIGH (7.5) — actually 6.9 in some scoring — is *fair, not inflated*. Unlike its sibling CVE-2026-8451 (the CitrixBleed-2 successor patched in the same bulletin CTX696604), this overread terminates when the read hits a NULL byte or > character, so leaks are bounded in length rather than kilobyte-scale. That reduces the odds of pulling a complete session token in a single request — but it does not eliminate it. Session cookies, TLS session state, and config fragments are still recoverable across repeated probes, and NetScaler is exactly the class of edge appliance attackers *do* mine repeatedly.

"Bounded memory overread on an internet-facing VPN appliance — smaller blast radius than CitrixBleed, same class of target. Patch fast."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Locate a NetScaler with TCP Timestamp on a public vserver

The attacker fingerprints internet-reachable NetScaler Gateway / ADC vservers via TLS JA3 signatures and known cookie names (NSC_*, pwcount). They then probe TCP Timestamp handshake responses — the SYN-ACK's TSecr field confirms whether Timestamp is enabled. Tooling: nmap -O, hping3 --tcp-timestamp, zgrab2 tls.
Conditions required:
  • Target NetScaler ADC 14.1<72.61 or 13.1<63.18
  • TCP Profile with tcpTimestamp ENABLED bound to at least one vserver/service
  • TCP/443 or the vserver port reachable from attacker network
Where this breaks in practice:
  • Default nstcp_default_profile ships with tcpTimestamp DISABLED — only custom or performance-tuned profiles typically enable it
  • Many enterprises front NetScaler with a WAF or CDN that normalizes TCP options
Detection/coverage: Shodan/Censys facet product:netscaler returns ~28k appliances; timestamp status is inferable from SYN-ACK captures. No GreyNoise tag as of 2026-07-05.
STEP 02

Send malformed TCP Timestamp option to trigger overread

Attacker crafts a TCP packet with an oversized or malformed TS Value / TS Echo Reply, forcing the packet-engine path to read beyond the allocated buffer. Because the read terminates on NULL / >, each probe returns a variable-length slice of adjacent heap. No public PoC exists yet, but watchTowr Labs demonstrated the CVE-2026-8451 primitive in the same code family — the same fuzzing harness pivots trivially.
Conditions required:
  • Raw socket capability on attacker host to craft TCP options
  • Stable TCP handshake to the vserver
Where this breaks in practice:
  • NetScaler drops many malformed TCP option streams before they reach the vulnerable parser
  • Rate limiting on new connections in many production tunings
Detection/coverage: Nessus 209xxx family plugins ship remote checks against 14.1-72.61 as of 2026-07-02; Qualys QID 383xxx added same week.
STEP 03

Iterate to reconstruct session material

Individual leaks are short (NULL/> terminated), so the attacker replays thousands of probes across varying connection contexts to statistically reconstruct session cookies, in-flight TLS records, or configuration strings. CitrixBleed operators used exactly this pattern; the reduced leak length raises cost but does not defeat it.
Conditions required:
  • Ability to sustain thousands of TCP connections without triggering IPS drops
  • Some leaked segment eventually contains a valid NSC_AAAC or NSC_TASS session token without embedded NULL
Where this breaks in practice:
  • Session tokens frequently contain bytes matching the terminator set → many leaks unusable
  • AAA session TTLs on NetScaler are short (default 30 min idle)
Detection/coverage: NetScaler newnslog records unusually high SYN-ACK volume per source; Splunk/Elastic dashboards on TCP retransmit ratio will flare.
STEP 04

Session hijack into published VPN / ICA resources

With a valid AAA session cookie the attacker replays it against the NetScaler Gateway, inheriting the compromised user's SSO context — including RDP/ICA published apps, StoreFront, and any SAML-federated internal SaaS. From that foothold they move lateral against AD, file shares, or Citrix VDA farms. Same post-exploitation playbook as UNC5221 / Storm-0950 used in the original CitrixBleed campaigns.
Conditions required:
  • Recovered session token still within TTL
  • MFA not re-prompted mid-session (default NetScaler behavior)
Where this breaks in practice:
  • Continuous access evaluation (CAE) / step-up MFA re-prompts on new source IP break the hijack
  • Geo-based conditional access blocks foreign session replay
Detection/coverage: UEBA rules on same session cookie, new ASN catch this cleanly — every mature Citrix shop deployed this after CitrixBleed.
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusNo confirmed exploitation of CVE-2026-10817 as of 2026-07-05. Sibling CVE-2026-8451 (same bulletin) is under active exploitation per Cyberscoop reporting.
Public PoCNone specific to -10817. watchTowr Labs published a working primitive for CVE-2026-8451 in the same code family — the harness ports trivially.
EPSS0.0041 (~40th percentile). Low, but stale — the value predates the watchTowr writeup.
KEV statusNot listed. Expect CISA to add if session-token leakage is demonstrated, as with the original CitrixBleed.
CVSS vectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N — pre-auth remote, confidentiality only. Score 7.5 base.
Affected versionsNetScaler ADC/Gateway 14.1 < 72.61, 13.1 < 63.18, 14.1 FIPS < 72.61, 13.1 NDcPP/FIPS < 37.272. 12.1 and 13.0 EOL, no fix.
Fixed versions14.1-72.61, 13.1-63.18, 14.1-72.61 FIPS, 13.1-37.272 FIPS/NDcPP — all released 2026-06-30 in bulletin CTX696604.
Exposure telemetryShodan: ~28,300 internet-facing NetScaler Gateway login pages. Censys: ~31k. Portion with TCP Timestamp enabled is unmeasured externally but non-default.
Disclosed2026-06-30 by Cloud Software Group as part of the six-CVE CTX696604 bulletin.
CreditReported to Cloud Software Group; watchTowr Labs authored the public technical breakdown of the sibling primitive.
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to HIGH (7.2/10)

The decisive factor is role multiplier: this is a pre-auth memory overread on an internet-facing VPN gateway / load balancer — the same class of appliance that produced CitrixBleed session-hijack campaigns. Leak length is bounded by NULL/> terminators so the primitive is weaker than CVE-2026-8451, but the target role and reachability keep this firmly in the HIGH bucket.

HIGH Vulnerability class and affected version range
MEDIUM Practical exploitability given the terminator constraint
LOW Prevalence of TCP Timestamp enabled in production TCP profiles

Why this verdict

  • Role multiplier — network edge appliance: NetScaler is a canonical high-value-role component (VPN + reverse proxy + AAA). A pre-auth leak in this role has a documented history of ending in fleet-scale session hijack (CitrixBleed 2023). Verdict floor is HIGH.
  • Pre-auth remote, network-reachable: No credentials, no user interaction, direct TCP path to the vserver — every internet-facing NetScaler is reachable to any origin the appliance is meant to serve.
  • Bounded leak reduces primitive strength: NULL/> termination means most session-token candidates are unusable per probe, versus CitrixBleed's kilobyte-scale disclosure. This is the reason we don't push to CRITICAL.
  • Configuration gate narrows population: Only appliances with tcpTimestamp ENABLED in a bound TCP profile are exposed. Default profile has it disabled, but performance-tuned deployments frequently flip it on.
  • Sibling under active exploitation: CVE-2026-8451 in the same bulletin is being weaponized now; adversary tooling in the code family lowers the cost of pivoting to -10817.

Why not higher?

Not CRITICAL because the overread terminates on common byte values, so single-shot recovery of a complete session token is unreliable — the primitive is materially weaker than CitrixBleed proper. Confidentiality-only impact (I:N, A:N) and no confirmed in-the-wild targeting of this specific CVE also argue against a CRITICAL bump.

Why not lower?

Not MEDIUM because the affected role is a canonical network-edge appliance — the Deployment-Role Blast Radius floor is HIGH for this class of component regardless of individual-primitive friction. Session-token leakage is empirically the endgame here, and enterprises should not wait for a public PoC to appear before treating a NetScaler edge leak as HIGH.

05 · Compensating Control

What to do — in priority order.

  1. Disable TCP Timestamp on all bound TCP profiles until patched — Run show ns tcpProfile and identify any profile with tcpTimestamp ENABLED bound to an LB/CS/VPN vserver or service. Set set ns tcpProfile <name> -tcpTimestamp DISABLED. This kills the vulnerable code path entirely with negligible operational impact (Timestamp is a performance option, not a correctness one). Deploy within 30 days per noisgate mitigation SLA for HIGH.
  2. Upgrade to 14.1-72.61 / 13.1-63.18 (or FIPS equivalents) — This is the only durable fix. Stage on HA pair secondary, fail over, validate, then upgrade primary. Complete within 180 days per noisgate remediation SLA — sooner if the sibling CVE-2026-8451 (active exploitation) applies to your build, which it almost certainly does.
  3. Force AAA session invalidation post-patch — Run kill aaa session -all after upgrade to invalidate any session cookies that may have been leaked during the exposure window. Users re-authenticate; this is cheap insurance and matches CISA guidance from the original CitrixBleed IR playbook.
  4. Hunt for anomalous session reuse from new ASN / geo — Query 90 days of NetScaler AAA logs and downstream StoreFront / IdP logs for the same NSC_AAAC or SAML session ID used from more than one source ASN within its TTL. This is the strongest post-hoc indicator of session hijack, whether via -10817 or -8451.
What doesn't work
  • WAF rules on HTTP layer — the vulnerable parser is in the TCP handshake path, below any HTTP inspection. WAF policies never see the malformed timestamp option.
  • Client certificate authentication on the vserver — the overread fires during TCP setup, before TLS negotiation begins. mTLS does not mitigate.
  • IP allow-listing on the management interface (NSIP) — this CVE is on the data-plane vservers, not the management plane. Restricting NSIP is good hygiene but irrelevant here.
  • Enabling AppFlow / rate limiting alone — reduces exploitation *speed* but not *possibility*; a patient attacker still recovers material within a session TTL.
06 · Verification

Crowdsourced verification payload.

Run this on an auditor workstation (any Linux/macOS box with SSH access to the NetScaler NSIP) with read-only nsroot or equivalent credentials. Invoke as ./check-cve-2026-10817.sh <NSIP> <user> — for example ./check-cve-2026-10817.sh 10.20.30.40 nsroot. It SSHes in, reads version and every TCP profile's Timestamp setting, and prints VULNERABLE / PATCHED / UNKNOWN.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# check-cve-2026-10817.sh — noisgate verification for CVE-2026-10817
# Requires: ssh, awk. Read-only nsroot or delegated read account.
set -u
NSIP="${1:-}"
USER="${2:-nsroot}"
if [[ -z "$NSIP" ]]; then
  echo "usage: $0 <NSIP> [user]" >&2
  exit 2
fi

# Pull version banner and TCP profile dump in one round trip.
OUT=$(ssh -o StrictHostKeyChecking=accept-new -o ConnectTimeout=10 \
      "${USER}@${NSIP}" \
      'show ns version; show ns tcpProfile' 2>/dev/null) || {
  echo "UNKNOWN: ssh failed to ${NSIP}"; exit 3; }

VER=$(printf '%s' "$OUT" | awk -F'NS' '/NetScaler NS/ {print $2; exit}' | awk '{print $1}')
if [[ -z "$VER" ]]; then echo "UNKNOWN: could not parse version"; exit 3; fi

# Fixed builds: 14.1-72.61, 13.1-63.18, 14.1-72.61-FIPS, 13.1-37.272
is_patched() {
  local v="$1"
  case "$v" in
    14.1-*) awk -v b="${v#14.1-}" 'BEGIN{split(b,a,"."); exit !(a[1]>72 || (a[1]==72 && a[2]>=61))}' ;;
    13.1-*) awk -v b="${v#13.1-}" 'BEGIN{split(b,a,"."); exit !(a[1]>63 || (a[1]==63 && a[2]>=18) || (a[1]==37 && a[2]>=272))}' ;;
    *) return 2 ;;
  esac
}

is_patched "$VER"; PATCH_RC=$?

# Any TCP profile with tcpTimestamp ENABLED is the exposure gate.
TS_ON=$(printf '%s' "$OUT" | awk '/TCPTIMESTAMP: ENABLED|tcpTimestamp: ENABLED/{c++} END{print c+0}')

echo "Version:       $VER"
echo "TCP profiles with Timestamp ENABLED: $TS_ON"

if [[ $PATCH_RC -eq 0 ]]; then
  echo "PATCHED"; exit 0
fi
if [[ $PATCH_RC -eq 2 ]]; then
  echo "UNKNOWN: unrecognized version scheme ($VER)"; exit 3
fi
if [[ $TS_ON -gt 0 ]]; then
  echo "VULNERABLE"; exit 1
fi
echo "VULNERABLE (unpatched build; disable TCP Timestamp is a mitigation, not a fix)"
exit 1
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: inventory every NetScaler ADC / Gateway you own, dump show ns tcpProfile on each, and disable tcpTimestamp on any profile bound to a vserver — that closes the exposure window today. Per noisgate mitigation SLA for HIGH, complete that config change fleet-wide within 30 days. Per noisgate remediation SLA for HIGH, upgrade to 14.1-72.61 / 13.1-63.18 (or the FIPS equivalents) within 180 days — but pull that in aggressively because sibling CVE-2026-8451 in the same bulletin is under active exploitation and the same upgrade fixes both. After patching, run kill aaa session -all to invalidate any tokens that may have been leaked during the exposure window, and hunt 90 days of AAA logs for session cookies replayed from new ASNs.

Sources

  1. NVD — CVE-2026-10817
  2. Cloud Software Group Bulletin CTX696604 (via Kraft Kennedy mirror)
  3. The Hacker News — Citrix Patches Six NetScaler Flaws
  4. watchTowr Labs — CitrixBleed To Infinity And Beyond (CVE-2026-8451 sibling primitive)
  5. CyberScoop — Citrix patches NetScaler flaw with echoes of CitrixBleed
  6. CCB Belgium — Multiple High Vulnerabilities in Citrix NetScaler
  7. CSA Singapore Alert AL-2026-082
  8. GBHackers — NetScaler Memory Overread and DoS Flaws
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.