CVE-2024-14041
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.
Scoring
- Severity
- HIGH
- CVSS base score
- 8.2
- CVSS vector
- CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/U:Amber
- EPSS probability
- 0.34%
- CWE
- CWE-208
- Published
- 2026-07-28
- Last modified
- 2026-08-09
Affected products
- Legion of the Bouncy Castle Inc. BC-JAVA
Weakness type
Related vulnerabilities
- CVE-2026-87737 — An issue was discovered in the mirage-crypto-ec package before 2.4.0 for OCaml. There is a timing...
- CVE-2026-16037 — Callback Authentication Bypass via Timing Attack in PayTR's PayTR Virtual Pos iFrame API (v9x) WHMCS Module
- CVE-2026-81159 — Commerce CyberSource - Moderately critical - Insufficient input validation - SA-CONTRIB-2026-106
- CVE-2026-84308 — phpseclib — non-constant-time X25519 scalar multiplication permits full private-key recovery
- CVE-2026-82449 — Cockpit CMS before 2.14.1 Account Enumeration via Auth Timing
- CVE-2026-55785 — free5GC AUSF uses non-constant-time authentication comparisons and logs XRES* in 5G-AKA
- CVE-2026-78500 — Dimension Blind SSRF via Database Test Connection Feature
- CVE-2026-80199 — Kimai before 2.54.0 Username Enumeration via Timing Oracle