Skip to main content

AsyncHttpClient EUVDEUVD-2026-94640

| CVE-2026-107281 HIGH
Origin Validation Error (CWE-346)
2026-10-07 GitHub_M
7.6
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as a principal to shared AHC client
  2. Exploit
    Draw pooled socket authenticated as another principal
  3. Execution
    Backend serves request as prior identity
  4. Impact
    Access 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.

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

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

Affected Packages

euvd async_http_client_2_0_0 fix: 2.16.1
euvd async_http_client_3_0_0 fix: 3.0.13

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

Vendor (GitHub_M) PRIMARY 7.6 HIGH
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
vuln.today AI 6.8 MEDIUM

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.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

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

DescriptionCVE.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.

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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Medium
popular Java async HTTP client library, but NTLM/Negotiate usage is niche
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

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

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