{"id":"CVE-2024-37880","aliases":["EUVD-2024-36864","GHSA-58rr-w6gv-4p4h"],"status":"published","title":"The Kyber reference implementation before 9b8d306, when compiled by LLVM Clang through 18.x with...","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.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-10","score":0.00702,"percentile":0.53586,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-203"],"published":"2024-06-10T00:00:00Z","modified":"2026-10-28T10:44:08Z","products":[{"vendor":"pq-crystals","product":"kyber"}],"references":[{"url":"https://pqshield.com/pqshield-plugs-timing-leaks-in-kyber-ml-kem-to-improve-pqc-implementation-maturity/","tags":["x_transferred","Exploit","Third Party Advisory","web"]},{"url":"https://github.com/antoonpurnal/clangover","tags":["x_transferred","Exploit","package"]},{"url":"https://github.com/pq-crystals/kyber/commit/9b8d30698a3e7449aeb34e62339d4176f11e3c6c","tags":["x_transferred","Patch","fix"]},{"url":"https://news.ycombinator.com/item?id=40577486","tags":["x_transferred","Not Applicable","web"]},{"url":"https://twitter.com/purnaltoon/status/1797644696568959476","tags":["x_transferred","Exploit","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-37880","tags":["advisory"]},{"url":"https://pqshield.com/pqshield-plugs-timing-leaks-in-kyber-ml-kem-to-improve-pqc-implementation-maturity"},{"url":"https://github.com/advisories/GHSA-58rr-w6gv-4p4h"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/37xxx/CVE-2024-37880.json","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2024-37880","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.","status":"published","published":"2024-06-10T00:00:00Z","modified":"2024-08-02T03:57:39.987Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"adp"}],"cwes":["CWE-203"],"updated_at":"2026-11-02T14:34:00.585327Z"}],"euvd":[{"id":"EUVD-2024-36864","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.","status":"published","published":"2024-06-10T00:00:00Z","modified":"2024-08-02T03:57:39Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"updated_at":"2026-11-03T03:50:18.901913Z"}],"ghsa":[{"id":"GHSA-58rr-w6gv-4p4h","title":"The Kyber reference implementation before 9b8d306, when compiled by LLVM Clang through 18.x with...","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.","status":"published","published":"2024-06-10T03:30:46Z","modified":"2024-06-12T18:30:39Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"cwes":["CWE-203"],"updated_at":"2026-11-02T14:57:28.765205Z"}],"nvd":[{"id":"CVE-2024-37880","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.","status":"published","published":"2024-06-10T02:15:47.16Z","modified":"2026-06-17T07:38:58.583Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"primary"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"secondary"}],"cwes":["CWE-203"],"updated_at":"2026-11-02T14:10:04.111836Z"}],"osv":[{"id":"CVE-2024-37880","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.","status":"published","published":"2024-06-10T00:00:00Z","modified":"2026-10-28T10:44:08.275207313Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"updated_at":"2026-11-02T15:44:41.133403Z"}]}}
