CVE-2026-59644: Bouncy Castle for Java MLS hash-ratchet generation counter validation bypass

CVE-2026-59644 · Severity: high · CVSS 7.5 · Published 2026-08-03

Bouncy Castle for Java is a widely-used cryptographic library that implements secure messaging protocols. A flaw in the MLS (Messaging Layer Security) hash-ratchet component allows an attacker to arbitrarily manipulate a 32-bit generation counter, potentially compromising the forward secrecy guarantees of encrypted message streams. This could allow an attacker to replay or forge messages in applications relying on MLS-based encryption.

Technologies: Bouncy Castle for Java. Vendors: Bouncy Castle.

Quick answers

Is CVE-2026-59644 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-59644 being exploited in the wild.
How severe is CVE-2026-59644?
High severity, with a CVSS score of 7.5, published 3 August 2026.
Which products and versions are affected?
Bouncy Castle for Java before 1.85.
Is there a fix for CVE-2026-59644?
A patch was published on 2026-08-03: Fixed in version 1.85 Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-59644 attacked?
It is attacked over the network.
Am I affected by CVE-2026-59644?
Check whether you run Bouncy Castle for Java at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

Technical details

The vulnerability exists in the MLS message-key hash-ratchet implementation in Bouncy Castle for Java before version 1.85. The issue stems from insufficient validation of the generation counter supplied by senders; the ratchet accepts arbitrary 32-bit counter values without proper bounds checking. An attacker with network access to intercept or influence MLS protocol messages could exploit this to bypass forward secrecy properties. The fix, committed to the bc-java repository, bounds the forward gap in the hash-ratchet by implementing proper counter validation. Patches are available in version 1.85 and later.

Affected products

  • Bouncy Castle Bouncy Castle for Java before 1.85

Timeline

  • 2026-08-03: disclosed
  • 2026-08-03: patched: Fixed in version 1.85

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.