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

Configuration 1 (hide)

cpe:2.3:a:bouncycastle:bc-java:*:*:*:*:*:*:*:*

History

02 Oct 2026, 00:10

Type Values Removed Values Added
Summary
  • (es) En Bouncy Castle para Java desde 1.73 hasta antes de 1.78, tres rutinas ML-KEM (CRYSTALS-Kyber) dividían los coeficientes polinómicos derivados del secreto por el módulo q: Poly.toMsg, que decodifica el mensaje descifrado, y las rutinas de compresión de texto cifrado Poly.compressPoly y PolyVec.compressPolyVec. Un atacante capaz de medir el tiempo de un gran número de desencapsulaciones realizadas con la misma clave privada a largo plazo puede recuperar esa clave. Estas son las divisiones KyberSlash1 (Poly.toMsg) y KyberSlash2 (compresión de texto cifrado). La compresión realizada durante la encapsulación opera sobre valores que se convierten en el texto cifrado público y no se ve afectada.

Information

Published : 2026-07-28 08:17

Updated : 2026-10-02 00:10


NVD link : CVE-2024-14041

Mitre link : CVE-2024-14041

CVE.ORG link : CVE-2024-14041


JSON object : View

Products Affected

bouncycastle

  • bc-java
CWE
CWE-208

Observable Timing Discrepancy