Skip to main content

AsyncHttpClient CVE-2026-107285

| EUVDEUVD-2026-94645 MEDIUM
Cleartext Transmission of Sensitive Information (CWE-319)
2026-10-07 GitHub_M GHSA-3wp9-xfwm-rjjf
5.9
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Attacker operates/compromises a WebSocket origin
  2. Exploit
    Victim app opens ws:// through authenticating proxy
  3. Execution
    Tunneled upgrade reaches origin with Proxy-Authorization
  4. Impact
    Recover 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

async-http-client 2.0.0, < 2.16.1
async-http-client 3.0.0, <3.0.12

Affected Packages

maven org.asynchttpclient:async-http-client fix: 2.16.1, 3.0.12
euvd async_http_client_2_0_0 fix: 2.16.1
euvd async_http_client_3_0_0 fix: 3.0.12

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

Vendor (GitHub_M) PRIMARY 5.9 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 5.9 MEDIUM

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.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Oct 07, 2026 - 23:02 EUVD

DescriptionCVE.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
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 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

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Medium
common Java HTTP client library, not ubiquitous like OpenSSL or the JDK
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

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

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy