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
Link | Resource |
---|---|
https://github.com/antoonpurnal/clangover | Exploit |
https://github.com/pq-crystals/kyber/commit/9b8d30698a3e7449aeb34e62339d4176f11e3c6c | Patch |
https://news.ycombinator.com/item?id=40577486 | Not Applicable |
https://pqshield.com/pqshield-plugs-timing-leaks-in-kyber-ml-kem-to-improve-pqc-implementation-maturity/ | Exploit Third Party Advisory |
https://twitter.com/purnaltoon/status/1797644696568959476 | Exploit |
Configurations
History
No history.
Information
Published : 2024-06-10 02:15
Updated : 2024-06-12 16:30
NVD link : CVE-2024-37880
Mitre link : CVE-2024-37880
CVE.ORG link : CVE-2024-37880
JSON object : View
Products Affected
pq-crystals
- kyber
CWE
CWE-203
Observable Discrepancy