CVE-2024-14041

Medium

Description

In Bouncy Castle for Java from 1.73 to before 1.78, three ML-KEM (CRYSTALS-Kyber) routines divided secret-derived polynomial coefficients by the modulus q: Poly.toMsg, which decodes the decrypted message, and the ciphertext compression routines Poly.compressPoly and PolyVec.compressPolyVec. An attacker able to measure the timing of a large number of decapsulations performed with the same long-term private key can recover that key. These are the KyberSlash1 (Poly.toMsg) and KyberSlash2 (ciphertext compression) divisions. Compression performed during encapsulation operates on values that become the public ciphertext and is not affected.

SeverityMedium
CVSS5.9
Exploit probability—
ProductBouncycastle Bc-java
PublishedJul 28, 2026
First seenJul 28, 2026
Weakness typeCWE-208CWE-208

How to fix

Affected products

ProductAffected versionsFixed in
bouncycastle bc-java1.73 ≤ v < 1.781.78

Check your version

Choose the product and enter the version you run to see whether it falls in the affected range.

In the Intelligence 360 plan

Attack Surface Management

See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.