CVE-2026-41700: Spring for GraphQL WebSocket Cross-Site Hijacking Vulnerability
Spring for GraphQL applications using WebSocket transport have a Cross-Site WebSocket Hijacking vulnerability. An attacker can craft a malicious webpage that, when visited by an authenticated user, hijacks that user's WebSocket connection and executes arbitrary GraphQL queries or mutations on their behalf. The victim's session credentials are automatically sent with WebSocket requests, making them a natural target for this type of attack. This is particularly dangerous because it requires minimal user interaction—just visiting a page—and gives attackers full access to perform any GraphQL operation the victim is authorized to perform.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 8.1 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
- Weaknesses (CWE)
- CWE-346
- Affected products
- 1 configuration(s)
- Published / Modified
- 2026-06-11 / 2026-07-17
NVD description (verbatim)
Spring for GraphQL applications that have enabled the WebSocket transport are vulnerable to Cross-Site WebSocket Hijacking. An attacker can trick an authenticated user into visiting a malicious page, allowing the attacker to execute arbitrary GraphQL operations with the victim's credentials. Affected versions: Spring for GraphQL 2.0.0 through 2.0.3; 1.4.0 through 1.4.5; 1.3.0 through 1.3.8; 1.0.0 through 1.0.6.
1 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-41700 is a Cross-Site WebSocket Hijacking (CSWSH) vulnerability affecting Spring for GraphQL's WebSocket transport implementation. The vulnerability exists because WebSocket connections from browsers automatically include authentication credentials (cookies, tokens, etc.) in the initial handshake, but lack the same cross-origin protections that standard HTTP requests enforce. When a user authenticated to a GraphQL endpoint visits an attacker-controlled site, that site can establish a WebSocket connection to the target GraphQL service using the victim's credentials. The attacker can then send arbitrary GraphQL operations through this hijacked connection. This is classified as CWE-346 (Origin Validation Error) and affects versions 1.0.0–1.0.6, 1.3.0–1.3.8, 1.4.0–1.4.5, and 2.0.0–2.0.3 of Spring for GraphQL.
Business impact
Organizations running Spring for GraphQL with WebSocket transport face the risk of unauthorized data access and modification. An attacker exploiting this vulnerability could read sensitive information exposed through the GraphQL API, modify or delete data, perform unauthorized transactions, or escalate privileges—all using a legitimate user's credentials. The attack requires no special network access (network-adjacent or better) and can be automated at scale by hosting a malicious website and promoting it to target users. From a compliance perspective, unauthorized data access via compromised sessions may trigger breach notification and reporting obligations. Business continuity could be affected if attackers perform destructive operations through hijacked connections.
Affected systems
Spring for GraphQL versions 1.0.0 through 1.0.6, 1.3.0 through 1.3.8, 1.4.0 through 1.4.5, and 2.0.0 through 2.0.3 are affected. The vulnerability only impacts applications that have explicitly enabled WebSocket transport for GraphQL. Applications using only HTTP-based GraphQL (standard REST or HTTP subscriptions without WebSocket) are not affected. Organizations should inventory their Spring for GraphQL deployments and determine which ones have WebSocket transport enabled.
Exploitability
This vulnerability has a CVSS score of 8.1 (HIGH), with a network attack vector, low complexity, and no special privileges required—only user interaction. It is not currently listed in CISA's Known Exploited Vulnerabilities (KEV) catalog. However, the attack is straightforward to execute: an attacker needs only to host a web page containing JavaScript that initiates a WebSocket connection to the target GraphQL endpoint. The barrier to weaponization is low. Once exploited, the attacker gains the full authority of the victim user, making the impact substantial. Real-world exploitation would likely target authenticated users who have access to valuable or sensitive GraphQL operations.
Remediation
Apply vendor patches immediately. VMware has released patched versions for all affected release lines. Verify the exact patch version against the official Spring for GraphQL security advisory. As an interim mitigation, disable WebSocket transport if it is not required for your application's functionality. Additionally, implement strict Content Security Policy (CSP) headers to limit cross-origin WebSocket connections, and enforce authentication token rotation to minimize the window of opportunity for hijacked sessions. Consider adding Server-Sent Events (SSE) as an alternative to WebSocket for subscription-based use cases if suitable for your architecture.
Patch guidance
Check the official VMware Spring for GraphQL security advisory for the exact patched versions corresponding to your current version. Patches are expected to be available for all affected version lines. Apply patches during the next available maintenance window, prioritizing production systems that expose sensitive GraphQL operations. Before patching, test the update in a staging environment to verify compatibility with your application. If you are on an unsupported version (prior to 1.0.0), upgrade to a currently supported release. Verify after patching that WebSocket transport is functioning correctly and that your application's GraphQL subscriptions or real-time features continue to work as expected.
Detection guidance
Monitor WebSocket connections to your GraphQL endpoints for suspicious patterns: (1) WebSocket handshakes originating from unexpected origins (check the Origin header), (2) authenticated WebSocket sessions followed by unusual GraphQL operations inconsistent with normal user behavior, (3) spike in failed or unauthorized GraphQL operations. Implement logging of WebSocket connection establishment, including the source Origin header and authenticated user identity. Review GraphQL operation logs for commands issued from hijacked sessions. Security tools and WAF solutions with WebSocket inspection capabilities can help detect cross-origin WebSocket handshakes. Enable audit logging on your GraphQL layer to track who performed what operations and when.
Why prioritize this
This vulnerability merits immediate prioritization due to its HIGH severity score (8.1), ease of exploitation, and the high potential impact. The attack requires only user interaction (visiting a malicious site) and no special network access, making it practical for broad-scale campaigns. The victim's credentials grant the attacker full GraphQL access, potentially leading to data breaches or service disruption. It is not yet in the KEV catalog, but the simplicity of exploitation suggests real-world attacks are likely. All affected Spring for GraphQL instances with WebSocket enabled should be patched urgently.
Risk score, explained
The CVSS 3.1 score of 8.1 (HIGH) reflects: (1) network-based attack requiring only a user's browser, (2) low attack complexity—no special conditions or configurations needed, (3) no privileges required to initiate the attack, (4) user interaction required (visiting a malicious site), (5) high confidentiality impact (data exposure), (6) high integrity impact (unauthorized modifications), and (7) no availability impact. The score does not assume the vulnerability is already exploited in the wild, but the simplicity and high potential impact justify the HIGH rating.
Frequently asked questions
Do I need to worry about this if I am not using WebSocket for GraphQL?
No. This vulnerability only affects Spring for GraphQL applications that have explicitly enabled WebSocket transport for subscriptions or other real-time features. If your application uses only HTTP-based GraphQL queries and mutations, or if you have not enabled WebSocket support, you are not at risk from this particular vulnerability. Verify your Spring for GraphQL configuration to confirm WebSocket is disabled.
Can an attacker exploit this without tricking a user into visiting a malicious page?
No. This is a Cross-Site WebSocket Hijacking attack, which inherently requires user interaction. An attacker must induce an authenticated user to visit an attacker-controlled webpage while that user has an active authenticated session with the GraphQL endpoint. The attacker cannot directly initiate a hijacked WebSocket connection from the internet without the user's browser involvement.
What is the difference between this vulnerability and a standard Cross-Site Request Forgery (CSRF)?
While both are cross-site attacks requiring user interaction, CSWSH is more severe because WebSocket connections persist and are bidirectional. A standard CSRF attack typically triggers a single unprotected action; CSWSH gives an attacker an open channel to perform unlimited GraphQL operations with the victim's credentials for the duration of the WebSocket session. WebSocket connections also lack the same built-in origin protections that mitigate traditional CSRF.
Will patching break my existing GraphQL subscriptions?
Properly implemented patches should not break existing functionality. They typically add origin validation or other protective mechanisms without changing the WebSocket API surface. However, organizations should always test patches in a staging environment first to verify compatibility with their specific implementation before rolling out to production.
This analysis is provided for informational purposes to support security decision-making. Verify all patch versions, affected product configurations, and remediation steps against the official VMware Spring for GraphQL security advisory and your vendor documentation. This vulnerability assessment does not constitute professional security advice and should be reviewed by your organization's security team in the context of your specific infrastructure and risk profile. No exploit code or weaponization details are provided; this explainer is intended to inform defensive posture and patch prioritization only. Source: NVD (public-domain), retrieved 2026-07-20. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-10846HIGHNLnet Labs ldns DNS Spoofing Vulnerability - Off-Path Poisoning Attack
- CVE-2026-11693HIGHGoogle Chrome Site Isolation Bypass via Plugin Flaw
- CVE-2026-42558HIGHXibo Stored XSS and Iframe Sandbox Escape in Data Connector
- CVE-2026-44698HIGHHome Assistant Companion App Token Theft Vulnerability
- CVE-2026-44894HIGHNetty QUIC Amplification Attack via NoQuicTokenHandler Default
- CVE-2026-45674HIGHNetty DNS CNAME Validation Bypass (CVSS 8.7 HIGH)
- CVE-2026-47265HIGHAIOHTTP Cookie Leak on Cross-Origin Redirects (CVSS 7.5)
- CVE-2026-47691HIGHNetty DNS Cache Poisoning Vulnerability – Bailiwick Validation Bypass