Skip to main content

AsyncHttpClient CVE-2026-107282

| EUVDEUVD-2026-94642 CRITICAL
Cleartext Transmission of Sensitive Information (CWE-319)
2026-10-07 GitHub_M GHSA-jmqq-x5g9-9p2w
9.4
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Identify app using AHC with replaying ResponseFilter
  2. Delivery
    Induce request failure forcing failover
  3. Exploit
    Replay retargets a different origin
  4. Execution
    Stale proxy/target context reused
  5. Impact
    Credentials and plaintext sent to replay host

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 application to use AsyncHttpClient prior to 3.0.13 or 2.16.1 configured with a ResponseFilter that triggers failover or retry replay of a request onto a DIFFERENT base origin (different host/scheme/port) or performs an HTTPS-to-HTTP scheme downgrade - the documented ResponseFilter failover/retry path is the exact trigger. The leak occurs because the replay updates the current request but leaves the target request, connection-pool partition key, CONNECT/proxy context, realm, and TLS setup bound to the original origin. Limiting factors: this is NOT a default configuration (stock AHC usage without a cross-host replaying filter is unaffected), AC:H and AT:P indicate a specific sequence/timing condition must be met, and there is no attacker-facing endpoint to exploit directly - the impact is credential/plaintext disclosure to whichever host the application itself replays to.

Impact

Signals here point in genuinely different directions, so the raw score should not drive prioritization. The vendor-supplied CVSS 4.0 vector (9.4) uses AV:N/PR:N/UI:N, which reads like trivial remote unauthenticated compromise, but AC:H and AT:P explicitly encode that success depends on a specific, non-default condition and a timing/sequence requirement - namely an application configured with a ResponseFilter whose failover/retry logic replays a request onto a different origin. No EPSS score, KEV listing, or public POC was provided; their absence is not disproof but means there is no evidence of active or at-scale exploitation. The issue is best understood as a client-side credential/data-leak (CWE-319): during cross-host replay, AsyncHttpClient leaves connection-pool selection, CONNECT handling, realm selection, and TLS setup pointing at the original origin, so the original host's path, Host header, Authorization credentials, or plaintext payload can be emitted to the replay destination. The high VC/VI and subsequent-system SC/SI reflect credential disclosure to an unintended host and request mis-delivery, not remote code execution. Net assessment: a real and serious data-exposure bug for the subset of deployments using replaying ResponseFilters, but for the majority of AHC users who do not configure such failover, real-world exploitable risk is substantially lower than 9.4 suggests. The beneficiary of the leak is largely the replay destination (or a network position observing the plaintext/credentials), not an arbitrary internet attacker against a default install.

Exploit ScenarioDerived

A Java application uses AsyncHttpClient with a custom ResponseFilter that fails over or retries a failed request against a secondary host. When that replay targets a different origin (or downgrades HTTPS to HTTP), the library re-points the current request but not the target/proxy context, so the first host's Authorization credentials, Host header, or plaintext body are transmitted to the second host, disclosing secrets to an unintended destination. No public exploit identified at time of analysis; the fix commit ships a CrossHostReplayTest demonstrating the condition, but that is a regression test rather than a weaponized exploit.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
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

Cross-host request replay in AsyncHttpClient (AHC) before 3.0.13 and 2.16.1 can disclose the original origin's request path, Host header, Authorization credentials, or even a plaintext request to a completely different destination when an application's ResponseFilter fails over or retries a request onto a different base origin (host, scheme, or port) or downgrades HTTPS to HTTP. The assessed vector is unauthenticated from the network perspective (PR:N, AV:N), but exploitation hinges on a concrete application-side prerequisite: a ResponseFilter (or equivalent retry/failover code path) that replays requests across origins - default AHC usage with same-host retries is unaffected, and AC:H/AT:P reflect the specific sequencing that must occur. No public exploit code and no confirmed active exploitation were identified at time of analysis, and because the impact depends on configuration rather than an attacker-reachable endpoint, the CVSS 4.0 score of 9.4 and the independent CVSS 3.1 assessment point in different directions; prioritization should be driven by whether a cross-host replaying filter is deployed.

RemediationAI

Vendor-released patch: upgrade to AsyncHttpClient 3.0.13 (3.x line) or 2.16.1 (2.x line); both fix releases and their Maven artifacts are linked from the GitHub security advisory GHSA-jmqq-x5g9-9p2w and from the release tags async-http-client-project-3.0.13 and async-http-client-project-2.16.1, and the underlying fixes are commit 15b254514a411623e5f1d8c99ea79c0f82f8a466 (NettyResponseFuture.setProxyServer / partition-key recomputation) and commit bbc31aed3b044f9f7a126cf689a8c8d7ad2ae1cb (NettyRequestSender replay path). Where an immediate upgrade is not possible, the highest-value compensating control is to remove or restrict ResponseFilters that replay onto a different base origin or that downgrade the scheme - rewrite failover filters so retries stay on the same host, scheme, and port, or implement cross-host failover by constructing a brand-new request and a fresh client instead of replaying the existing future, accepting the extra connection-setup cost and loss of connection reuse as the trade-off. Additional hardening: strip Authorization, Proxy-Authorization, Cookie, and other per-origin headers from any request that is re-issued to a different host, and refuse to follow failover paths that would send HTTPS requests over plain HTTP, which directly blocks the cleartext-disclosure variant; configure the client with a per-host credential/Realm setup so credentials cannot be reused across origins, noting that this reduces only the blast radius, not the underlying partition-key bug. Dependency scanning and SBOM checks should flag transitive versions below 3.0.13 and 2.16.1 for upgrade, and no independent patched version should be assumed for forks or shaded copies until they are individually verified.

