Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObserve HTTP Digest auth exchanges
-
ExploitInfer ThreadLocalRandom generator state
-
ExecutionPredict client cnonce values
-
ImpactPrecompute/chosen-plaintext against Digest auth
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Cryptographic PRNG selection
|
| Exploitation Conditions | Exploitation requires that the Java application use AsyncHttpClient's HTTP Digest authentication via Realm.Builder (affected versions prior to 3.0.12 and 2.16.1), where the client nonce (cnonce) is generated with ThreadLocalRandom. The attacker must be able to observe the Digest authentication exchanges and infer the non-cryptographic generator's state to predict cnonce values. Limiting factors: applications not using Digest auth are unaffected; the attack is statistical and high-complexity (AC:H) rather than a direct exploit, requires passive observation of multiple exchanges, and only reduces the strength of the authentication exchange (partial confidentiality) rather than granting direct access. |
| Impact | This is a genuinely low-priority issue despite being a real cryptographic weakness. The CVSS base score of 3.7 (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N) is consistent with the description: exploitation requires high attack complexity (AC:H) because an attacker must observe Digest exchanges and infer the state of a non-cryptographic PRNG (ThreadLocalRandom), and the impact is limited to partial confidentiality (C:L) with no integrity or availability impact. CWE-338 (use of a cryptographically weak PRNG) matches the root cause confirmed in the fix commit, which swaps ThreadLocalRandom for SecureRandom. No EPSS score was provided in the input, so exploitation probability cannot be quantified. There is no CISA KEV listing and no public exploit code identified - the GitHub links are the vendor advisory, fix commits, and release tags, not a POC. The AV:N vector reflects that the HTTP exchange is network-observable, but practical exploitation is heavily constrained: it only matters for applications actually using HTTP Digest authentication (itself uncommon), and the attack is theoretical/statistical rather than a direct code path. Net assessment: a legitimate defense-in-depth fix, but low real-world risk and not an urgent patching priority relative to higher-severity issues. |
| Exploit ScenarioDerived | An attacker positioned to observe an application's outbound HTTP Digest authentication exchanges collects multiple client nonce (cnonce) values and uses knowledge of ThreadLocalRandom's predictable internal state to narrow or predict future cnonce values. With predictable cnonces, the attacker can mount chosen-plaintext or credential-precomputation attacks against the Digest exchange, weakening the authentication's resistance. No public exploit code was identified at time of analysis, and the attack requires high complexity to infer the generator state. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
HTTP Digest authentication in AsyncHttpClient (Java) prior to 3.0.12 and 2.16.1 derives the client nonce (cnonce) from ThreadLocalRandom rather than a cryptographically secure source, weakening the Digest exchange against chosen-plaintext and credential-precomputation attacks for an observer who can infer generator state. The issue is rated CVSS 3.7 (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N), so per the assessed vector no authentication is required from a remote attacker, but exploitation is statistical and high-complexity rather than a direct exploit. Only applications that use AsyncHttpClient's Digest auth via Realm.Builder are affected; no public exploit identified at time of analysis and no confirmed active exploitation (CISA KEV is not indicated).
RemediationAI
Vendor-released patch: upgrade to AsyncHttpClient 3.0.12 (3.x line) or 2.16.1 (2.x line), which replace ThreadLocalRandom-based cnonce generation with a ThreadLocal<SecureRandom> per RFC 7616 section 3.3; see advisory GHSA-mfj3-87qq-382v and the release tags. If upgrading cannot be done immediately, avoid Digest authentication in Realm.Builder and use an alternative scheme such as Bearer tokens or Basic over TLS - the trade-off is that Basic sends credentials on each request (mitigated only by TLS) and Digest's password-not-on-wire property is lost, while disabling Digest auth outright removes exposure but may break interoperability with Digest-only servers. There is no viable client-side configuration workaround that fixes the weak cnonce without the patch, and because only passive observation of multiple Digest exchanges combined with generator-state inference makes this high-complexity and low-impact, remediation can be handled in routine patch cycles rather than as an emergency.
Affected VersionsENISA
Affected Packages
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
HTTP Digest authentication (RFC 7616, formerly RFC 2617) depends on an unpredictable client nonce (cnonce) to resist chosen-plaintext and credential-precomputation attacks; if the cnonce is predictable, an observer of the authentication exchanges can reduce the protection the Digest exchange provides. The root cause is CWE-338 (Use of Cryptographically Weak Pseudo-Random Number Generator): AsyncHttpClient's Realm.Builder.newCnonce() previously called ThreadLocalRandom.current().nextBytes(), then hashed the bytes with a MessageDigest and trimmed the result to 8 bytes (16 hex chars). The fix in commits dca2d90db87f0144ea893a6858dca13c426d06b6 and e1f5fc88fe211d3f64032c33b91093ba3d5e793d replaces this with a ThreadLocal<SecureRandom> and uses nextBytes directly, consistent with RFC 7616 section 3.3 and with the secure nonces already used for NTLM and SCRAM in the same codebase. The CPE cpe:2.3:a:asynchttpclient:async-http-client:*:*:*:*:*:*:*:* identifies the library broadly; the advisory defines the exact boundaries as 2.x before 2.16.1 and 3.x before 3.0.12.
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
AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
Network-observable Digest exchange (AV:N) but AC:H because inferring ThreadLocalRandom state is hard; PR:N/UI:N as no auth or interaction needed; only partial confidentiality (C:L), no I/A impact.
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.12 and 2.16.1, Realm.Builder generates the HTTP Digest client nonce with ThreadLocalRandom rather than a cryptographically secure random source. Digest relies on an unpredictable cnonce to resist chosen-plaintext and credential precomputation attacks, so an observer able to infer generator state can reduce the protection of the authentication exchange. This issue is fixed in versions 3.0.12 and 2.16.1.
Blast Radius
ecosystem impact- 24 maven packages depend on org.asynchttpclient:async-http-client (15 direct, 9 indirect)
Ecosystem-wide dependent count for version 3.0.0.
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-94643
GHSA-mfj3-87qq-382v
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB