CVE-2024-37880

Source
https://nvd.nist.gov/vuln/detail/CVE-2024-37880
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2024-37880.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2024-37880
Published
2024-06-10T02:15:47Z
Modified
2025-10-17T06:14:02.192579Z
Severity
  • 7.5 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N CVSS Calculator
Summary
[none]
Details

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

Affected packages

Git / github.com/pq-crystals/kyber

Affected ranges

Type
GIT
Repo
https://github.com/pq-crystals/kyber
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Fixed

Affected versions

v3.*

v3.0

Database specific

vanir_signatures

[
    {
        "source": "https://github.com/pq-crystals/kyber/commit/9b8d30698a3e7449aeb34e62339d4176f11e3c6c",
        "deprecated": false,
        "signature_type": "Line",
        "signature_version": "v1",
        "digest": {
            "line_hashes": [
                "129159944488822175469922892442807990041"
            ],
            "threshold": 0.9
        },
        "id": "CVE-2024-37880-16c196d2",
        "target": {
            "file": "ref/verify.h"
        }
    },
    {
        "source": "https://github.com/pq-crystals/kyber/commit/9b8d30698a3e7449aeb34e62339d4176f11e3c6c",
        "deprecated": false,
        "signature_type": "Line",
        "signature_version": "v1",
        "digest": {
            "line_hashes": [
                "234689300167707083092684360083613531595",
                "146167400202682821831380952758195444065",
                "236930179887150445801603796343847781378",
                "132795227996355397657871530656993888564",
                "98085589001609537616281371573502341052",
                "220137936012977417917610474229036188693",
                "230950984777136591460947291073851511222",
                "152441685494613281378637909075275929112",
                "94291155035070951370862928007735827934",
                "301827595347717556978065680018854490571",
                "234954458262773481690591469489954392452",
                "117445256152861512856057429889126623864",
                "140998155976398254487220450403221579936"
            ],
            "threshold": 0.9
        },
        "id": "CVE-2024-37880-230f7be1",
        "target": {
            "file": "ref/poly.c"
        }
    },
    {
        "source": "https://github.com/pq-crystals/kyber/commit/9b8d30698a3e7449aeb34e62339d4176f11e3c6c",
        "deprecated": false,
        "signature_type": "Function",
        "signature_version": "v1",
        "digest": {
            "function_hash": "318988264785853182587844791599630315127",
            "length": 444.0
        },
        "id": "CVE-2024-37880-c935abed",
        "target": {
            "file": "ref/poly.c",
            "function": "poly_frommsg"
        }
    }
]