Skip to main content

AsyncHttpClient EUVDEUVD-2026-94636

| CVE-2026-107231 HIGH
Cleartext Transmission of Sensitive Information (CWE-319)
2026-10-07 GitHub_M GHSA-rqf5-2wxv-rjf4
8.7
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Attacker controls origin/proxy or MITMs response
  2. Delivery
    Client sends authenticated request
  3. Exploit
    Return Digest challenge with empty nonce
  4. Execution
    Client downgrades to Basic auth
  5. Persist
    Credentials resent Base64-encoded
  6. Impact
    Attacker decodes cleartext username/password

Vulnerability Assessment

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

Requires (1) the application to use AsyncHttpClient prior to 3.0.13 (3.x) or 2.16.1 (2.x) with HTTP credentials configured via Realm.Builder, and (2) the client to send an authenticated request to an origin server or proxy that the attacker controls, has compromised, or can tamper with in transit. The attacker must return a WWW-Authenticate or Proxy-Authenticate header labeled 'Digest' while omitting or emptying the nonce parameter, which triggers the downgrade to Basic. Limiting factors: no effect on applications that do not configure credentials; the attacker must be able to supply or modify the authentication challenge (malicious/compromised endpoint or an active network MITM position), so it is not exploitable against arbitrary clients without that server/proxy control.

Impact

This is a credential-disclosure flaw (CWE-319) in the AsyncHttpClient Java library where a Digest WWW-Authenticate/Proxy-Authenticate challenge with an omitted or empty nonce is silently downgraded to Basic, causing the client to resend the configured username and password using reversible Base64 encoding. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H) scores 8.7 (High) and is internally consistent with the mechanism: confidentiality-only impact (VC:H, VI:N, VA:N), no attacker privileges, and no user interaction. However, the CVSS 'network, no-privileges' framing understates a real precondition - exploitation requires the victim application to (a) be configured with credentials in Realm.Builder and (b) direct an authenticated request to an origin or proxy the attacker controls or can tamper with in transit. This is effectively a malicious-server / MITM capability rather than a drive-by remote exploit, so the practical attacker position is more demanding than PR:N alone suggests. No EPSS score, CISA KEV listing, or POC was provided in the input; per precision rules, there is no public exploit identified at time of analysis. The source-code diff and fixed-release tags confirm the root cause and remediation, so this is a legitimate, well-substantiated issue to patch, but absent active-exploitation signals it should be prioritized as a dependency hygiene / supply-chain credential-hardening fix rather than an emergency.

Exploit ScenarioDerived

A Java application built on AsyncHttpClient is configured with HTTP credentials and makes an authenticated request to an endpoint (or through a proxy) that an attacker controls or can intercept. The attacker returns a challenge labeled 'Digest' but with no usable nonce; the client downgrades to Basic and transmits the username and password Base64-encoded, which the attacker trivially decodes to cleartext. No public exploit code was identified in the provided data, but the technique is simple to reproduce for anyone controlling the response headers.

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

Credential disclosure in the AsyncHttpClient (AHC) Java library allows a malicious or compromised origin server or proxy to capture plaintext-recoverable usernames and passwords from applications that configure HTTP credentials via Realm.Builder. When the attacker returns a WWW-Authenticate or Proxy-Authenticate challenge labeled 'Digest' but with the nonce parameter omitted or empty, versions prior to 3.0.13 (3.x) and 2.16.1 (2.x) silently fall back to Basic authentication and resend the credentials in reversible Base64, defeating the entire purpose of Digest. Exploitation is unauthenticated from the network (CVSS v4.0 8.7, AV:N/PR:N, independent assessment CVSS v3.1 C:H/I:N/A:N), but requires the attacker to control or tamper with the authentication challenge, so it is not exploitable against arbitrary endpoints; no public exploit code or CISA KEV entry was identified at time of analysis.

RemediationAI

