Record summary

CVE-2025-12101 has a selected CVSS score of 5.9 (medium); EIP currently links 3 repository PoCs and 1 Nuclei template.

Description

Cross-Site Scripting (XSS) in NetScaler ADC and NetScaler Gateway when the appliance is configured as a Gateway (VPN virtual server, ICA Proxy, CVPN, RDP Proxy) OR AAA virtual server

Description source: CVE List

Exploitation context

Available material

Repository PoCs
3
Nuclei templates
1

CISA SSVC decision

ExploitationNone
AutomatableNo
Technical impactPartial

CISA Coordinator · SSVC 2.0.3 · Evaluated Nov 12, 2025 · Source: CVE List

Affected products and versions

2
ProductSourceVersion rangeStatus

Default status: unaffected

CVE List14.1 to < 56.73affected
13.1 to < 60.32affected
13.1-FIPS and NDcPP to < 37.250affected
12.1-FIPS and NDcPP to < 55.333affected

Default status: unaffected

CVE List14.1 to < 56.73affected
13.1 to < 60.32affected
13.1-FIPS and NDcPP to < 37.250affected
12.1-FIPS and NDcPP to < 55.333affected

Proofs of concept

3

Repository PoCs

GitHub6h4ack/CVE-2025-12101-checkerRepository PoCby 6h4ackStars: 5Scanner2 files

7.3 KiB

GitHub

PoC details
Analysisdeepseek-v4-pro:cloud ·

Technical assessment

A Python script that sends a crafted HTTP POST request to the /cgi/logout endpoint of a target NetScaler ADC/Gateway and checks if a known XSS payload is reflected in the response. It does not exploit the vulnerability to execute code or exfiltrate data; it only detects the presence of the reflected payload.

Backdoor review

No backdoor observed in reviewed code

The supplied evidence consists of a README and a single Python script (cve-2025-12101.py) that implements a PoC checker for CVE-2025-12101. The script sends a hardcoded HTTP POST request with a known XSS payload to a user-supplied target and inspects the response for reflection. No backdoor, trojan, or deceptive behavior is observed. The script performs only the advertised vulnerability check and does not exfiltrate data, establish persistence, download additional payloads, or contact any attacker-controlled infrastructure.

ClassificationScanner
Model confidence95%
AuthenticationNot required
LanguagesPython
Target softwareNetScaler ADCNetScaler Gateway
Attack typesCross-Site Scripting (XSS)
Evidence & reasoningClassification basis · observed behavior · safety review
Technical evidence

Classification basis and observed behavior

Classification basis

The script's primary operation is to send a probe and check for a reflected payload in the response, which is the definition of a scanner. It does not attempt to execute arbitrary JavaScript in a browser context, steal cookies, or perform any post-exploitation action. The README explicitly describes it as a 'checker' and 'PoC to check ... instances'.

README.md:3cve-2025-12101.py:122

Requirements

  • Target must be a NetScaler ADC or Gateway configured as a Gateway or AAA virtual server with the vulnerable /cgi/logout endpoint exposed.README.md:11-13
  • Network connectivity to the target on the specified port (default 443 for HTTPS).cve-2025-12101.py:100-101

Observed behavior

  • Sends a raw TLS POST request to /cgi/logout with a hardcoded URL-encoded SAMLResponse and a RelayState parameter containing a <script>alert(1)</script> payload.cve-2025-12101.py:25-32cve-2025-12101.py:64-79
  • Receives the HTTP response and checks if the payload string '<script>alert(1)</script>' is present in the response body.cve-2025-12101.py:111-122
  • Prints a 'VULNERABLE' message if the payload is reflected and the HTTP status code is 200 or 302; otherwise prints a 'No XSS behaviour detected' message.cve-2025-12101.py:127-136
Safety-review evidence

Behaviors behind the backdoor verdict

Observables

Hardcoded Payload
Payload withheldThe script uses a fixed, URL-encoded SAMLResponse and RelayState containing a benign XSS test payload (<script>alert(1)</script>). This matches the described CVE-2025-12101 check and does not indicate malicious intent.cve-2025-12101.py:25-35
Network Connection
Payload withheldThe script connects only to the target specified by the user via the -u argument. It does not make any other network connections.cve-2025-12101.py:64-79cve-2025-12101.py:95-113
User Agent
Payload withheldThe User-Agent header is a static string identifying the tool. It does not contain any encoded data or beaconing information.cve-2025-12101.py:71
Review boundaries

