Skip to main content

AsyncHttpClient EUVDEUVD-2026-94635

| CVE-2026-107230 HIGH
Origin Validation Error (CWE-346)
2026-10-07 GitHub_M GHSA-v2j5-22fr-j62r
7.4
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Issue request as low-privilege identity
  2. Delivery
    Hit AHC-backed service sharing a pool
  3. Exploit
    Reuse keep-alive socket authenticated as another identity
  4. Execution
    Request executes under victim's principal
  5. Impact
    Expose victim's data or authority

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Origin validation
Exploitation Conditions

Requires the AHC connection pool to contain a reusable keep-alive socket whose authentication state is not reflected in the pool partition key. Concretely, the application must use one of: Kerberos, SPNEGO, NTLM, an authenticated proxy (proxy realm), or SOCKS/CONNECT proxy logins - and specifically the identity-ambiguous cases named in the advisory: logins without a configured principal, proxy realms, distinct identities sharing the same user name, and SOCKS/CONNECT proxy logins. LIMITING FACTORS: applications using only HTTP Basic/Digest, or a single identity/principal, are not affected; exploitation also depends on timing the reuse of an already-authenticated socket (AC:H) and on the application multiplexing multiple callers/identities over one AHC client instance. Default single-identity usage and non-GSS/non-proxy auth are not exploitable.

Impact

This is a credible but conditional information-disclosure/authentication-bypass issue (CWE-346, Origin Validation Error), not a mass-exploitation emergency. The CVSS 3.1 base score is 7.4 (High) with vector AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N: network reachable and requiring no privileges, but with high attack complexity (AC:H) because exploitation depends on a specific pooled-connection reuse race and non-default authentication configurations. No EPSS score was supplied in the input, and the CVE is NOT present in CISA KEV, so there is no evidence of active exploitation. No public exploit code was provided - only the vendor security advisory, the fixing commit, and the 3.0.14 release are referenced. The practical risk is therefore moderate and targeted rather than broad: the flaw only matters to Java applications that use AHC with Kerberos, SPNEGO, NTLM, or authenticated SOCKS/CONNECT proxies AND multiplex more than one identity (or anonymous plus authenticated callers) over a shared connection pool. One signal tension worth flagging: the CVSS marks PR:N (unauthenticated), yet the real attacker is typically a co-tenant/legitimate caller of the same AHC-backed application who opportunistically reuses a socket authenticated as another identity - PR:N is defensible because the reusing request itself presents no credentials, but defenders should read this as a cross-identity leak within a shared application, not a classic external-attacker RCE. Prioritize patching for multi-tenant gateways/proxies and SSO-integrated services; deprioritize for apps that use only Basic/Digest or a single identity.

Exploit ScenarioDerived

A multi-tenant Java service uses AsyncHttpClient with Kerberos/SPNEGO (or an authenticated CONNECT/SOCKS proxy) to make outbound requests on behalf of different users. Because the connection-pool key omits the identity, a request for user B is dispatched over a keep-alive socket that was already authenticated as user A, causing B's call to execute with A's identity and return or act on A's data and authority. No public proof-of-concept was provided; exploitation hinges on timing the pool reuse (AC:H) under a vulnerable auth configuration.

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 – Oct 07, 2026

Connection-pool key scoping in AsyncHttpClient (AHC) 2.0.0 through 3.0.13 omits identity-defining fields for Kerberos, SPNEGO, NTLM, authenticated proxy and SOCKS/CONNECT login paths, so a request can be handed a pooled keep-alive socket that was already authenticated as an entirely different identity and then execute under that first identity's credentials, exposing the other identity's data or authority. Reachability is conditional: the application must use Kerberos/SPNEGO/NTLM, an authenticated proxy realm, or SOCKS/CONNECT proxy logins, and specifically the ambiguous cases where login has no configured principal, where realms are proxy realms, where distinct identities share a user name, or where proxy logins are used - clients using only HTTP Basic/Digest or a single identity/principal are not affected. Rated CVSS 7.4 (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N, CWE-346 Origin Validation Error); exploitation depends on timing the reuse of an already-authenticated socket across multiplexed callers, and there is no public exploit identified at time of analysis and no CISA KEV listing. Vendor-released patch: 3.0.14.

RemediationAI

Upgrade AsyncHttpClient to 3.0.14 or later, which is the vendor-released patch and contains the PrincipalScopedPartitionKey rewrite that keys pool partitions on the complete authentication identity and uses anyHopAuthenticatesTheConnection; see the advisory at https://github.com/AsyncHttpClient/async-http-client/security/advisories/GHSA-v2j5-22fr-j62r and the release at https://github.com/AsyncHttpClient/async-http-client/releases/tag/async-http-client-project-3.0.14, with the upstream change at https://github.com/AsyncHttpClient/async-http-client/commit/d3bb4d68b41acf5d3ab7541afa9fdfe7ec3ba054. If immediate upgrade is not possible, reduce exposure by ensuring each authenticated identity uses its own AHC client instance rather than multiplexing multiple callers/identities over one pool - this costs additional sockets and connection setup latency, and closes the cross-identity socket-reuse path because there is no shared pool to mis-partition. Where identity-ambiguous GSS/proxy logins are configured, set an explicit principal per realm so the login identity is unambiguous, and avoid shared user names across distinct identities; note that this only removes the ambiguity and does not fix the underlying key scoping. Disabling connection keep-alive/pooling (forcing fresh connections per request) removes the reuse window but significantly increases latency and load on servers and proxies. If h2c negotiation is involved, disabling http2Cleartext avoids the HTTP/1.1 downgrade path the patch warns about, at the cost of losing cleartext HTTP/2. Deployments restricted to HTTP Basic/Digest or a single identity/principal do not exercise the vulnerable path and can be deprioritized for emergency change windows.

