Skip to main content

AsyncHttpClient CVE-2026-85719

| EUVDEUVD-2026-81904 HIGH
Cleartext Transmission of Sensitive Information (CWE-319)
2026-09-17 GitHub_M
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Attacker controls or observes an origin the victim requests
  2. Delivery
    Victim app sends request via authenticated SOCKS proxy
  3. Exploit
    Library attaches Proxy-Authorization or replies to 407
  4. Execution
    Proxy credentials tunneled to origin
  5. Impact
    Attacker harvests Basic/NTLM/Kerberos/SPNEGO secrets

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V12 - Secure Communication Transport encryption
Exploitation Conditions

Exploitation requires the victim application to be configured with an AUTHENTICATED SOCKS proxy (SOCKS4 or SOCKS5, with a proxy Realm holding Basic/NTLM/Kerberos/SPNEGO credentials) in AsyncHttpClient versions 2.1.0 through 2.16.0 or 3.0.x before 3.0.12 (pre-2.1.0 has no SOCKS support and is unaffected). Two triggering paths: (1) with preemptive proxy authentication enabled, the Proxy-Authorization header is attached to plaintext HTTP requests and leaks directly-reversible Basic credentials to ANY origin, including benign ones; (2) in the default non-preemptive flow, a HOSTILE/attacker-controlled origin must return an HTTP 407 response, causing ProxyUnauthorized407Interceptor to send proxy credentials (including NTLM/Kerberos/SPNEGO) through the SOCKS tunnel to that origin. Limiting factors: no exploitation is possible without an authenticated SOCKS proxy configuration, and the non-preemptive path additionally requires the attacker to control or influence the destination origin the victim connects to.

Impact

This is a credential-exposure flaw (CWE-319) in AsyncHttpClient, rated CVSS 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N) by the reporter, which I agree with in magnitude - confidentiality-only, high impact, no integrity or availability effect. The vector's PR:N is technically correct because the attacking party (a hostile or simply plaintext origin server) needs no authentication, but real-world exploitability is gated by a significant precondition NOT reflected in the base vector: the victim application must be configured to route requests through an AUTHENTICATED SOCKS proxy. No EPSS score, KEV listing, or public POC is provided, so exploitation status is: no public exploit identified at time of analysis. The fix commits, a dedicated regression test (SocksProxyCredentialLeakTest), and a GitHub Security Advisory (GHSA-x5w6-vm3f-pp6f) are all confirmed, so the vulnerability itself is well-substantiated even though weaponization is not. Net: a legitimately serious credential-leak bug for the subset of deployments using authenticated SOCKS proxies, but not a mass-exploitation priority - treat as a targeted/passive-leak risk rather than an internet-wide emergency. The provided 'Authentication Bypass' tag is a mislabel; the actual class is cleartext credential exposure to the origin.

Exploit ScenarioDerived

A Java service uses AsyncHttpClient with an authenticated SOCKS5 proxy (carrying Basic, NTLM, Kerberos, or SPNEGO proxy credentials) and makes outbound HTTP requests to third-party origins. Because the library attaches Proxy-Authorization without checking the proxy is HTTP, the header (or the 407-challenge response to it) is tunneled straight to the origin - either leaking directly-reversible Basic credentials on a preemptive plaintext request, or, in the default flow, a hostile origin returns HTTP 407 and ProxyUnauthorized407Interceptor replays the proxy credentials to the attacker. No public POC is provided, but the fix's regression test demonstrates the leak conditions precisely.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.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 – Sep 17, 2026

AsyncHttpClient (AHC) 2.1.0 through 2.16.0 and 3.0.x before 3.0.12 can disclose authenticated SOCKS proxy credentials - including directly reversible Basic credentials and NTLM/Kerberos/SPNEGO material - to the origin server because the library attaches a Proxy-Authorization header to a request carried over a SOCKS tunnel without first confirming that the destination is an HTTP proxy. Any Java application that configures AHC with an authenticated SOCKS4 or SOCKS5 proxy in those versions is exposed: in the preemptive-authentication path the header is emitted on plaintext HTTP requests to any origin, and in the default non-preemptive path a hostile origin that answers with HTTP 407 triggers ProxyUnauthorized407Interceptor to push the proxy credentials back through the tunnel to that origin. The reporter-assigned CVSS is 7.5 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N), a confidentiality-only, high-impact issue that requires an authenticated SOCKS proxy configuration to be present; no public exploit code or confirmed active exploitation (CISA KEV) was identified at time of analysis.

RemediationAI

Vendor-released patch: upgrade to AsyncHttpClient 2.16.1 (2.x line) or 3.0.12 (3.x line), which add the proxy-type guard in NettyRequestFactory and NettyRequestSender; the fixing changes are visible in the commits and GHSA-x5w6-vm3f-pp6f linked above. If an immediate upgrade is not possible, the highest-value compensating control is to stop using authenticated SOCKS proxies with affected versions: either switch to an HTTP or HTTPS proxy, where the Proxy-Authorization header is legitimately destined for the proxy hop and the vulnerability does not apply, or use a SOCKS proxy configured without a Realm (no credentials to leak) - the trade-off is loss of proxy-side authentication and auditing. Disabling preemptive proxy authentication (setUsePreemptiveAuth(false)) closes only the plaintext-HTTP leak path, not the second path in which a hostile origin returns HTTP 407 and provokes ProxyUnauthorized407Interceptor to forward NTLM/Kerberos/SPNEGO credentials through the tunnel, so do not treat it as a complete fix. Because the non-preemptive path requires an attacker-influenced origin, pinning or allowlisting outbound destinations so the application cannot be steered to attacker-controlled hosts reduces that path's reachability, at the cost of reduced flexibility for dynamic egress and no protection for the preemptive path against benign-but-curious origins. Rotating any Basic proxy credentials that may have traversed SOCKS tunnels is advisable, since Basic is directly reversible and NTLM/Kerberos/SPNEGO material may enable relay or replay.

Affected VersionsENISA

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

Affected Packages

euvd async_http_client_2_1_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 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

The flaw is a cleartext-transmission-of-sensitive-information issue (CWE-319) rooted in how AHC's Netty request pipeline decides when to inject proxy authentication. An HTTP proxy receives the origin request directly (absolute-form URI) or brokers a CONNECT tunnel, so a Proxy-Authorization header is destined only for the proxy hop; a SOCKS4/SOCKS5 proxy, by contrast, tunnels at the transport layer and never sees the HTTP message, so any Proxy-Authorization header attached to the origin request travels end-to-end to the origin server. Two code locations were at fault: NettyRequestFactory.newNettyRequest gated header attachment only on '!uri.isSecured() || connect' rather than also checking proxyServer.getProxyType().isHttp(), and NettyRequestSender.sendRequestWithNewChannel unconditionally applied per-connection preemptive proxy auth (NTLM/Kerberos/SPNEGO) via setProxyAuthorizationHeader. The upstream fix adds an isHttp() proxy-type guard in both places and adds a regression test (SocksProxyCredentialLeakTest) asserting that SOCKS_V4/SOCKS_V5 proxies no longer produce a Proxy-Authorization header on plaintext origin requests while HTTP/HTTPS proxies still do. Affected code is the org.asynchttpclient library (CPE cpe:2.3:a:asynchttpclient:async-http-client:*:*:*:*:*:*:*:*, wildcarded so it must be scoped by the vendor advisory's version ranges rather than by the CPE alone).

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 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 5.9 MEDIUM

Origin needs no auth (PR:N) but exploitation is gated on the victim using an authenticated SOCKS proxy and, for the 407 path, an attacker-controlled origin, so AC:H; confidentiality-only (C:H, I/A:N).

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Sep 17, 2026 - 17:19 EUVD
CVE Published
Sep 17, 2026 - 15:52 cve.org
HIGH 7.5

DescriptionCVE.org

The AsyncHttpClient (AHC) library allows Java applications to easily execute HTTP requests and asynchronously process HTTP responses. From 2.1.0 until 2.16.1 and 3.0.12, requests using an authenticated SOCKS proxy can expose the proxy's credentials to the origin because NettyRequestFactory and NettyRequestSender attach Proxy-Authorization without confirming that the request is being sent to an HTTP proxy. With preemptive proxy authentication, the header is attached to a plaintext HTTP request, exposing credentials such as directly reversible Basic credentials to the origin. With the default non-preemptive flow, a hostile origin can return a 407 response and ProxyUnauthorized407Interceptor sends the proxy credentials through the existing SOCKS tunnel, including NTLM, Kerberos, and SPNEGO credentials. Releases before 2.1.0 lack SOCKS proxy support. This issue is fixed in versions 2.16.1 and 3.0.12.

Technical POC Analysis

Evidence base: GitHub Security Advisory GHSA-x5w6-vm3f-pp6f only.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

AsyncHttpClient, a Java library embedded in many enterprise applications and services, can expose the credentials of an authenticated SOCKS proxy to whatever destination server an application contacts, effectively handing an attacker the keys to broader network egress. Because proxy credentials are typically reusable across systems and environments, any organization routing Java traffic through an authenticated SOCKS4 or SOCKS5 proxy is exposed to a high-impact, confidentiality-only leak. No vendor-released patch has been identified at this time, so leadership should expect affected teams to remediate through configuration and credential hygiene while a fix is awaited.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis; interim mitigations: remove or disable authenticated SOCKS4/SOCKS5 proxy configuration for AsyncHttpClient 2.1.0 through 2.16.0 and 3.0.x before 3.0.12, use unauthenticated or alternative egress paths, rotate all proxy credentials that transited a SOCKS tunnel, and constrain outbound egress. The issue is remotely triggerable without authentication (CVSS vector PR:N) but requires an authenticated SOCKS proxy configuration to be present, and no public exploit identified at time of analysis.

Threat Intelligence Overview

EPSS Score
0.2%
Top 88% exploitable
Prevalence
Medium
Popular async Java HTTP client library, but leak gated to SOCKS-proxy deployments
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 HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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

Vendor StatusVendor

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