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.
Metrics
CVSS 3.1 7.5/10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:NWeakness enumeration
Affected software
| Vendor | Product | Versions |
|---|---|---|
| n/a | n/a | n/a |
| pq-crystals | kyber | < 2024-06-03 |
References
- https://github.com/antoonpurnal/clangoverExploit
- https://github.com/pq-crystals/kyber/commit/9b8d30698a3e7449aeb34e62339d4176f11e3c6cPatch
- https://news.ycombinator.com/item?id=40577486Not 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/1797644696568959476Exploit
- https://github.com/antoonpurnal/clangoverExploit
- https://github.com/pq-crystals/kyber/commit/9b8d30698a3e7449aeb34e62339d4176f11e3c6cPatch
- https://news.ycombinator.com/item?id=40577486Not 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/1797644696568959476Exploit
Timeline
- Published
- Jun 10, 2024
- Last modified
- Jun 17, 2026
- NVD status
- Modified