Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAttacker controls or MITMs HTTP proxy
-
DeliveryClient sends CONNECT for origin tunnel
-
ExploitProxy rejects CONNECT with 401/302
-
ExecutionClient writes origin request on plaintext socket
-
PersistAuthorization header leaked to proxy
-
ImpactHarvest Basic/NTLM credentials for reuse
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V12 - Secure Communication Transport encryption
|
| Exploitation Conditions | Exploitable only when the victim application uses AsyncHttpClient (before 3.0.12 on 3.x or before 2.16.1 on 2.x) configured to send requests through an HTTP proxy AND the request carries credentials via redirect/authentication handling (Basic or NTLM Authorization). The trigger is a proxy that answers a CONNECT with something other than 200 (e.g., a 401, 407, or 302 rejection), after which the client incorrectly treats the socket as an established tunnel. Exploitation is LIMITED by: the attacker must control or have compromised the HTTP proxy or be able to MITM the client-to-proxy hop (a hostile or compromised proxy, not an arbitrary remote attacker); the application must actually route through a proxy (non-default for many deployments); and only confidentiality is affected (credential disclosure), with Basic recoverable directly and NTLM requiring cracking or relay. |
| Impact | The NVD CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N = 7.5 HIGH) describes a network-reachable, unauthenticated, confidentiality-only flaw, consistent with CWE-319 (cleartext transmission) and the description: origin credentials are written onto a still-plaintext proxy socket after a failed CONNECT. No EPSS score, no CISA KEV listing, and no public exploit were provided in the intelligence, so exploitation status is 'no public exploit identified at time of analysis.' The practical risk is narrower than the raw 7.5 implies: exploitation is not against a default internet-facing service but requires (a) the victim application to route AsyncHttpClient traffic through an HTTP proxy and (b) an attacker who controls or has compromised that proxy, or can MITM the client-to-proxy hop, so a CONNECT can be rejected and an origin request with Authorization solicited. This makes it a credible credential-theft issue for environments using AHC with proxies - especially with Basic or NTLM auth - but a targeted, position-dependent one rather than a mass-exploitable remote flaw. The commit diffs confirm the root cause and fix in detail, raising confidence the vulnerability is real; the main uncertainty is deployment exposure, not technical validity. |
| Exploit ScenarioDerived | A Java application uses AsyncHttpClient configured to reach origin servers through an HTTP proxy and sends requests carrying Authorization (Basic or NTLM) credentials. An attacker who controls or has compromised the proxy (or can intercept the client-to-proxy connection) rejects the CONNECT tunnel request and instead returns a 401 or 302; the client, believing a tunnel exists because the last method was CONNECT, rewrites the origin request and writes its Authorization header onto the still-plaintext proxy socket, where the attacker reads Basic credentials directly or captures NTLM responses for offline cracking or relay. No public proof-of-concept was provided in the intelligence. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Cleartext credential disclosure in AsyncHttpClient (AHC) before 3.0.12 on the 3.x line and before 2.16.1 on the 2.x line causes a client configured to use an HTTP proxy to write the origin request and its Authorization credentials onto a still-plaintext proxy connection when the proxy rejects the CONNECT with anything other than 200, because the client infers an established tunnel from the last request method rather than the CONNECT result. Per the assessed vector (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N, 7.5 HIGH), this is an unauthenticated, confidentiality-only issue: Basic credentials can be recovered directly, while NTLM responses may be cracked or relayed. Exploitation is limited to environments where the victim application routes through an HTTP proxy and the attacker controls or can man-in-the-middle the client-to-proxy hop; no public exploit identified at time of analysis.
RemediationAI
Vendor-released patch: upgrade to AsyncHttpClient 3.0.12 (3.x) or 2.16.1 (2.x) as documented in GHSA-v9f2-7rw2-gr2x and the release tags (https://github.com/AsyncHttpClient/async-http-client/releases/tag/async-http-client-project-3.0.12, https://github.com/AsyncHttpClient/async-http-client/releases/tag/async-http-client-project-2.16.1). Because remediation hinges on a code fix, there is no reliable configuration-only workaround; until upgrading, avoid routing requests through HTTP proxies you do not fully trust, avoid sending Basic or NTLM credentials through such proxies, and treat plaintext proxy hops as untrusted for credential transport. These compensating controls reduce exposure but do not fix the underlying logic that leaks credentials after a rejected CONNECT.
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
AsyncHttpClient (AHC) is a Java library built on Netty for asynchronous HTTP requests, and this CWE-319 cleartext transmission flaw arises in its proxy CONNECT handling. Prior to the fix, NettyResponseFuture and Interceptors.java determined tunnel state from the last request method (HttpMethod.CONNECT) rather than from a successful 200 response, so after a proxy rejected CONNECT with 401, 302, 407, or other non-200 statuses, origin-request interceptors could rebuild the exchange with setReuseChannel(true) and place the origin's Authorization header on a socket still terminated by the proxy in plaintext. The commit 3a625cb892233c0a6653ac68823a25ffbc80f393 introduces an explicit tunnelEstablished flag set only by ConnectSuccessInterceptor, restricts CONNECT handling in Interceptors.java to PROXY_AUTHENTICATION_REQUIRED_407 and OK_200, skips cookie storage on CONNECT, and adds a check in ProxyUnauthorized407Interceptor so a 407 from a non-HTTP proxy (e.g., SOCKS) is ignored. The CPE cpe:2.3:a:asynchttpclient:async-http-client:*:*:*:*:*:*:*:* covers all older releases on the 2.x and 3.x lines.
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:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Network-reachable credential leak with no auth or user interaction; a hostile proxy trivially rejects CONNECT (AC:L), and impact is confidentiality-only so I:N/A:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
The AsyncHttpClient (AHC) library allows Java applications to easily execute HTTP requests and asynchronously process HTTP responses. Prior to 3.0.12 on 3.x and 2.16.1 on 2.x, the client infers that an HTTP proxy tunnel exists from the last request method rather than the CONNECT result. After a proxy rejects CONNECT, redirect or authentication handlers can write an origin request and its Authorization credentials onto the still-plaintext proxy connection. Basic credentials can be recovered directly, while NTLM responses may be cracked or relayed. This issue is fixed in versions 3.0.12 and 2.16.1.
Articles & Coverage 1
Technical POC Analysis
CWE-319 (Cleartext Transmission of Sensitive Information), with the advisory also tagging CWE-441 (Confused Deputy) and CWE-522 (Insufficiently Protected Credentials).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
The AsyncHttpClient (AHC) Java library can write request credentials in cleartext to a proxy connection, potentially exposing the identities of internal services, integrations, and automated jobs built on AHC 3.x before 3.0.12 or 2.x before 2.16.1. Because the exposed Basic and NTLM credentials are directly reusable or crackable, the practical business risk is unauthorized access and lateral movement into downstream systems rather than disruption of the vulnerable application itself. Exploitation requires the organization to route affected traffic through an HTTP proxy and an adversary to control or intercept that client-to-proxy hop, and no public exploit was identified at time of analysis, but no vendor-released patch has been identified at time of analysis, so risk must be managed through configuration and detection in the near term.
No vendor-released patch identified at time of analysis. Interim mitigations: eliminate plaintext HTTP proxy usage for affected clients by enforcing HTTPS or TLS-protected proxy connections; avoid Basic and NTLM authentication on the client-to-proxy hop and prefer Kerberos or short-lived, narrowly scoped credentials; verify that proxies in scope return non-200 CONNECT responses that the client handles correctly and block or alert on outbound credential-bearing traffic to untrusted proxies; segment and monitor the client-to-proxy network path to reduce man-in-the-middle opportunity; rotate any Basic or NTLM credentials that may have traversed a plaintext proxy connection; and log proxy authentication failures for detection.
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-94637
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB