Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as a principal to shared AHC client
-
ExploitDraw pooled socket authenticated as another principal
-
ExecutionBackend serves request as prior identity
-
ImpactAccess or alter victim principal's resources
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Origin validation
|
| Exploitation Conditions | Exploitation requires the application to configure AsyncHttpClient with a connection-oriented, connection-authenticating scheme - NTLM, Kerberos, or SPNEGO/Negotiate (a Realm using AuthScheme.NTLM/KERBEROS/SPNEGO) - over HTTP/1.1 with keep-alive connection pooling enabled (default), AND to reuse the same client/connection pool across requests carrying different authenticated principals (e.g. a multi-user gateway or proxy). The flaw is the HTTP/1.1 pool key omitting the authenticated principal, so a socket authenticated for one identity can be reused by another. Basic and Digest configurations are explicitly NOT affected because they authenticate every request. Limiting factors: the attacker must be an authenticated principal (PR:L); a suitable already-authenticated pooled socket must exist at the right moment (AT:P, AC:H timing dependency); single-principal deployments and non-NTLM/Negotiate setups are not exploitable. |
| Impact | The source-provided CVSS 4.0 vector (CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N, 7.6 High) is internally consistent with the description: AV:N (the client talks to a network backend), AC:H plus AT:P capture that exploitation is non-deterministic and conditional (a pooled, already-authenticated socket must exist and be handed to a differently-authenticated request - a timing/state-dependent race), PR:L reflects that the actor must be a legitimate principal already using the application, and VC:H/VI:H reflect full impersonation (reading and acting as another identity). No EPSS score, no CISA KEV listing, and no POC were provided in the intelligence set, so there is no public exploit identified at time of analysis and no evidence of active exploitation. The high confidentiality/integrity impact is tempered by genuinely narrow preconditions: the application must use connection-oriented NTLM, Kerberos, or SPNEGO/Negotiate authentication AND share one AHC connection pool across multiple distinct principals. This is a real but conditional priority - not a widely-sprayable internet-facing flaw. Treat it as high priority specifically for multi-tenant or multi-user Java services that front a backend with NTLM/Negotiate via AHC, and as low practical risk for the (common) deployments using Basic/Digest or a single principal, which are unaffected. |
| Exploit ScenarioDerived | A Java application uses a single shared AsyncHttpClient instance with connection-oriented NTLM or Negotiate authentication to call a backend on behalf of many users. A keep-alive socket authenticated as principal B remains pooled; principal A's subsequent request is drawn from the pool onto that socket, and because the second request carries no auth headers of its own, the backend executes A's request as B - exposing B's data or performing actions under B's identity. No public exploit identified at time of analysis; exploitation is opportunistic and timing-dependent given AC:H/AT:P. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Connection-pool reuse in the AsyncHttpClient (AHC) Java library, versions prior to 3.0.13 and 2.16.1, lets an authenticated principal inherit an HTTP/1.1 socket that was authenticated by a different principal under NTLM, Kerberos, or SPNEGO/Negotiate, causing the backend to execute the second request as the first identity - a full read/act-as impersonation (VC:H/VI:H). The flaw is that the connection-pool partition key omits the authenticated principal for connection-oriented authentication schemes, while Basic and Digest, which authenticate every request, are not affected. Exploitation requires an authenticated user (PR:L) on a deployment that shares one client/pool across multiple identities, and it is timing-dependent (AC:H, AT:P) because a suitably authenticated pooled socket must exist and be handed to the mismatched request; no public exploit code was identified at time of analysis and there is no KEV entry, though EPSS data was not provided. The vendor-released patch is AsyncHttpClient 3.0.13 (3.x line) or 2.16.1 (2.x line).
RemediationAI
Vendor-released patch: upgrade to AsyncHttpClient 3.0.13 or 2.16.1 - these releases are available at https://github.com/AsyncHttpClient/async-http-client/releases/tag/async-http-client-project-3.0.13 and https://github.com/AsyncHttpClient/async-http-client/releases/tag/async-http-client-project-2.16.1, with the fix commits at https://github.com/AsyncHttpClient/async-http-client/commit/73813babf51231ee79f7da4f07b777f19f48d34d and https://github.com/AsyncHttpClient/async-http-client/commit/83e552e64cabab2119addb6b47f7c6482997c94e, and the advisory at https://github.com/AsyncHttpClient/async-http-client/security/advisories/GHSA-vvp4-63h8-v5pm. If an immediate upgrade is not possible, the most effective compensating control is to stop sharing one client/connection pool across principals: instantiate a separate AsyncHttpClient (and therefore a separate pool) per authenticated identity, which preserves pooling within each identity at the cost of more sockets and memory; equivalently, restrict NTLM/Kerberos/Negotiate backends to a single principal until patched. A broader but more costly option is to disable HTTP/1.1 keep-alive or connection pooling for realms using NTLM, KERBEROS, or SPNEGO (for example by setting the relevant keep-alive option to false on those clients), which prevents socket reuse entirely and therefore removes the impersonation path but adds connection-setup latency and handshake overhead on every request; because NTLM/Negotiate handshakes are expensive, expect a measurable throughput reduction. Switching the affected backends to Basic or Digest authentication also removes the exposure but requires a server-side change and may have its own credential-handling trade-offs. Note that because the second request carries no authentication headers of its own, the impersonation is not visible on the wire, so ordinary request logging is unlikely to reveal exploitation - audit which principals share a pool instead.
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 is a Java/Netty-based HTTP client that maintains keep-alive connection pools keyed by destination (URI, virtual host, proxy) via ChannelManager and its channel pool partition key. For connection-oriented authentication schemes - NTLM, Kerberos, and SPNEGO/Negotiate - the server performs a handshake once and thereafter treats every request arriving on that socket as coming from the identity that authenticated it, with no per-request credentials on the wire. Basic and Digest instead carry credentials on every request, so their pooled sockets are identity-neutral. Because the original partition key described only where a connection goes and not who authenticated it, a socket authenticated by principal A could be offered to a request belonging to principal B, and the server would serve it as A (CWE-346, origin validation error - the pool failed to validate that the connection's authenticated origin matched the requesting principal; the given CPE, cpe:2.3:a:asynchttpclient:async-http-client:*:*:*:*:*:*:*:*, covers all versions before the fix). The upstream fix introduces PrincipalScopedPartitionKey, which wraps the base key with the Realm's AuthScheme and principal when the scheme is NTLM, KERBEROS, or SPNEGO, and applies that scoping consistently at every site that derives or offers a pool key (ChannelManager, AsyncHttpClientHandler, Redirect30xInterceptor and related callbacks). The design deliberately fails safe: if an offer site and a poll site ever disagree about scoping, the poll simply misses and a fresh connection is opened, costing reuse but never correctness.
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
CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Attacker must be an authenticated principal (PR:L) and exploitation depends on a race over a shared pooled socket (AC:H); impersonation yields high confidentiality and integrity impact, no availability effect.
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.13 and 2.16.1, the HTTP/1.1 connection-pool key excludes the authenticated principal for connection-oriented NTLM and Negotiate authentication. A pooled socket authenticated for one request can be reused by a request carrying another principal, and the server executes that later request as the first identity. Basic and Digest are not affected because they authenticate each request. This issue is fixed in versions 3.0.13 and 2.16.1.
Articles & Coverage 1
Technical POC Analysis
Advisory: GHSA-vvp4-63h8-v5pm.
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 Java library (versions prior to 3.0.13 and 2.16.1) has a high-severity flaw that allows an authenticated user to impersonate another user's identity when a shared connection pool is used with NTLM, Kerberos, or SPNEGO/Negotiate authentication. This can lead to unauthorized data access and actions on backend services, affecting confidentiality and integrity. No public exploit identified at time of analysis, but leadership should prioritize remediation because affected applications may enable lateral movement and privilege escalation.
Apply vendor patch.
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-94640
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB