Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain MLS group membership or inject wire message
-
DeliveryCraft MLS payload with generation counter near 2^32
-
ExploitDeliver message to bc-java MLS endpoint
-
ExecutionGroupKeySet.get() iterates ~4B HKDF steps
-
PersistCPU exhaustion
-
ImpactService unavailability
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Excessive iteration
|
| Exploitation Conditions | The target application must import and actively use bc-java's mls module artifact (not merely bc-java's core TLS or crypto APIs) and must process MLS group messages from senders outside full trust. Based on the patch comment, the generation counter is read from authenticated wire data, suggesting the attacker must be a valid MLS group member or be able to inject protocol messages processed before authentication completes - the exact pre/post-auth processing order is not confirmed from available data. Exploitation is blocked in all bc-java deployments that do not use the MLS module. The CVSS PR:N (no privileges) rating conflicts with the 'authenticated from the wire' commentary; until the vendor advisory is reviewed in full, authentication requirements should be treated as unconfirmed. Exploitation is not limited to any specific platform or OS. |
| Impact | The CVSS 4.0 vector AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H scores 8.7 and signals a straightforward, remotely triggerable DoS with no complexity or privilege barriers per vendor assessment. There is no EPSS data provided and no CISA KEV listing, so real-world exploitation frequency is unconfirmed. CVSS PR:N conflicts with the patch commit commentary, which states the generation counter 'arrives (authenticated) from the wire,' implying the sender must participate in the MLS group protocol - this suggests at minimum PR:L (group membership) may be required, though pre-authentication processing of the field cannot be ruled out without reviewing the full message parsing path. No public POC has been identified. The tags include 'Information Disclosure' (attributed to SUSE), which conflicts with the CVSS VC:N/VI:N/VA:H vector showing availability-only impact; this discrepancy should be verified against the vendor advisory. Real-world blast radius is bounded by MLS adoption: most bc-java deployments use it for TLS or X.509 and are unaffected; only applications integrating the mls artifact and exposing MLS group processing to external senders face genuine risk. |
| Exploit ScenarioDerived | An attacker who is an authenticated MLS group member - or who can inject a crafted MLS wire message prior to authentication verification - sends a message with the generation counter set to 0xFFFFFFFF (maximum 32-bit value). The receiving bc-java instance's GroupKeySet.get() enters a loop performing HKDF derivations for each of approximately 4.29 billion skipped generations, consuming all available CPU until the process is killed or becomes unresponsive. No public exploit code has been identified, but the attack primitive is directly readable from the patch diff and requires no advanced exploitation technique. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 03, 2026
CPU exhaustion in Bouncy Castle for Java's MLS (Messaging Layer Security) implementation allows a network attacker to trigger unbounded HKDF key-derivation iterations by supplying a crafted 32-bit generation counter in an MLS message. The hash-ratchet in GroupKeySet.get(int generation) advances one HKDF step per skipped generation without any upper bound, so a maximally crafted counter forces up to ~4.29 billion derivation steps on the receiving process. Scored CVSS 4.0 at 8.7 with High availability impact and no authentication prerequisites per vendor scoring; no public exploit code or KEV listing has been identified at time of analysis.
RemediationAI
Upgrade Bouncy Castle for Java to version 1.85 or later, which caps forward ratchet steps at 65,536 (1 << 16) and rejects any generation counter more than that many steps ahead of the current generation. The upstream fix is confirmed at commit https://github.com/bcgit/bc-java/commit/610d8757d855afe197df0de6d831cb75c81e3b9f and the vendor advisory is at https://github.com/bcgit/bc-java/wiki/CVE-2026-59644. If immediate patching is not feasible, applications can implement a compensating control at the message-processing layer by rejecting MLS messages whose generation counter exceeds the expected current generation by a large margin (e.g., more than 65,536) before passing them to the library - this requires the application to track the current MLS group epoch independently, adding implementation complexity. Alternatively, rate-limiting or sandboxing the MLS message processing thread limits CPU exhaustion impact at the cost of reduced message throughput.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Bouncy Castle bc-java (CPE: cpe:2.3:a:legion_of_the_bouncy_castle_inc.:bc-java:*:*:*:*:*:*:*:*) implements RFC 9420 Messaging Layer Security (MLS) in its mls module. MLS uses an HKDF-based hash ratchet to allow asynchronous, out-of-order message delivery: when a receiver skips generations, the library calls HKDF once per skipped generation to advance to the correct key material. The vulnerable method GroupKeySet.get(int generation) in mls/src/main/java/org/bouncycastle/mls/GroupKeySet.java reads the generation counter directly from the wire format and iterates forward without any cap. CWE-834 (Excessive Iteration) precisely describes the root cause: the iteration bound is controlled by untrusted input, not an internal invariant. The fix introduces MAX_FORWARD_RATCHET_STEPS = 1 << 16 (65,536) and throws InvalidParameterException if the requested generation exceeds the current by more than that threshold. HKDF operations are computationally non-trivial, making billions of steps an effective CPU exhaustion primitive.
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:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/U:Amber
Sender participates in authenticated MLS protocol (PR:L); pure CPU exhaustion with no confidentiality or integrity consequence (C:N/I:N/A:H).
Primary rating from Vendor (bcorg).
CVSS VectorVendor: bcorg
DescriptionCVE.org
In Bouncy Castle for Java before 1.85, MLS hash-ratchet honours arbitrary 32-bit generation counter from sender.
Executive ViewAI
Bouncy Castle for Java's messaging library contains a vulnerability (CVE-2026-59644, CVSS 8.7) allowing any remote attacker to cause service outages through resource exhaustion; no public exploit identified at time of analysis. Patch available per vendor advisory. Organizations using this library risk operational disruption if applications process untrusted messages.
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.
Related Vulnerabilities in Bouncy Castle for Java Cryptographic Vulnerabilities
View all 23Oracle 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
Same weakness CWE-834 – Excessive Iteration
View allSame technique Information Disclosure
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise Desktop 15 SP7 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP7 | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP7 | Affected |
| SUSE Linux Enterprise Server 15 SP7 | Affected |
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| openSUSE Leap 16.0 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP4 | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP5 | Affected |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Affected |
| SUSE Manager Proxy 4.3 | Affected |
| SUSE Manager Retail Branch Server 4.3 | Affected |
| SUSE Manager Server 4.3 | Affected |
| SUSE Enterprise Storage 7 | Affected |
| SUSE Enterprise Storage 7.1 | Affected |
| SUSE Linux Enterprise Desktop 15 SP2 | Affected |
| SUSE Linux Enterprise Desktop 15 SP3 | Affected |
| SUSE Linux Enterprise Desktop 15 SP4 | Affected |
| SUSE Linux Enterprise Desktop 15 SP5 | Affected |
| SUSE Linux Enterprise Desktop 15 SP6 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP6 | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP2 | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP3 | Affected |
| SUSE Linux Enterprise Real Time 15 SP2 | Affected |
| SUSE Linux Enterprise Real Time 15 SP3 | Affected |
| SUSE Linux Enterprise Real Time 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP2 | Affected |
| SUSE Linux Enterprise Server 15 SP2-BCL | Affected |
| SUSE Linux Enterprise Server 15 SP2-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP3 | Affected |
| SUSE Linux Enterprise Server 15 SP3-BCL | Affected |
| SUSE Linux Enterprise Server 15 SP3-LTSS | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP2 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP3 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Affected |
| SUSE Manager Proxy 4.1 | Affected |
| SUSE Manager Proxy 4.2 | Affected |
| SUSE Manager Retail Branch Server 4.1 | Affected |
| SUSE Manager Retail Branch Server 4.2 | Affected |
| SUSE Manager Server 4.1 | Affected |
| SUSE Manager Server 4.2 | Affected |
| openSUSE Leap 15.3 | Affected |
| openSUSE Leap 15.4 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
EUVD-2026-52030
GHSA-xrmp-pcg8-5q9v
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB