CVE-2024-14041 Information disclosure in BC-JAVA

High 8.2 Published Updated

Timing side-channel in Bouncy Castle ML-KEM allows attackers to recover private keys by measuring decapsulation times.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2024-14041?

CVE-2024-14041 is a high-severity vulnerability in Bouncycastle Bc-Java, published on 28 Jul 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.

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

Weakness: CWE-208

Which versions are affected by CVE-2024-14041?

It affects 1 product.

Products include Bouncycastle Bc-Java.

How do I fix CVE-2024-14041?

Upgrade to a fixed version.

Is CVE-2024-14041 being exploited?

There is no known exploitation of CVE-2024-14041 in the wild and no public exploit code.

All Bouncycastle Bc-Java vulnerabilities

Sources

Also known as DEBIAN-CVE-2024-14041, GHSA-6wh4-p7q8-98wf, UBUNTU-CVE-2024-14041.

Is CVE-2024-14041 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free