# CVE-2026-71890: Bouncy Castle MLS external commit validation bypass

Source: https://junglewise.ai/threats/cve-2026-71890-in-bouncy-castle-for-java-before-1-86-validation-of-an-mls-rfc  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-10-03. Updated: 2026-10-05  
License: CC BY 4.0 with a link back

CVE-2026-71890 · Severity: info · Published 2026-10-03

Bouncy Castle is a cryptography library used to secure communications in Java applications. A flaw in how it validates external commits to MLS (Messaging Layer Security) groups allows an attacker with access to public group information to remove any member from the group and take over their position, effectively hijacking the group's security structure. This could lead to unauthorized eviction of group members and compromise of encrypted communications.

Technologies: [Bouncy Castle for Java](https://junglewise.ai/threats/technologies/bouncy-castle-for-java). Vendors: [Bouncy Castle](https://junglewise.ai/threats/vendors/bouncy-castle).

## Quick answers

**Is CVE-2026-71890 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-71890 being exploited in the wild.

**How severe is CVE-2026-71890?** Informational severity, published 3 October 2026.

**Which products and versions are affected?** Bouncy Castle for Java before 1.86.

**Is there a fix for CVE-2026-71890?** Yes: fixed in 1.86. Until then: Upgrade to Bouncy Castle 1.86 or later. Applications using external join with MLS should review group membership management and ensure only authorized credential holders can remove members. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-71890 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-71890?** 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.

## How to fix

- Fixed in 1.86

Upgrade to Bouncy Castle 1.86 or later. Applications using external join with MLS should review group membership management and ensure only authorized credential holders can remove members.

## Technical details

The vulnerability exists in org.bouncycastle.mls.protocol.Group.validateExternalCachedProposals, which validates Remove proposals in MLS external commits. The validation failed to verify that the removed leaf's credential matched the joiner's credential before applying the removal, only checking that the removed leaf index existed. This allowed any external joiner to commit a Remove proposal targeting any group member, bypassing RFC 9420 section 12.2 requirements. The fix adds credential verification on both sending and receiving sides to ensure the removed leaf matches the joiner's own new leaf credential.

## Affected products

- Bouncy Castle Bouncy Castle for Java before 1.86

## Timeline

- 2026-10-03: disclosed

## Related threats

- [Bouncy Castle for Java truncated OpenPGP message acceptance](https://junglewise.ai/threats/cve-2026-85515-in-bouncy-castle-for-java-before-1-86-a-truncated-openpgp)
- [Bouncy Castle for Java BLS signature phantom signer](https://junglewise.ai/threats/cve-2026-71891-in-bouncy-castle-for-java-before-1-86-bls12-381basicscheme)
- [Bouncy Castle for Java X.509 name constraints bypass in PKIXCertPathReviewer](https://junglewise.ai/threats/cve-2026-71889-in-bouncy-castle-for-java-before-1-86-neither-copy-of)
- [Bouncy Castle for Java OpenPGP signature misattribution in subkey binding validation](https://junglewise.ai/threats/cve-2026-71887-in-bouncy-castle-for-java-before-1-86-the-high-level-openpgp-api)
- [Bouncy Castle for Java OpenPGP certification validation bypass](https://junglewise.ai/threats/cve-2026-71886-in-bouncy-castle-for-java-before-1-86-the-high-level-openpgp)
