Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAttacker operates/compromises a WebSocket origin
-
ExploitVictim app opens ws:// through authenticating proxy
-
ExecutionTunneled upgrade reaches origin with Proxy-Authorization
-
ImpactRecover Basic or crack/replay Digest proxy credentials
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V12 - Secure Communication Transport encryption
|
| Exploitation Conditions | Exploitation requires a specific non-default alignment: the application must (1) use AsyncHttpClient older than 3.0.12 / 2.16.1, (2) be configured with an HTTP proxy that uses proxy authentication (Basic or Digest, e.g. preemptive Proxy-Authorization), and (3) actively initiate a plaintext ws:// (not wss://) WebSocket request routed through that proxy. The credential leak flows to the origin WebSocket server, so the beneficiary/attacker is the origin endpoint operator or a party able to observe origin-bound traffic - not an arbitrary internet attacker. Limiting factors: wss:// and plain http:// requests are unaffected; the proxy must require authentication; and only the proxy credential (not application or user data) is exposed. Basic credentials are immediately usable while Digest only yields a replayable/offline-crackable challenge-response. |
| Impact | This is a genuine but moderate-priority information-disclosure flaw (CVSS 5.9), not a high-urgency issue. The input CVSS vector CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N is internally consistent with the description: no privileges or user interaction on the vulnerable application are needed (PR:N/UI:N), but AC:H correctly reflects that several conditions beyond the attacker's control must align - the application must use AsyncHttpClient with an HTTP proxy configured for proxy authentication AND must initiate a plaintext ws:// WebSocket request through that proxy. The 'attacker' is effectively the origin WebSocket endpoint (or anyone observing origin-bound traffic), since the tunneled upgrade carrying the Proxy-Authorization header reaches the origin rather than the proxy. Confidentiality impact is real (C:H) - Basic proxy credentials are directly recoverable and Digest values can be replayed or cracked offline - with no integrity or availability impact (I:N/A:N), matching CWE-319 (cleartext transmission of sensitive information). No EPSS score, KEV listing, or public POC was provided in the input; absence of these signals, combined with AC:H and the narrow preconditions, indicates this is unlikely to see widespread opportunistic exploitation and is better characterized as a credential-hygiene/targeted risk than an actively weaponized threat. |
| Exploit ScenarioDerived | A Java application uses AsyncHttpClient behind an authenticating HTTP proxy and opens a plaintext ws:// WebSocket connection to an external origin through that proxy. Because ws:// is tunneled via CONNECT but not treated as 'secure,' the WebSocket upgrade request forwarded to the origin includes the proxy's Proxy-Authorization header, so a malicious or compromised origin operator simply reads the inbound request to recover the Basic credential directly (or captures the Digest response for offline cracking/replay). No public exploit code was identified at time of analysis; the fix is confirmed in versions 3.0.12 and 2.16.1. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Proxied plaintext WebSocket (ws://) requests issued through AsyncHttpClient before 3.0.12 or 2.16.1 leak the configured proxy's credentials to the origin WebSocket server. When an HTTP proxy requiring authentication is in use, the tunneled ws:// upgrade is built with the proxy's Proxy-Authorization header and an absolute-form request target, so the origin endpoint operator - or any party able to observe origin-bound traffic - can recover Basic credentials directly or capture a Digest challenge-response for offline cracking or replay. Exploitation depends on a non-default configuration (an authenticated HTTP proxy plus an application-initiated ws:// request), yields only proxy credentials rather than user or application data, and is rated CVSS 3.1 base 5.9; no public exploit code and no confirmed active exploitation have been identified at time of analysis.
RemediationAI
Vendor-released patch: upgrade to AsyncHttpClient 3.0.12 (3.x line) or 2.16.1 (2.x line), available from the release tags at 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; the corresponding upstream commits are 6e9cb75a9b7259353f983fc90ca28b1da3742e18 and c4feab0f7f86d61505a48e40d383c8a375a22e18, and full details are in advisory GHSA-3wp9-xfwm-rjjf. If immediate upgrade is not possible, switch application WebSocket endpoints from ws:// to wss:// (the tunneled path that was already safe), accepting the trade-off that the origin must serve TLS and certificate validation must succeed; alternatively, stop routing plaintext ws:// traffic through an authenticated HTTP proxy by pointing those connections direct or through an unauthenticated proxy, at the cost of losing proxy-based access control and auditing for that traffic. Because the leaked value is the proxy credential itself, treat any ws://-through-authenticated-proxy traffic predating the upgrade as compromised: rotate and re-issue the proxy credentials, prefer short-lived or scoped proxy accounts, and note that switching from Digest to Basic does not mitigate the flaw - Basic leaks immediately, while Digest only reduces the exposure to replay/offline cracking. There is no configuration flag in affected versions that separates CONNECT authentication from upgrade-request authentication, so upgrading is the only complete fix.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in maven, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
AsyncHttpClient (AHC) is a Java library for asynchronous HTTP execution built on Netty; when a proxy is configured, it uses CONNECT tunneling for secure and WebSocket requests. NettyRequestSender.needConnect() tunnels ws:// exactly like wss:// and https://, so the post-CONNECT WebSocket upgrade travels through the tunnel directly to the origin host rather than to the proxy. However, NettyRequestFactory.newNettyRequest() and the private requestUri() helper decided whether to attach Proxy-Authorization and to emit an absolute-form request target (RFC 9110 §4.2.4) using only uri.isSecured(). Because ws:// is not marked secure, the tunneled upgrade fell into the same branch as plaintext http:// proxying: it carried the proxy credential header and an absolute-form URI even though the message terminates at the origin. The root cause class is CWE-319 (Cleartext Transmission of Sensitive Information) - proxy secrets intended only for the intermediary are transmitted to a third party in a context the client did not intend. The upstream fix extends both conditions with a !uri.isWebSocket() check so ws:// is handled like wss:// (credentials only on the CONNECT, origin-form target on the upgrade), guarded by a new WebSocketTunnelProxyAuthTest covering CONNECT auth, tunneled ws://, tunneled wss://, and plain http:// proxying.
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:H/I:N/A:N
AC:H because exploitation depends on proxy-auth configuration plus an attacker-reachable ws:// origin; PR:N/UI:N since the victim app needs no attacker privileges; C:H for proxy credential disclosure, I:N/A:N as only secrecy is affected.
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, a proxied ws request is carried through CONNECT, but NettyRequestFactory.newNettyRequest and requestUri decide whether to attach proxy authentication and an absolute-form target only from whether the URI is secure. Because ws is not marked secure, the tunneled WebSocket upgrade sent to the origin includes the proxy's Proxy-Authorization value. Basic credentials are directly recoverable and Digest responses can be replayed or cracked offline. This issue is fixed in versions 3.0.12 and 2.16.1.
Blast Radius
ecosystem impact- 24 maven packages depend on org.asynchttpclient:async-http-client (15 direct, 9 indirect)
Ecosystem-wide dependent count for version 3.0.0.
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-94645
GHSA-3wp9-xfwm-rjjf
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB