Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft CMS EnvelopedData with HKDF CEK
-
DeliveryAdvertise key size mismatching inner algorithm
-
ExploitFaulty byte-array vs OID comparison
-
ExecutionKey-size validation silently skipped
-
ImpactRecipient accepts wrong-size key
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Incorrect comparison
|
| Exploitation Conditions | Three conditions must all hold: (1) the receiving application must have explicitly enabled the opt-in control JceKeyTransRecipient.setKeySizeValidation(true), which is OFF by default; (2) the processed message must be a key-transport EnvelopedData or AuthEnvelopedData using RFC 9709 content-encryption key derivation (id-alg-cek-hkdf-sha256); and (3) the HKDF-derived content-encryption key size must not match the advertised inner content-encryption algorithm. Limiting factors that reduce real-world risk: the validation is opt-in and non-default, so applications that never call setKeySizeValidation(true) are unaffected; non-HKDF messages are unaffected; messages whose key size already matches are unaffected; and the flaw bypasses a size-enforcement check rather than directly decrypting data or recovering keys. |
| Impact | This is a medium-severity defense-in-depth control failure, not a high-impact primitive. The vendor CVSS 4.0 base score is 6.9 (U:Amber) with vector AV:N/AC:L/AT:N/PR:N/UI:N and Low vulnerable-system confidentiality and integrity impact (VC:L/VI:L), which already signals limited rather than severe consequences. No EPSS probability, no CISA KEV listing, and no standalone public exploit were supplied, so there is no evidence of active or at-scale exploitation; the only exploitation artifact is a regression test shipped inside the patch commit, which demonstrates the condition but is not a weaponized exploit. CAVEAT ON THE VECTOR: the CVSS metrics state PR:N/UI:N (remote, unauthenticated, no interaction), but the description makes clear the flaw only matters when the receiving application has explicitly opted in via JceKeyTransRecipient.setKeySizeValidation(true) AND the message uses RFC 9709 HKDF CEK derivation - those are target-side preconditions not reflected in the base vector, so real-world reachability is far narrower than AV:N/PR:N implies. The practical effect is that an optional, non-default key-size enforcement check silently passes when it should fail (CWE-697, incorrect comparison of a byte array against an ASN1ObjectIdentifier). This is a real correctness/security-control bug worth patching, but it is a low-real-risk issue for most deployments: it does not by itself enable decryption, code execution, or key recovery, and it is inert for every application that never enabled the opt-in validation. |
| Exploit ScenarioDerived | An attacker crafts a key-transport EnvelopedData or AuthEnvelopedData using RFC 9709 HKDF content-encryption key derivation (id-alg-cek-hkdf-sha256) in which the HKDF-derived content-encryption key size does not match the advertised content-encryption algorithm (e.g. 256 bits of keying material while the inner algorithm is AES-128-CBC). A recipient application that relies on setKeySizeValidation(true) as a security boundary accepts the mismatched message because the faulty OID comparison skips the size check entirely, defeating the only API-level key-size enforcement the library offers. A regression test demonstrating this condition ships with the patch, but no standalone public exploit was 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
Key-size validation bypass in Bouncy Castle for Java before 1.86 (and Bouncy Castle for Java FIPS before bcpkix-fips 2.0.13 / 2.1.13) allows a key-transport EnvelopedData or AuthEnvelopedData message whose HKDF-derived content-encryption key does not match the advertised content-encryption algorithm to be accepted even when the application has explicitly enabled org.bouncycastle.cms.jcajce.JceKeyTransRecipient.setKeySizeValidation(true). The defect is confined to messages using RFC 9709 CEK derivation (id-alg-cek-hkdf-sha256); messages with a matching key size, non-HKDF messages, and recipients that never enable validation are unaffected, and the opt-in control is off by default, so this is a medium-severity defense-in-depth failure rather than a direct decryption or key-recovery primitive. Unauthenticated remote attackers who can supply CMS content to an application that has enabled the control can silently defeat the only mechanism the API offers for enforcing recovered key size; no public exploit code or confirmed active exploitation was identified at time of analysis, and a vendor-released patch is available.
RemediationAI
Vendor-released patch: upgrade Bouncy Castle for Java to 1.86 (bcprov/bcpkix), and Bouncy Castle for Java FIPS to bcpkix-fips 2.0.13 on the 2.0.X line or bcpkix-fips 2.1.13 on the 2.1.X line; the upstream fix commit is https://github.com/bcgit/bc-java/commit/be0a7d925c818ef2f338bcec55178b9b6336dfc3 and the advisory is at https://github.com/bcgit/bc-java/wiki/CVE%E2%80%902026%E2%80%9071892. Where immediate upgrade is not possible, do not rely on setKeySizeValidation(true) as a size-enforcement control for RFC 9709 messages: add an application-side check that compares the recovered CEK length to the inner content-encryption algorithm parsed from the id-alg-cek-hkdf-sha256 AlgorithmIdentifier parameters, since the library check is a no-op in that path. Alternatively, reject or quarantine inbound key-transport EnvelopedData/AuthEnvelopedData that advertise id-alg-cek-hkdf-sha256 until the upgrade lands, or disable HKDF-based CEK derivation on the generating side (setEnableSha256HKdf(false)); the trade-off is loss of interoperability with peers that require RFC 9709 key derivation. Note that leaving setKeySizeValidation disabled is not an additional regression for HKDF messages, because the check never ran for them; no public exploit code was identified at time of analysis, so prioritization can follow normal patch-cycle timelines given the opt-in, non-default nature of the affected control.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages 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's CMS implementation (pkix module, class org.bouncycastle.cms.jcajce.JceKeyTransRecipient) supports RFC 9709 content-encryption key derivation, in which the transported encrypted key is fed through HKDF-SHA256 to produce the CEK and the AlgorithmIdentifier parameters carry the real inner content-encryption algorithm. The affected code attempted to detect that construction with 'encryptedEncryptionKey.equals(CMSObjectIdentifiers.id_alg_cek_hkdf_sha256)', a comparison between a byte array and an ASN1ObjectIdentifier. Because a byte[] can never equal an ASN1ObjectIdentifier, the branch was always false (CWE-697: incorrect comparison), causing the check to fall through to a key-size lookup on the outer wrapper OID. That OID identifies a key-derivation construction, not a cipher, so no key size is registered for it and the size comparison was skipped entirely, leaving validation silently inert. The upstream fix changes the test to compare the parsed content-encryption AlgorithmIdentifier's algorithm OID, so validation now checks the recovered key against the inner cipher (e.g. aes128-CBC versus a 256-bit recovered key) as intended. The relevant CPEs are cpe:2.3:a:legion_of_the_bouncy_castle_inc.:bc-java and cpe:2.3:a:legion_of_the_bouncy_castle_inc.:bc-fja.
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:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/U:Amber
A crafted CMS message is delivered over the network with no attacker privileges or user interaction; the flaw only bypasses a key-size enforcement control, yielding low confidentiality and integrity impact and no availability impact.
AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
Primary rating from Vendor (bcorg).
CVSS VectorVendor: bcorg
DescriptionCVE.org
In Bouncy Castle for Java before 1.86, the opt-in key-size validation on CMS key-transport recipients, org.bouncycastle.cms.jcajce.JceKeyTransRecipient.setKeySizeValidation(true), never ran for a message using RFC 9709 content-encryption key derivation (id-alg-cek-hkdf-sha256). The branch that should have selected the actual content-encryption algorithm carried in the key derivation AlgorithmIdentifier's parameters compared the encrypted-key byte array against the id-alg-cek-hkdf-sha256 object identifier, a comparison between a byte array and an ASN1ObjectIdentifier that is false for every possible input, so the check fell through to a key-size lookup on the outer wrapper OID. That OID identifies a key-derivation construction rather than a cipher and has no registered key size, so the size comparison was skipped entirely. A key-transport EnvelopedData or AuthEnvelopedData whose transported, HKDF-derived content-encryption key did not match the key size of the advertised content-encryption algorithm was therefore accepted even with validation explicitly enabled, silently defeating the only mechanism the API offers for enforcing recovered key size. The recipient now dispatches on the content-encryption AlgorithmIdentifier's algorithm OID, so validation checks the recovered key against the inner content-encryption algorithm. Messages with a matching key size, non-HKDF messages, and recipients that do not enable validation are unaffected. This issue also affects Bouncy Castle for Java FIPS (BC-FJA) before bcpkix-fips 2.0.13 (2.0.X series) and 2.1.13 (2.1.X series).
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-697 – Incorrect Comparison
View allSame technique Information Disclosure
View allVendor StatusVendor
SUSE
Severity: Moderate| 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-91989
GHSA-x42w-4gqh-qrvm
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB