Skip to main content

Bouncy Castle bc-java CVE-2026-59644

| EUVDEUVD-2026-52030 HIGH
Excessive Iteration (CWE-834)
2026-08-03 bcorg GHSA-xrmp-pcg8-5q9v
8.7
CVSS 4.0 · Vendor: bcorg
View

Attack ChainAIDerived

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

  1. Access
    Gain MLS group membership or inject wire message
  2. Delivery
    Craft MLS payload with generation counter near 2^32
  3. Exploit
    Deliver message to bc-java MLS endpoint
  4. Execution
    GroupKeySet.get() iterates ~4B HKDF steps
  5. Persist
    CPU exhaustion
  6. Impact
    Service 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

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

BC-JAVA 1.73 <1.85

Affected Packages

euvd bc_java fix: 1.85

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

Vendor (bcorg) PRIMARY 8.7 HIGH
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
vuln.today AI 6.5 MEDIUM

Sender participates in authenticated MLS protocol (PR:L); pure CPU exhaustion with no confidentiality or integrity consequence (C:N/I:N/A:H).

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

Primary rating from Vendor (bcorg).

CVSS VectorVendor: bcorg

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

DescriptionCVE.org

In Bouncy Castle for Java before 1.85, MLS hash-ratchet honours arbitrary 32-bit generation counter from sender.

Executive ViewAI

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 82% exploitable
Prevalence
Medium
widely used Java crypto library; MLS module adoption is limited
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub VulDB

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.3%
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
Partial

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

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

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy