CVE Catalog

CVE-2026-71892

MediumCVSS 6.9
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.17%

6th percentile - higher than 6% of all known CVEs

Summary

In Bouncy Castle for Java before 1.86, the opt-in key-size validation for CMS key-transport recipients (JceKeyTransRecipient.setKeySizeValidation(true)) never ran for messages using RFC 9709 (id-alg-cek-hkdf-sha256). A faulty comparison (byte array vs OID) caused the check to be skipped, accepting keys of mismatched size. This also affects BC-FJA before bcpkix-fips 2.0.13 and 2.1.13.

Risk Assessment

The organization may accept encrypted messages with content keys whose size does not match the advertised cipher, weakening cryptographic security and potentially allowing an attacker to force a weaker key even when validation is explicitly enabled.

Recommendation

Upgrade Bouncy Castle to 1.86 or later (for BC-FJA: bcpkix-fips 2.0.13+/2.1.13+). After upgrading, test HKDF scenarios to ensure key-size validation works correctly.

Other vulnerabilities in Bouncy Castle

See all
Original NVD description (English source)

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).

Vulnerability data from NVD (NIST) · CISA KEV · EPSS