What the analysis did not establish

  • The evidence does not include any binary or compiled files; all provided files are readable text.
  • The analysis is based solely on the static source code and documentation; the code was not executed, and its behavior against a live target is not verified.
  • Review is based solely on the supplied text files (README.md and cve-2025-12101.py). No binary files were present or analyzed.
  • The script's runtime behavior depends on the Python standard library; no supply-chain or dependency analysis was performed beyond the provided source code.
Model interpretation

This review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.

GitHubboneys/CVE-2025-12101-Scanner-PoCRepository PoCby boneysStars: 0Scanner5 files

28.5 KiB

GitHub

PoC details
Analysisdeepseek-v4-pro:cloud ·

Technical assessment

Multi-threaded Python scanner for CVE-2025-12101 that sends a crafted SAML logout request with a unique XSS payload in the RelayState parameter and checks if the payload is reflected in the response, indicating a reflected XSS vulnerability in Citrix NetScaler ADC/Gateway.

Backdoor review

No backdoor observed in reviewed code

The artifact is a Python-based scanner for CVE-2025-12101, a reflected XSS vulnerability in Citrix NetScaler. The code sends a crafted SAML logout request with a unique marker and checks for its reflection. No backdoor, deceptive payload, or concealed harmful behavior was observed in the reviewed text files.

ClassificationScanner
Model confidence98%
AuthenticationNot required
Languagespython
Target softwareCitrix NetScaler ADCCitrix NetScaler Gateway
Attack typesxss
Evidence & reasoningClassification basis · observed behavior · safety review
Technical evidence

Classification basis and observed behavior

Classification basis

The code sends a crafted request and checks for reflection of a unique marker to determine if a target is vulnerable. It does not deliver a payload to a victim's browser, exfiltrate data, or establish a foothold; it only detects and reports the presence of the vulnerability. This matches the definition of a scanner.

CVE_2025-12101.py:3CVE_2025-12101.py:164-173README.md:1README.md:6

Requirements

  • Target must be a NetScaler ADC or Gateway configured as a Gateway (VPN, ICA Proxy, CVPN, RDP Proxy) or AAA virtual server with the /cgi/logout endpoint accessible.README.md:10README.md:87-89

Observed behavior

  • Sends an HTTP POST request to /cgi/logout with a base64-encoded RelayState containing a CRLF injection and a unique XSS marker (<svg/onload=alert('XSSTEST...')>).CVE_2025-12101.py:100-110CVE_2025-12101.py:135-153
  • Checks if the unique marker is reflected in the response body to determine vulnerability.CVE_2025-12101.py:164-173
  • Outputs results to console and a CSV file, reporting vulnerable targets, status codes, and response details.CVE_2025-12101.py:350-359CVE_2025-12101.py:397-398
Safety-review evidence

Behaviors behind the backdoor verdict

Observables

Network Request
Payload withheldThe scanner sends a POST request to the target's /cgi/logout endpoint to test for XSS reflection.CVE_2025-12101.py:135-153
Payload
Payload withheldThe payload is constructed to test for reflected XSS by injecting a unique marker into the RelayState parameter.CVE_2025-12101.py:100-104
Review boundaries

What the analysis did not establish

  • Two files (LICENSE and .gitignore) are reported in file metadata but not included in the text evidence; they are unlikely to contain scanner logic.
  • The evidence does not include execution output or verification that the scanner works as described.
  • Two files (LICENSE and .gitignore) were omitted from the text evidence; their content was not reviewed.
  • The analysis is limited to static review of the provided text; no dynamic execution or network traffic analysis was performed.
Model interpretation

This review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.

GitHubrascyber/Sternsleuth-Citrix-NetScaler-RXSSRepository PoCby rascyberStars: 0Scanner10 files

13.6 KiB

GitHub

PoC details
Analysisdeepseek-v4-pro:cloud ·

Technical assessment

A Python-based scanner for CVE-2025-12101 that sends a crafted HTTP POST request to /cgi/logout and checks if a known XSS payload is reflected in the response, reporting vulnerable targets without exploiting the vulnerability.

Backdoor review

No backdoor observed in reviewed code

The repository contains a Python scanner for CVE-2025-12101 (Citrix NetScaler RXSS). All reviewed source files implement only the advertised scanning functionality: sending a crafted HTTP POST request and checking for reflection of a known XSS payload. No backdoor, concealed executable behavior, or operator-directed harm is observed.

ClassificationScanner
Model confidence98%
AuthenticationNot required
LanguagesPython
Target softwareCitrix NetScaler ADCCitrix NetScaler Gateway
Attack typesCross-Site Scripting (XSS)
Evidence & reasoningClassification basis · observed behavior · safety review
Technical evidence

Classification basis and observed behavior

Classification basis

The artifact is a scanner because it sends a probe to detect reflection of a known XSS payload and reports vulnerability status without performing any action that exploits the vulnerability (e.g., no session hijacking, cookie theft, or payload execution in a victim's browser). The README explicitly describes it as a 'scanner' and 'RXSS reflection check'.

README.md:3src/cve_2025_12101_scanner/scanner.py:156-157

Requirements

  • Target must be a NetScaler ADC or Gateway configured as a Gateway (VPN, ICA Proxy, CVPN, RDP Proxy) or AAA virtual server.README.md:3
  • Target must be reachable over HTTPS (default port 443) or HTTP (port 80).src/cve_2025_12101_scanner/utils.py:30-43

Observed behavior

  • Sends a raw HTTP POST request to /cgi/logout with a hardcoded SAMLResponse and RelayState body containing the payload <script>alert(1)</script>.src/cve_2025_12101_scanner/scanner.py:20-27src/cve_2025_12101_scanner/scanner.py:65
  • Checks if the response contains the string <script>alert(1)</script> and if the HTTP status code is 200 or 302, marking the target as vulnerable.src/cve_2025_12101_scanner/scanner.py:156-157
  • Outputs results to console, optionally to a text file of vulnerable targets, and optionally to a JSON file.src/cve_2025_12101_scanner/cli.py:94-104
Safety-review evidence

Behaviors behind the backdoor verdict

Observables

Hardcoded Payload
Payload withheldThe scanner sends a fixed POST body to /cgi/logout to test for XSS reflection, consistent with the stated CVE-2025-12101 vulnerability.src/cve_2025_12101_scanner/scanner.py:20-27
Network Connection
Payload withheldThe scanner connects to the target host and port specified by the user, sends the hardcoded payload, and checks the response. This is the core of the advertised scanning behavior.src/cve_2025_12101_scanner/scanner.py:65-70src/cve_2025_12101_scanner/scanner.py:110-112src/cve_2025_12101_scanner/scanner.py:131-133
Review boundaries

What the analysis did not establish

  • Only 5 of 10 text files in the repository are included; the remaining 5 files (e.g., pyproject.toml, setup.cfg) are omitted from the evidence.
  • The evidence does not include any binary files, but the packet reports 5 unclassified files totaling 2422 bytes that are not analyzed.
  • The scanner's detection logic relies solely on string matching of a specific payload in the response; false positives or negatives may occur if the server reflects the payload in a non-executable context or encodes it differently.
  • Five additional files (unclassified, 2422 bytes) were present in the repository but not included in the text review; their content is unknown.
  • The review does not verify that the scanner correctly identifies the vulnerability or that it is safe to run against production systems.
Model interpretation

This review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.

Nuclei templates

1
ProjectDiscoveryMEDIUMCitrix NetScaler ADC & Gateway - Reflected XSS / Open Redirect

Cross-Site Scripting (XSS) in NetScaler ADC and NetScaler Gateway when the appliance is configured as a Gateway (VPN virtual server, ICA Proxy, CVPN, RDP Proxy) OR AAA virtual server.

Impact

Attackers can execute JavaScript in victim browsers or redirect users to malicious sites through crafted SAML responses in Citrix NetScaler Gateway configurations.

Remediation

Apply the latest Citrix security patches that properly sanitize SAML response handling in NetScaler ADC and Gateway.

AuthorsDhiyaneshDK, watchtowr
Template tagscvecve2025citrixxssjs
Shodan: http.title:"citrix gateway"

Source: ProjectDiscovery

References

2