Upgrade to the vendor-released fixed versions: AsyncHttpClient 3.0.13 for the 3.x line or 2.16.1 for the 2.x line, as documented in the GitHub Security Advisory GHSA-rqf5-2wxv-rjf4 and the corresponding release tags. The fix is delivered by upstream commits 8376866aa9b5a7653ad19db9d472692f875caa83 and c8d639bf6ac341d377d610a93570bcd15565f1a6; deployments pinned to an untagged branch should cherry-pick the challengedScheme() logic in Realm.Builder, which keeps an announced Digest challenge as Digest even when no nonce parses, producing no Authorization header and a failed request rather than a cleartext Basic leak. Where upgrading is not immediately possible, the practical compensating controls are to stop configuring credentials via Realm.Builder for requests to origins or proxies that are not fully trusted, since the flaw only triggers when the client answers an attacker-influenced Digest challenge; enforce strict TLS server certificate validation (and certificate pinning where operationally feasible) to deny an active network man-in-the-middle the ability to inject the malicious challenge, accepting the added certificate-rotation maintenance burden; and, for proxy deployments, restrict the client to a known proxy endpoint so an attacker cannot substitute a Proxy-Authenticate response. Note that these mitigations reduce exposure but do not remove the faulty downgrade behavior itself, so patching remains the only complete fix; applications that never configure HTTP credentials are not affected and need no action.

Affected VersionsENISA

async-http-client 2.0.0, < 2.16.1
async-http-client 3.0.0.Beta1, < 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_beta1 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

The flaw lives in the HTTP authentication challenge parsing logic of org.asynchttpclient.Realm.Builder, specifically parseWWWAuthenticateHeader and parseProxyAuthenticateHeader. Both methods previously selected the authentication scheme with the expression isNonEmpty(nonce) ? AuthScheme.DIGEST : AuthScheme.BASIC, meaning the scheme was inferred from whether the parser extracted a usable nonce rather than from the scheme token the server actually declared. An attacker who labels a challenge 'Digest' while omitting or emptying the nonce therefore causes the client to classify it as Basic, and because Basic authentication transmits Base64-encoded credentials that are trivially reversible, the configured username and password are disclosed over the wire. This is CWE-319 (Cleartext Transmission of Sensitive Information): Digest exists precisely to avoid putting the password on the wire by using a challenge-response nonce, and the downgrade hands over exactly what the honest Digest path withholds. The fix introduces a challengedScheme() helper that keeps the announced scheme when the header line begins with 'Digest' regardless of nonce presence, so an unreadable Digest challenge yields no Authorization header at all and the request simply fails instead of leaking. The same commit hardens quoted-string parsing (escape handling and endOfQuotedString bounds checks, adapted from Apache HttpComponents Core) so that realms containing unescaped backslashes such as DOMAIN\Users are not corrupted. Both the origin and the proxy challenge parsers were affected, and the patch adds regression tests covering no-nonce Digest, proxy Digest, and a genuine Basic challenge that must remain Basic. The affected component is Java library org.asynchttpclient:async-http-client, tracked in CPE as cpe:2.3:a:asynchttpclient:async-http-client:*:*:*:*:*:*:*:*.

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

Attacker controls the responding origin/proxy so no privileges or user interaction are needed over the network at low complexity; only credential confidentiality is lost, with no integrity or availability impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/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
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
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:06 cve.org
HIGH 8.7

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, Realm.Builder treats a Digest challenge that yields no usable nonce as a Basic challenge. A malicious origin or proxy can label a challenge Digest while omitting or emptying the nonce, causing the client to resend the username and password using reversible Basic authentication. Both origin and proxy challenge parsers are affected. 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
  • 5 maven packages depend on org.asynchttpclient:async-http-client (1 direct, 4 indirect)

Ecosystem-wide dependent count for version 3.0.0.Beta1.

Technical POC Analysis

No runnable PoC is present in the supplied evidence, and no patch diff (hunk-level) is included.

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) contains a credential disclosure vulnerability that allows a malicious or compromised server or proxy to capture usernames and passwords when applications use Digest authentication via Realm.Builder. This flaw could expose sensitive credentials, leading to unauthorized access and potential data breaches. Leadership should prioritize remediation because affected applications may be widespread in enterprise environments, and the vulnerability is rated HIGH severity with an unauthenticated network attack vector.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include discontinuing use of Digest authentication via Realm.Builder until patched, or implementing strict validation of authentication challenges to prevent fallback to Basic authentication.

Threat Intelligence Overview

EPSS Score
0.2%
Top 87% exploitable
Prevalence
Medium
popular Java HTTP client library, common as transitive dependency but not core infrastructure
Threat Intel
1
1 sources
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
Yes
Human Impact
High
Technical Impact
Total

Priority Score

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