Affected VersionsENISA

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

Affected Packages

maven org.asynchttpclient:async-http-client fix: 2.16.1, 3.0.13
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 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

AsyncHttpClient is a widely embedded Java HTTP/1.1 and HTTP/2 client library built on Netty, commonly pulled in transitively by frameworks and services rather than exposed as an application itself. The defect is a state-management failure inside NettyResponseFuture: when a ResponseFilter triggers replayRequest, the code updated the current request but left the future's target request, memoized connection-pool basePartitionKeyCache, proxy context (ProxyServer), realms (server and proxy authentication realms), and TLS setup bound to the original origin. Because the partition key is derived from host/scheme/port plus the proxy, a stale key could file a socket under a route the future no longer takes - for example filing a proxied connection under the direct key for the new host, so the next direct request to that host draws a socket that actually traverses the proxy, sending its credentials through it. The same staleness affects CONNECT tunnel handling (the request ConnectSuccessInterceptor writes into a tunnel), NettyConnectListener's decision on whether to install an SslHandler, and realm selection, which is why a downgraded or cross-origin replay can emit the old host's path, Host header, Authorization header, or cleartext body to the replay destination. CWE-319 (cleartext transmission of sensitive information) captures the most severe outcome, an HTTPS-to-HTTP scheme downgrade in which credentials and request content leave unencrypted, while the broader class is improper synchronization/refresh of security-relevant request state. The upstream fix makes proxyServer non-final and adds setProxyServer(), which recomputes the partition key, and NettyRequestSender now samples the initial partition key before retargeting and calls setProxyServer() before setTargetRequest() so both inputs to the key move together; the same commit set also drains the channel under the correct key and clears stale realms on base change or downgrade.

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 9.4 CRITICAL
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N
vuln.today AI 8.7 HIGH

AC:H because exploitation needs a non-default replaying ResponseFilter and a cross-origin or scheme-downgrade replay; PR:N as the flaw needs no attacker authentication; S:C since credentials/requests leak to a separate host; A:N as availability is unaffected.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Oct 07, 2026 - 23:02 EUVD
CVE Published
Oct 07, 2026 - 21:21 cve.org
CRITICAL 9.4

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, cross-host request replay updates the current request but leaves the target request and related proxy context pointing at the original origin. Connection-pool selection, CONNECT handling, realm selection, and TLS setup can consequently send the original host's path, Host header, Authorization credentials, or plaintext request to the replay destination. Documented ResponseFilter failover and retry paths can trigger the replay. This issue is fixed in versions 3.0.13 and 2.16.1.

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

Bug class: CWE-319 Cleartext Transmission of Sensitive Information, with the advisory additionally listing CWE-441 Unintended Proxy/Intermediary 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

Why It Matters

AsyncHttpClient, a widely embedded Java HTTP client library used across enterprise applications and services, can disclose Authorization credentials, Host headers, request paths, and even full plaintext requests to unintended external destinations when application retry or failover logic replays a request onto a different origin or downgrades HTTPS to HTTP. Because the library is a shared dependency, many internal services may be affected at once, creating a credential-theft and data-exposure path that could enable downstream account takeover and lateral movement. Exposure is configuration-dependent rather than driven by an attacker-reachable endpoint: no public exploit code and no confirmed active exploitation were identified at time of analysis, and the network vector is unauthenticated (PR:N) but requires a specific application-side cross-origin replay sequence (AC:H/AT:P).

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: disable cross-origin retry/failover in AsyncHttpClient ResponseFilter and equivalent retry code paths; pin all retries to the original host, scheme, and port; block HTTPS-to-HTTP downgrades; enforce TLS-only egress with destination allowlisting; avoid transmitting long-lived credentials in request headers and rotate any Authorization tokens that may have been replayed across origins; shorten token lifetimes; and monitor egress logs for requests reaching unexpected destinations or traveling in plaintext.

Threat Intelligence Overview

EPSS Score
0.2%
Top 92% exploitable
Prevalence
Medium
popular but not universal Java HTTP client library
Threat Intel
1
1 sources
Social Media
2
Sightings
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor CIRCL 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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
Yes
Human Impact
High
Technical Impact
Total

Priority Score

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