Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure client to malicious WebSocket server
-
DeliverySend 101 with invalid Sec-WebSocket-Accept
-
ExploitCoalesce WebSocket frames in same buffer
-
ExecutionFrames decoded despite failed handshake
-
ImpactSpoofed data delivered to application listener
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V15 - Secure Coding and Architecture Data authenticity verification
|
| Exploitation Conditions | The victim application must use AsyncHttpClient's WebSocket feature (WebSocketUpgradeHandler) on a version prior to 3.0.12 or 2.16.1 and initiate a connection to a server the attacker controls or can MITM. The attacker must return a 101 Switching Protocols response with a missing or invalid Sec-WebSocket-Accept value AND pipeline/coalesce WebSocket frames into the same read buffer as that 101 response. Limiting factors: the request future still fails and the channel is closed, so the attacker has only a narrow window in which coalesced frames are decoded and delivered (reflected as AC:H); impact is limited to injection of unverified frames into the listener (no confidentiality or availability impact); and exploitation is impossible unless the client is steered to an attacker-controlled or intercepted endpoint. |
| Impact | This is a genuinely low-priority issue, and the signals are consistent rather than conflicting. The provided CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N, base 3.7) correctly reflects a client-side trust flaw with only low integrity impact and no confidentiality or availability impact. Exploitation requires high complexity (AC:H) because the malicious server must race WebSocket frames coalesced into the same buffer as the invalid 101 response before the channel closes. No EPSS score, KEV listing, or public exploit was supplied; the only 'source code evidence' is the vendor's fix commit plus a regression test (WebSocketHandshakeValidationTest), which is remediation evidence, NOT a weaponized proof-of-concept. There is no CVSS-versus-description conflict: both describe a remote, unauthenticated-peer, low-impact integrity problem. Recommended handling is routine patching during the normal upgrade cycle rather than emergency response. Note: EPSS data is absent, so widespread-exploitation probability cannot be quantified, but the client-side nature and need for attacker-controlled/MITM server position strongly limit real-world risk. |
| Exploit ScenarioDerived | A Java application using AsyncHttpClient opens a WebSocket to an attacker-controlled or man-in-the-middle server. The server returns a 101 Switching Protocols response with a missing or invalid Sec-WebSocket-Accept header but pipelines WebSocket frames into the same buffer; because the vulnerable code continues into pipeline installation and onOpen delivery before closing, those unverified frames are decoded and handed to the application listener. No public exploit exists - only the vendor's fix and a regression test are available. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Improper verification of the WebSocket opening handshake in AsyncHttpClient (AHC) versions prior to 3.0.12 and 2.16.1 lets a malicious or man-in-the-middle WebSocket endpoint have frames decoded and delivered to the application's WebSocketListener even though the server's Sec-WebSocket-Accept value was missing or invalid and the 101 upgrade was never authenticated. Only Java applications that use the WebSocketUpgradeHandler on an affected AHC release and connect to an attacker-controlled or intercepted endpoint are exposed, and because the request future still fails and the channel is closed the window for delivering coalesced frames is narrow and the impact is limited to integrity of listener-delivered data. No public exploit code has been identified at time of analysis and the issue is not known to be actively exploited, consistent with its low CVSS 3.1 score of 3.7 (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N).
RemediationAI
Upgrade to a vendor-released patched version: AsyncHttpClient 3.0.12 for the 3.x line or 2.16.1 for the 2.x line, both of which contain the early-return fix in WebSocketHandler.upgrade and the handshake-validation regression test; consult the advisory at https://github.com/AsyncHttpClient/async-http-client/security/advisories/GHSA-rwhr-j9rv-85f8 and the release tags https://github.com/AsyncHttpClient/async-http-client/releases/tag/async-http-client-project-3.0.12 and https://github.com/AsyncHttpClient/async-http-client/releases/tag/async-http-client-project-2.16.1, with the code changes visible at commit 75a278550aa9a980009d022fb4e635f9c8738c03 and commit ccdcaa627db6d96dcc42105212cb3ba5048bd7f9. If an immediate upgrade is not possible, restrict WebSocket use to explicitly trusted endpoints over wss:// with strict TLS certificate validation (and certificate pinning where practical) so that a rogue or MITM server cannot present an unauthenticated 101, understanding that this is only a compensating control and does not fix clients pointed at already-compromised or misconfigured endpoints; alternatively, avoid WebSocketUpgradeHandler entirely in builds that do not need WebSocket functionality, at the cost of losing that feature. No vendor workaround short of upgrading fully eliminates the defect, since the root cause is the client continuing protocol processing after a failed accept-token check.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
RFC 6455 section 4.1 requires a WebSocket client to verify that the Sec-WebSocket-Accept header returned in the server's 101 Switching Protocols response equals the base64-encoded SHA-1 digest of the client's Sec-WebSocket-Key nonce concatenated with the fixed GUID, and to fail the connection if it does not. In AHC the upgrade logic lives in org.asynchttpclient.netty.handler.WebSocketHandler.upgrade; prior to the fix it aborted the handshake on a missing or invalid accept token but did not return early, so execution continued into Netty pipeline installation and onOpen listener delivery. Any WebSocket frames coalesced into the same read buffer as the bogus 101 response could therefore be decoded and surfaced to the application even though the peer had not proven the handshake, a classic insufficient verification of data authenticity (CWE-345) defect in a Java/Netty-based asynchronous HTTP client. The upstream fix simply inserts an early return so that an invalid handshake terminates the upgrade path entirely, and the accompanying regression test WebSocketHandshakeValidationTest asserts that onOpen never fires when the accept value does not match.
Know when Java gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
A malicious or MITM server must race frames coalesced past a failed handshake, so AC:H; peer needs no credentials (PR:N); only unverified frame injection occurs, so I:L with C:N and A:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
The AsyncHttpClient (AHC) library allows Java applications to easily execute HTTP requests and asynchronously process HTTP responses. Prior to 3.0.12 and 2.16.1, WebSocketHandler.upgrade aborts a handshake whose Sec-WebSocket-Accept value is missing or invalid but continues into pipeline installation and onOpen delivery. Frames coalesced with the invalid 101 response can be decoded and delivered from a peer that did not prove the handshake, although the request future fails and the channel closes. This issue is fixed in versions 3.0.12 and 2.16.1.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m
Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti
Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent
Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug
JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up
Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up
The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow
Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during
EUVD-2026-94644
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB