CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-88773

CVE-2026-88773: Critical HTTP Request Smuggling in Citrix NetScaler ADC and Gateway

Amit Schendel
Amit Schendel
Senior Security Researcher

Sep 29, 2026·6 min read·97 visits

Executive Summary (TL;DR)

Unauthenticated HTTP request smuggling in Citrix NetScaler allows session hijacking, policy bypass, and cache poisoning due to boundary parsing differences.

A critical HTTP request/response smuggling vulnerability (CWE-444) exists in Citrix NetScaler ADC and Citrix NetScaler Gateway. This flaw arises from inconsistent request boundary parsing between NetScaler appliances and backend web servers, allowing remote, unauthenticated attackers to bypass security boundaries, access restricted resources, or hijack active user sessions on multiplexed TCP connections.

Vulnerability Overview

CVE-2026-88773 is a critical HTTP request/response smuggling vulnerability (CWE-444) affecting Citrix NetScaler ADC and Citrix NetScaler Gateway. This vulnerability was disclosed on September 27, 2026, as part of Citrix Security Bulletin CTX697096. The vulnerability occurs due to inconsistencies in how HTTP requests are sanitized, parsed, and forwarded to backend servers.

The NetScaler appliance serves as a front-end reverse proxy or load balancer, managing multiplexed TCP connections to downstream web applications. By design, NetScaler reuses downstream persistent connections for multiple incoming user sessions to optimize performance. This architecture introduces a significant attack surface if request boundaries are processed inconsistently.

An unauthenticated remote attacker can exploit this issue by crafting malformed HTTP requests containing conflicting boundary indicators. When these requests are routed, the downstream backend server retains the smuggled payload in its buffer. This payload is subsequently prepended to the next legitimate user's request, resulting in session hijack or security policy bypass.

Root Cause Analysis

The underlying flaw stems from inconsistent interpretation of HTTP requests (CWE-444) between NetScaler and backend web servers. When processing HTTP/1.1 message bodies, servers determine request boundaries using either the Content-Length header or the Transfer-Encoding: chunked header. A discrepancy occurs if the proxy and the backend prioritize these headers differently or disagree on malformed header syntax.

For instance, if the proxy processes a request based on Content-Length but the backend processes it based on Transfer-Encoding, the backend parses a different portion of the HTTP body as the completion of the request. The trailing bytes of the attacker's request are then treated as the start of a subsequent HTTP request.

This behavior is highly exploitable because NetScaler implements TCP connection multiplexing. To reduce the overhead of initiating three-way handshakes with backend servers, NetScaler maintains persistent TCP pools. Because multiple client sessions share the same downstream TCP socket, an attacker can reliably prefix a smuggled payload onto the request stream of an unrelated, legitimate user.

Technical Flow and Boundary Discrepancies

The request smuggling mechanism relies on synchronization loss between the proxy's outgoing stream and the backend's incoming parser. The diagram below illustrates the flow of the attack when a shared TCP socket is used to multiplex incoming user connections.

In this scenario, the NetScaler and the backend server process different boundaries. The backend server holds the remainder of the attacker's data in its stream buffer. When the legitimate user's request is multiplexed over the same TCP connection, the backend appends the user's headers to the smuggled payload, executing the smuggled action.

Exploitation and Request Construction

Exploitation requires no authentication and can be completed via direct HTTP requests. In a Content-Length vs. Transfer-Encoding (CL.TE) scenario, the attacker issues a single POST request containing both headers. NetScaler prioritizes Content-Length while the backend prioritizes Transfer-Encoding.

POST / HTTP/1.1
Host: target.example.com
Content-Length: 4
Transfer-Encoding: chunked
 
1
Z
0
 
GET /admin/delete_user?id=99 HTTP/1.1
Host: target.example.com
Dummy: 

In this packet payload, the NetScaler reads the Content-Length: 4 and forwards only the first 4 bytes of the body (up to 1\r\nZ\r\n) to the backend. The backend, reading the request as chunked, identifies the 0 chunk as the message terminator and parses the remaining GET request as the beginning of the subsequent request. When a legitimate user's request arrives, it is appended to the Dummy: header, making the entire operation execute under the user's session context.

Impact Assessment and Vulnerability Scope

The impact of CVE-2026-88773 is rated as critical, with a CVSS v3.1 base score of 10.0 and a CVSS v4.0 score of 9.3. Successful exploitation allows complete security boundary bypass. If the front-end NetScaler is configured to perform authorization checks, an attacker can bypass these completely by smuggling requests to backend components that trust the NetScaler's upstream validation.

Type-specific session hijacking is achievable without user interaction. When a legitimate user's request is appended to the smuggled payload, the user's cookie headers are often forwarded as query parameters or headers in the smuggled request, exposing them to the attacker via log files or application responses.

Local web cache poisoning is another significant threat. Attackers can smuggle a request that maps a legitimate static resource to a malicious page. If NetScaler or an intermediate cache stores this combined response, subsequent users requesting the legitimate page will receive the malicious payload.

Audit and Exposure Verification

An appliance is vulnerable only if it is configured to run active virtual servers handling HTTP or SSL traffic. Administrators must audit configuration files to assess exposure. This requires searching both the default partition and all active admin partitions for virtual servers using vulnerable protocols.

Administrators can inspect the /nsconfig/ns.conf file directly using the command line shell. The following command pattern identifies exposed configurations:

grep -iE -e "^add (lb|cs|vpn|authentication) vserver ("[^"]*"|[^ ]+) (HTTP|SSL) " /nsconfig/ns.conf

If the command returns output lines and the appliance is running an affected firmware version, the system is exposed. For systems utilizing administrative partitions, configurations under /nsconfig/partitions/*/ns.conf must also be searched recursively to ensure complete audit coverage.

Remediation and Mitigation Strategies

To remediate CVE-2026-88773, administrators must upgrade to fixed releases of NetScaler ADC and Gateway. For 14.1 deployments, upgrade to 14.1-73.37 or later. For 13.1 deployments, upgrade to 13.1-64.24 or later (this version avoids a known cyclic-reboot issue present in build 13.1-64.23).

If immediate upgrading is impossible, temporary workarounds include disabling connection multiplexing on HTTP profiles or configuring strict header checking on downstream web servers. However, these changes may degrade performance or disrupt application functionality.

As part of general gateway hardening, Citrix also recommends enabling Enhanced ISN Generation on all active partitions. This parameter mitigates TCP sequence prediction risks (CVE-2026-88778) and can be enabled via CLI using set ns tcpparam -enhancedISNgeneration ENABLED.

Technical Appendix

CVSS Score
10.0/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N
15,000
via Shodan

Affected Systems

Citrix NetScaler ADC (Standard/Enterprise/Platinum)Citrix NetScaler GatewayCitrix NetScaler ADC FIPSCitrix NetScaler ADC NDcPP
AttributeDetail
CWE IDCWE-444
Attack VectorNetwork (AV:N)
CVSS v3.1 Score10.0 (Critical)
CVSS v4.0 Score9.3 (Critical)
Exploit StatusNone/Theoretical (No public PoC code)
CISA KEV StatusNot Listed (Related CVEs CVE-2026-88771/2 are listed)
Primary ImpactSession Hijacking, Security Bypass, Cache Poisoning
CWE-444
Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')

Vulnerability Timeline

Citrix Security Bulletin CTX697096 Published and CVE-2026-88773 Disclosed
2026-09-27
CISA Alert issued for adjacent zero-day vulnerabilities in the same bulletin
2026-09-27
Community release of netscaler-ctx697096-checker audit script
2026-09-28

More Reports

•32 minutes ago•CVE-2026-126081
7.5

CVE-2026-126081: Strong Parameters Bypass via Parameters#each_key in Ruby on Rails Action Pack

CVE-2026-126081 is a mass-assignment vulnerability (CWE-915) in the Action Pack component of Ruby on Rails. Prior to versions 8.1.4.1 and 8.0.5.2, the ActionController::Parameters#each_key method was delegated directly to the internal ActiveSupport::HashWithIndifferentAccess instance holding raw request parameters. When invoked with a block, #each_key returned the underlying unpermitted hash rather than the ActionController::Parameters wrapper instance. Applications that pass the return value of #each_key directly into Active Model mass-assignment methods bypass Strong Parameters enforcement, allowing attackers to modify restricted model attributes.

Amit Schendel
Amit Schendel
1 views•9 min read
•about 2 hours ago•CVE-2026-126084
4.7

CVE-2026-126084: Unsigned Content-Type in Rails Active Storage GCS Direct Uploads

A vulnerability classified under CWE-345 (Insufficient Verification of Data Authenticity) exists in the Active Storage component of Ruby on Rails prior to versions 8.1.4.1 and 8.0.5.2. When Google Cloud Storage (GCS) is configured as the storage backend with the cache_control option enabled, Active Storage switches from GCS V2 signing to V4 signing for direct upload URLs. Because the V4 signing implementation only binds the Cache-Control and Host headers, the Content-Type and Content-MD5 headers remain unsigned. An attacker can modify the Content-Type header during a direct upload request to store HTML or SVG files with active JavaScript on the GCS bucket origin, enabling Service Worker registration and interception of subsequent signed URL responses within the bucket path.

Amit Schendel
Amit Schendel
3 views•9 min read
•about 3 hours ago•CVE-2026-126079
6.1

CVE-2026-126079: Cross-Site Scripting in Ruby on Rails Action View Text Helpers via HTML5 Serialization Desynchronization

A Cross-Site Scripting (XSS) vulnerability exists in Ruby on Rails Action View prior to versions 8.0.5.2 and 8.1.4.1. When applications use the default HTML5 sanitizer (Rails::HTML5::Sanitizer) with Nokogiri versions prior to 1.19.5, angle brackets (< and >) inside HTML attribute values are serialized unescaped. Action View text helpers—specifically highlight and simple_format—perform string-based manipulations on the sanitized HTML rather than operating on the DOM tree. An unescaped '>' character or a double newline ('\n\n') inside an attribute value causes these helpers to misidentify tag or paragraph boundaries, breaking out of the attribute context and emitting inert attribute contents as live HTML elements in the final html_safe output.

Amit Schendel
Amit Schendel
2 views•10 min read
•about 4 hours ago•CVE-2026-126070
6.1

CVE-2026-126070: Cross-Site Scripting in Ruby on Rails Action View strip_tags Helper

CVE-2026-126070 is a Cross-Site Scripting (XSS) vulnerability in the Action View component of Ruby on Rails. Prior to versions 8.0.5.2 and 8.1.4.1, the strip_tags helper returned sanitized output marked as html_safe without encoding single or double quotation marks. When applications render the output of strip_tags inside quoted HTML attributes in ERB templates, attackers can break out of the attribute context and inject arbitrary HTML attributes or JavaScript event handlers.

Amit Schendel
Amit Schendel
3 views•10 min read
•about 5 hours ago•CVE-2026-126078
6.1

CVE-2026-126078: Cross-Site Scripting in Ruby on Rails Action View highlight Helper

CVE-2026-126078 is a Cross-Site Scripting (XSS) vulnerability classified under CWE-79 affecting the Action View component of Ruby on Rails in versions prior to 8.0.5.2 and 8.1.4.1. The vulnerability resides in the ActionView::Helpers::TextHelper#highlight method when invoked with a custom :highlighter template that places capture group placeholders inside HTML attribute values. Because matched substrings are substituted without HTML escaping after initial sanitization preserves literal quotation marks, an attacker controlling the input text or target search phrase can break out of the surrounding attribute delimiter and inject arbitrary HTML attributes or JavaScript event handlers.

Amit Schendel
Amit Schendel
3 views•9 min read
•about 6 hours ago•CVE-2026-126077
6.8

CVE-2026-126077: Session Information Leak in Ruby on Rails Action Pack and Active Storage Proxy Mode

An information exposure vulnerability in Ruby on Rails Action Pack allows sensitive session cookies to be attached to public, cacheable responses served by Active Storage proxy controllers. When cookie secret rotation or a hybrid cookie serializer migration is enabled, reading a legacy-format cookie triggers an automatic cookie rewrite that ignores the session-skipping directive. If an intermediate shared cache or CDN caches the resulting response along with its Set-Cookie header, subsequent users requesting the same URL receive the leaked session token.

Amit Schendel
Amit Schendel
4 views•11 min read