CVE-2026-71890
CVE-2026-71890 — MLS external commit can remove an arbitrary group member
In Bouncy Castle for Java before 1.86, validation of an MLS (RFC 9420) external commit's proposal list, org.bouncycastle.mls.protocol.Group.validateExternalCachedProposals, counted the proposals by type and bounded the removed leaf index but never established that the removed leaf had anything to do with the joiner. RFC 9420 sec. 12.2 permits at most one Remove proposal in an external commit, with which the joiner removes an old version of themselves, and requires that where one is present the LeafNode in the commit's path field meet the criteria it would have to meet in an Update for the removed leaf, in particular that its credential present identifiers acceptable for the removed participant. The ordinary proposal-list validator's self-remove rule is deliberately not applied on this path, because a resync commit legitimately removes a leaf the joiner owns, but nothing was put in its place. Any party holding the group's public GroupInfo, which is precisely what an external joiner is meant to be given, could therefore commit a Remove naming any member's LeafIndex and have every member apply it, evicting that member and taking over their slot in the ratchet tree. The credential check that should have prevented this existed only in the gRPC interop harness and so protected no other caller of the public Group.externalJoin and Group.handle API. An external commit carrying a Remove is now accepted only when the removed leaf's credential is identical to the one in the joiner's own new leaf, on both the sending and the receiving side.
Published Updated Sources: NVD, Legion of the Bouncy Castle Inc. (CNA), GitHub, GitHub Security Advisory, SOCRadar CTI
Triage
Is it exploited, how likely is exploitation, what does it touch, and how severe do the scoring sources call it.
Exploitation
Exploit code
public exploit, none observed
EPSS
0%
ahead of 0% of scored CVEs
CVSS base
8.7
high
Remediation
The vendor's own words where we have them.
Upgrade BC-JAVA to a fixed release. Apply vendor patches per advisory and restrict external exposure of the affected component until patched.
First 24 hours
Ordered from the record's own fields — exposure first, because you cannot patch what you have not found.
- Identify exposed assets running affected vendor/product/version combinations.
- Prioritize based on EPSS, PoC availability, and external exposure.
- Search available logs for exploit probes, errors, authentication anomalies, or suspicious child processes matching the vulnerability class.
Affected scope
Vendor, product and version as the advisories word them.
| Vendor | Product | Versions | Status |
|---|---|---|---|
| Legion of the Bouncy Castle Inc. | BC-JAVA | 1.73 to < 1.86 | Vulnerable |
Attack characteristics
The CVSS vector, decoded. It describes the attack, not your exposure to it.
Scope
X
Attack Complexity
Low
Attack Vector
Network
Privileges Req
None
User Interaction
None
Every base score collected
Sources score independently and disagree; each row says who scored it and under which version.
| Score | Version | Severity | Expl. | Impact | Source |
|---|---|---|---|---|---|
| 8.7 | CVSS 4.0 | high | — | — | Legion of the Bouncy Castle Inc. (CNA) |
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/U:Amber
What this weakness leads to
MITRE's own consequences and mitigations for the weakness class — the authority's wording, not guidance derived from the CVSS vector.
CWE-863 · Incorrect Authorization
- Read Application Data
- Read Files or Directories
- Modify Application Data
- Modify Files or Directories
Mitigation: Divide the software into anonymous, normal, privileged, and administrative areas. Reduce the attack surface by carefully mapping roles with data and functionality. Use role-based access control (RBAC) [REF-229] to enforce the roles at the appropriate boundaries. Note that this approach may not protect against horizontal authorization, i.e., it will not protect a user from attacking others with the same role.
Weakness & attack patterns
- CWE-863Incorrect Authorization
Inferred from the weakness class — not observed against this CVE.
Public exploit
Capability, not use: code existing is a different claim from anyone running it.
Repositories
2
Detection
Read off the CVSS vector and the weakness class. Starting points, not rules we have tested.
- Prioritize edge telemetry for network-reachable BC-JAVA.
- Monitor for scanner or exploit-pattern traffic after 2 public PoC repositories were reported.
Timeline
What happened to this CVE, newest first — with the readings a source repeats on a schedule counted underneath rather than listed.
- 2026
Added · CVSS 3.1 8.7 (AV:N)
Oct 3, 2026 · NVD
Initial · CVE published
Oct 3, 2026 · NVD
Added · GHSA-jc55-7frr-fv5r published (high)
Oct 3, 2026 · GitHub Security Advisory
CVE published by NIST.
Oct 3, 2026 · SOCRadar CTI
References
4 on the record
- github.com/bcgit/bc-java/commit/7e8bb10eb90baddf3f10b8679f627462b9522d24
Exploit, Third Party Advisory, NIST
- github.com/bcgit/bc-java/wiki/CVE%E2%80%902026%E2%80%9071890
Exploit, Third Party Advisory, NIST
- nvd.nist.gov/vuln/detail/CVE-2026-71890
NVD
- github.com/advisories/GHSA-jc55-7frr-fv5r
Exploit, Third Party Advisory
Elsewhere on this site
- Legion of the Bouncy Castle Inc.every CVE for this vendor
- Access Controlsame class
- CWE-863other pages naming this weakness
Not in any source we poll
Listed rather than left blank: an empty field and an unmeasured one look identical on screen, and only one is a reason to look elsewhere.
- No confirmed IOCs, IP addresses, domains, file hashes, or malware artifacts supplied.
- No organization-specific asset inventory, compensating-control status, or patch deployment evidence supplied.
- No exploit packet captures, log samples, or incident case IDs supplied.
Answered from this record1
What should defenders know first?
CVE-2026-71890 is MLS external commit can remove an arbitrary group member, a high vulnerability affecting BC-JAVA from Legion of the Bouncy Castle Inc.. The current evidence does not list it in CISA KEV, and the exploit status is: Active exploitation is not confirmed from current sources for CVE-2026-71890. Public exploit evidence is: 2 public PoC repositories reported; 0 marked weaponized in current dataset. The affected-version evidence is listed in the key facts and affected products tables. Defenders should first verify whether exposed or business-critical assets run those versions, then apply vendor patches or mitigations, restrict reachable attack surface, and preserve logs for detection review. CVSS 8.7 describes technical severity, while EPSS 0% helps estimate near-term exploit likelihood; neither replaces asset context. Unknown fields should remain explicit in tickets, and threat actor, IOC, victimology, or payload claims should not be added unless a cited source supports them. Monitor CISA KEV, vendor advisories, NVD changes, public PoC repositories, and internal telemetry for update triggers.