Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach MLS group admitting external commits
-
DeliveryPresent victim's X.509 cert with attacker key
-
ExploitPass LeafNode/KeyPackage verify as victim
-
ExecutionJoin and evict victim via commit
-
ImpactDerive epoch, decrypt and spoof victim messages
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V12 - Secure Communication Certificate validation
|
| Exploitation Conditions | Exploitation requires an MLS (RFC 9420) deployment that (1) uses X.509 credentials - deployments using only basic credentials are explicitly unaffected - and (2) admits external commits WITHOUT an independent credential-admission check that binds the presenting party to the credential. Under those conditions an unauthenticated remote attacker can present another party's certificate while signing with an unrelated key and be accepted as that party via KeyPackage.verify() and the Group leaf-validation path. Limiting factors that reduce real-world exposure: the MLS/X.509 code path must be in use (a niche, recently standardized feature), the application must not perform its own credential-admission/trust-anchor validation (certificate-chain and identity validation to a trust anchor remain the application's responsibility per RFC 9420 sec. 5.3.1, and a correct admission check blocks the attack), and the product must be on bc-java before 1.86. |
| Impact | This is a genuine high-priority flaw for the narrow population that uses it, but its real-world blast radius is gated by configuration. The CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N, VC:H/VI:H/VA:L, score 9.2 Critical) describes a remote, unauthenticated identity-impersonation defect: an attacker can be admitted under a victim's X.509 identity, decrypt the current and subsequent epoch's group messages (VC:H), send messages accepted as the victim and evict them (VI:H), with a limited availability effect from the eviction/resync (VA:L). The AT:P (Attack Requirements: Present) metric is the key honest signal - exploitation is NOT universal; it depends on a deployment that (a) uses X.509 credentials rather than basic credentials and (b) admits external commits without an independent credential-admission check, which the vector correctly reflects rather than inflating to AT:N. No EPSS score was provided, so exploitation probability cannot be quantified. The vulnerability is NOT in CISA KEV and no public exploit code was supplied, so despite the Critical rating there is no evidence of active or opportunistic exploitation - consistent with the fact that the affected code is a newly adopted MLS/RFC 9420 implementation with a small deployment base. CWE-295 (Improper Certificate Validation) matches the root cause precisely: the credential's certificate chain was stored but never checked against signature_key. Net: a real, well-characterized cryptographic authentication bypass that patch-eligible users should fix promptly, but not a widespread, mass-exploitable emergency. |
| Exploit ScenarioDerived | An MLS group using X.509 credentials permits external commits without an independent check that the committing party owns the credential it presents. A remote, unauthenticated attacker crafts a LeafNode/KeyPackage carrying a victim's X.509 certificate as its credential while signing with their own unrelated key; because LeafNode.verify() only checked the self-declared signature_key, the leaf is accepted under the victim's identity. The attacker then evicts the victim, derives the current epoch, and both decrypts subsequent group messages and sends messages accepted as the victim. No public exploit identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 03, 2026
Bouncy Castle for Java's Messaging Layer Security (MLS, RFC 9420) implementation before 1.86 fails to bind an X.509 credential to a LeafNode's signature_key, allowing an unauthenticated remote attacker to present a victim's certificate while signing the LeafNode and KeyPackage with an unrelated key and be accepted under the victim's identity. In an MLS deployment that uses X.509 credentials and admits external commits without an independent credential-admission check, the attacker can be admitted as the victim, evict the victim via resynchronization (which compares whole credentials rather than signing keys), derive the current epoch, decrypt subsequent group messages, and send messages accepted as the victim. The flaw is rated CVSS 9.2 (CVSS:4.0) / 9.2-equivalent high impact with the vendor patch available in 1.86; no public exploit code or confirmed active exploitation was identified at time of analysis, and deployments using only basic credentials are explicitly unaffected. Note the assessed attack complexity is High because the MLS/X.509 path must be in use and the application must lack its own credential-admission validation.
RemediationAI
Vendor-released patch: upgrade Bouncy Castle for Java (bc-java) to 1.86 or later, which makes TreeKEM.LeafNode reject an X.509 credential whose end-entity certificate's subject public key (in the cipher suite's signature encoding) does not equal signature_key, including empty chains and mismatched key types; the fix is visible in commit 77632a57edf350a7b5751fca1a5052daffa8dab2 and the vendor advisory https://github.com/bcgit/bc-java/wiki/CVE%E2%80%902026%E2%80%9071885. If upgrading is not immediately possible, the most effective compensating control is to add an independent application-level credential-admission check that binds the presenting party to the X.509 credential and validates the chain to a trust anchor, since RFC 9420 sec. 5.3.1 leaves this to the application and a correct admission check blocks the attack outright; organizations that cannot implement such a check should disable admission of external commits in their MLS group policy, at the cost of losing a useful group-membership feature and possibly breaking clients that rely on it, or restrict the affected deployment to basic credentials, which are explicitly unaffected by this flaw but forgo X.509-identity-backed authentication. Because validation to a trust anchor is not performed by the library even after the fix, deploying 1.86 should still be paired with application-side certificate-chain and identity validation.
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
The vulnerability is a CWE-295 improper certificate validation flaw inside the MLS module of bc-java (CPE cpe:2.3:a:legion_of_the_bouncy_castle_inc.:bc-java:*:*:*:*:*:*:*:*). MLS is the IETF's group key-establishment protocol (RFC 9420) built on TreeKEM; each group member is represented by a LeafNode whose signature_key authenticates the leaf, and whose credential (basic or X.509) asserts identity. RFC 9420 section 5.3 requires that for an X.509 credential, the leaf's signature_key equal the public key certified by the end-entity certificate. Before this fix, TreeKEM's LeafNode.verify() checked the leaf's signature against the signature_key carried in the leaf itself, while the X.509 credential's certificate chain was stored but never parsed or validated, so the certificate's public key was never compared to signature_key. The commit 77632a57edf350a7b5751fca1a5052daffa8dab2 adds a check, x509CredentialBindsSignatureKey(), that extracts the end-entity certificate's SubjectPublicKeyInfo (first certificate in the chain per RFC 9420 sec. 5.3.3), serializes its key in the cipher suite's signature encoding, and requires it to equal signature_key, rejecting the leaf on an empty chain, a malformed certificate, or a key type mismatched to the cipher suite. Certificate-chain and identity validation to a trust anchor remain the application's responsibility per RFC 9420 sec. 5.3.1. The patch also adds a public Certificate(byte[]) constructor and Credential.getCertificates() accessor so callers can build and inspect X.509 credentials.
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:P/PR:N/UI:N/VC:H/VI:H/VA:L/SC:N/SI:N/SA:N/U:Amber
Remote and unauthenticated (AV:N/PR:N); AC:H because it requires a deployment admitting external commits without a credential-admission check; impersonation yields message decryption (C:H), spoofing/eviction (I:H) and limited availability from eviction (A:L).
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L
Primary rating from Vendor (bcorg).
CVSS VectorVendor: bcorg
DescriptionCVE.org
In Bouncy Castle for Java before 1.86, the Messaging Layer Security (MLS, RFC 9420) implementation did not bind an X.509 credential to a LeafNode's signature_key. LeafNode.verify() checked a leaf's signature against the signature_key carried in the leaf itself, while the credential's X.509 certificate chain was stored but never parsed or validated, so the end-entity certificate's public key was never required to match signature_key as RFC 9420 sec. 5.3 requires. A party could therefore present another party's certificate as its credential while signing the leaf, and the enclosing KeyPackage, with an unrelated key, and be accepted under that other party's identity through KeyPackage.verify() and the Group leaf-validation path. In a deployment that admits external commits without an independent credential-admission check, an unauthenticated attacker could be admitted under a victim's X.509 identity, evict the victim (resynchronization compares whole credentials rather than signing keys), derive the current epoch, decrypt subsequent group messages, and send messages accepted as the victim. TreeKEM.LeafNode now requires the end-entity certificate's subject public key, in the cipher suite's signature encoding, to equal signature_key for an X.509 credential and rejects the leaf otherwise, including an empty chain or a certificate whose key type does not match the cipher suite; certificate-chain and identity validation to a trust anchor remain the application's responsibility per RFC 9420 sec. 5.3.1. Deployments using only basic credentials are unaffected.
Articles & Coverage 2
Executive ViewAI
A critical flaw in Bouncy Castle for Java's Messaging Layer Security (MLS) implementation before version 1.86 allows an attacker to be admitted into an encrypted group session under another participant's identity, then evict that participant, derive the current epoch, and read and send messages as them. Organizations running MLS-based group messaging or collaboration features that rely on X.509 credentials and admit external commits are exposed, while deployments using only basic credentials are explicitly unaffected. Although no public exploit was identified at time of analysis, the severity rating and the direct risk to the confidentiality of protected group communications warrant prompt remediation.
Apply vendor patch. Until Bouncy Castle for Java 1.86 is deployed, require an independent credential-admission check for external commits and treat X.509-credentialed MLS deployments that admit external commits as untrusted.
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.
Oracle 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-295 – Improper Certificate Validation
View allSame technique Information Disclosure
View allVendor StatusVendor
SUSE
Severity: Important| Product | Status |
|---|---|
| SUSE Linux Enterprise Desktop 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-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 SP4 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | 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 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | 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 Manager Proxy 4.1 | Affected |
| SUSE Manager Proxy 4.2 | Affected |
| SUSE Manager Proxy 4.3 | Affected |
| SUSE Manager Retail Branch Server 4.1 | Affected |
| SUSE Manager Retail Branch Server 4.2 | Affected |
| SUSE Manager Retail Branch Server 4.3 | Affected |
| SUSE Manager Server 4.1 | Affected |
| SUSE Manager Server 4.2 | Affected |
| SUSE Manager Server 4.3 | Affected |
| openSUSE Leap 15.3 | Affected |
| openSUSE Leap 15.4 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
| SUSE Linux Enterprise Server for NVIDIA 16.1 | Affected |
EUVD-2026-92003
GHSA-jch3-5j66-88vx
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB