Skip to main content
VulnerabilityPublished Updated

CVE-2024-37880: Kyber reference implementation · Observable Discrepancy

Source CVE Database V5

0

Not known to be exploited · CVSS 7.5 High.

Data as of 26 Oct 2026, 17:16 UTC

CVSS 3.1 base score
7.5High
How severe the flaw is on the 0–10 CVSS scale.
EPSS
0.7% chance of exploitation in 30 days – higher than 52% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 10 Jun 2024

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponised: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.

What to do

AI-suggested

  1. Upgrade to the Kyber reference implementation at or beyond commit 9b8d306, where the poly_frommsg function is fixed to prevent secret-dependent branching.
  2. Recompile Kyber using compilers that do not emit secret-dependent branches in poly_frommsg, or apply compiler flags that enforce constant-time code generation if available.
  3. Conduct thorough code audits and side-channel analysis when integrating cryptographic libraries, especially when using aggressive compiler optimizations.
  4. Employ side-channel resistant coding practices, such as avoiding secret-dependent branches and memory accesses.
  5. Monitor cryptographic library updates and advisories for patches addressing this and related vulnerabilities.
  6. For critical systems, consider using hardware-based cryptographic modules or implementations with formal side-channel resistance proofs.
  7. Limit exposure of cryptographic operations to untrusted networks or users to reduce timing measurement feasibility.
  8. Implement runtime mitigations such as noise injection or constant-time wrappers if immediate patching is not possible.
  9. Validate the compiler toolchain and build environment to ensure no regressions or similar issues are introduced.

Description

The Kyber reference implementation before 9b8d306, when compiled by LLVM Clang through 18.x with some common optimization options, has a timing side channel that allows attackers to recover an ML-KEM 512 secret key in minutes. This occurs because poly_frommsg in poly.c does not prevent Clang from emitting a vulnerable secret-dependent branch.

References

Community reviews

Loading reviews…