Affected VersionsENISA

async-http-client 3.0.0, < 3.0.14
async-http-client 2.0.0, ≤ 2.16.1

Affected Packages

maven org.asynchttpclient:async-http-client fix: 3.0.14
euvd async_http_client_2_0_0 no fix
euvd async_http_client_3_0_0 fix: 3.0.14

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

AHC is a Java asynchronous HTTP client built on Netty, and it maintains per-connection pool partitions so that one reusable socket is not shared between logically distinct exchanges. Before the fix, the partition key was produced by PrincipalScopedPartitionKey.scope(future.getPartitionKey(), future.getRealm()) and the connection-authentication check was PrincipalScopedPartitionKey.authenticatesTheConnection(future.getRealm(), future.getProxyRealm()), which folded only the origin realm's principal into the key and left proxy-side and principal-less identities out of it. Per the commit d3bb4d68b41acf5d3ab7541afa9fdfe7ec3ba054, the class was refactored to carry an opaque hashed "identity" instead of a raw principal, to derive the key from the whole NettyResponseFuture via scope(NettyResponseFuture), and to replace the origin-only check with anyHopAuthenticatesTheConnection(future), which considers the proxy realm, proxy server, SOCKS/CONNECT login and per-connection proxy hop rather than just the origin. Identity values are folded in via a ThreadLocal SHA-256 MessageDigest, sorting fields with a TreeMap and hashing with ByteBufUtil, because scope() runs on the event loop for every poll and offer. The root cause is CWE-346 (Origin Validation Error): the pool partitioning failed to validate/bind the identity that actually authenticated the socket, so NettyConnectListener and ChannelManager could drainChannelAndOffer an authenticated connection to a future belonging to a different identity. Affected CPE lineage is cpe:2.3:a:asynchttpclient:async-http-client:*:*:*:*:*:*:*:* - all releases from 2.0.0 until the 3.0.14 fix.

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

AV:N and PR:N because the reusing request needs no credentials; AC:H due to the required pooled-socket reuse race and non-default GSS/proxy auth; C:H/I:H as the victim's identity data and authority are exposed, A:N.

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

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
High
Availability
None

Lifecycle Timeline

2
Patch available
Oct 07, 2026 - 23:02 EUVD
CVE Published
Oct 07, 2026 - 21:00 cve.org
HIGH 7.4

DescriptionCVE.org

The AsyncHttpClient (AHC) library allows Java applications to easily execute HTTP requests and asynchronously process HTTP responses. From 2.0.0 until 3.0.14, connection-pool partitioning still omits identity-defining fields for Kerberos, SPNEGO, NTLM, and authenticated proxy connections. Logins without a configured principal, proxy realms, identities sharing a user name, and SOCKS or CONNECT proxy logins can reuse a socket authenticated as a different identity. A later request is then executed under the first identity and can expose that identity's data or authority to another caller. In the affected execution path, SpnegoEngine, NTLM, Kerberos, SPNEGO, SOCKS, and CONNECT control or expose the vulnerable behavior. This issue is fixed in version 3.0.14.

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.

Technical POC Analysis

Evidence base: GitHub advisory GHSA-v2j5-22fr-j62r 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

A connection-pooling flaw in AsyncHttpClient (AHC) versions 2.0.0 through 3.0.13 can cause a request to reuse a keep-alive socket that was already authenticated as a different user, allowing one identity to act with another's credentials and exposing data or authority it should never reach. Only systems that rely on Kerberos, SPNEGO, NTLM, authenticated proxy realms, or SOCKS/CONNECT proxy logins are exposed, and only in ambiguous configurations such as shared usernames, proxy realms, or logins without an explicit principal; deployments using Basic/Digest authentication or a single identity are not affected. Because no vendor patch is currently available, leadership should treat any affected multi-tenant or privileged service as an identity-isolation risk requiring interim containment.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: disable connection pooling and keep-alive socket reuse for clients using Kerberos/SPNEGO/NTLM, authenticated proxy realms, or SOCKS/CONNECT logins; use a dedicated client instance per identity; require explicit principals for negotiated authentication; avoid shared usernames across distinct identities and avoid proxy-realm logins where possible; rotate credentials that may have been exposed; monitor authentication and access logs for cross-identity activity.

Threat Intelligence Overview

EPSS Score
0.2%
Top 92% exploitable
Prevalence
Medium
popular Java async HTTP client library, common but not universally deployed
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub

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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

37
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +37
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

Vendor StatusVendor

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