GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2024-57998 (GCVE-0-2024-57998)

Vulnerability from cvelistv5 – Published: 2025-02-27 02:07 – Updated: 2026-08-05 11:47
VLAI
Title
OPP: add index check to assert to avoid buffer overflow in _read_freq()
Summary
In the Linux kernel, the following vulnerability has been resolved: OPP: add index check to assert to avoid buffer overflow in _read_freq() Pass the freq index to the assert function to make sure we do not read a freq out of the opp->rates[] table when called from the indexed variants: dev_pm_opp_find_freq_exact_indexed() or dev_pm_opp_find_freq_ceil/floor_indexed(). Add a secondary parameter to the assert function, unused for assert_single_clk() then add assert_clk_index() which will check for the clock index when called from the _indexed() find functions.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 92fcb46659d5dbfdad0422a503e289085990a5d0 , < 774dd6f0f0a61c9c3848e025d7d9eeed1a7ca4cd (git)
Affected: 142e17c1c2b48e3fb4f024e62ab6dee18f268694 , < eb6ffa0192ba83ece1a318b956265519c5c7dcec (git)
Affected: 142e17c1c2b48e3fb4f024e62ab6dee18f268694 , < 7d68c20638e50d5eb4576492a7958328ae445248 (git)
Affected: 142e17c1c2b48e3fb4f024e62ab6dee18f268694 , < da2a6acc73933b7812c94794726e438cde39e037 (git)
Affected: 142e17c1c2b48e3fb4f024e62ab6dee18f268694 , < d659bc68ed489022ea33342cfbda2911a81e7a0d (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.6
Unaffected: 0 , < 6.6 (semver)
Unaffected: 6.6.76 , ≤ 6.6.* (semver)
Unaffected: 6.12.13 , ≤ 6.12.* (semver)
Unaffected: 6.13.2 , ≤ 6.13.* (semver)
Unaffected: 6.14 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2025-11-03T19:33:10.348Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "url": "https://lists.debian.org/debian-lts-announce/2025/03/msg00028.html"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/opp/core.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "774dd6f0f0a61c9c3848e025d7d9eeed1a7ca4cd",
              "status": "affected",
              "version": "92fcb46659d5dbfdad0422a503e289085990a5d0",
              "versionType": "git"
            },
            {
              "lessThan": "eb6ffa0192ba83ece1a318b956265519c5c7dcec",
              "status": "affected",
              "version": "142e17c1c2b48e3fb4f024e62ab6dee18f268694",
              "versionType": "git"
            },
            {
              "lessThan": "7d68c20638e50d5eb4576492a7958328ae445248",
              "status": "affected",
              "version": "142e17c1c2b48e3fb4f024e62ab6dee18f268694",
              "versionType": "git"
            },
            {
              "lessThan": "da2a6acc73933b7812c94794726e438cde39e037",
              "status": "affected",
              "version": "142e17c1c2b48e3fb4f024e62ab6dee18f268694",
              "versionType": "git"
            },
            {
              "lessThan": "d659bc68ed489022ea33342cfbda2911a81e7a0d",
              "status": "affected",
              "version": "142e17c1c2b48e3fb4f024e62ab6dee18f268694",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/opp/core.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.6"
            },
            {
              "lessThan": "6.6",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.76",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.13",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.13.*",
              "status": "unaffected",
              "version": "6.13.2",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.14",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.76",
                  "versionStartIncluding": "6.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.13",
                  "versionStartIncluding": "6.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.13.2",
                  "versionStartIncluding": "6.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.14",
                  "versionStartIncluding": "6.6",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nOPP: add index check to assert to avoid buffer overflow in _read_freq()\n\nPass the freq index to the assert function to make sure\nwe do not read a freq out of the opp-\u003erates[] table when called\nfrom the indexed variants:\ndev_pm_opp_find_freq_exact_indexed() or\ndev_pm_opp_find_freq_ceil/floor_indexed().\n\nAdd a secondary parameter to the assert function, unused\nfor assert_single_clk() then add assert_clk_index() which\nwill check for the clock index when called from the _indexed()\nfind functions."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.3,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The OPP core is a kernel-internal DVFS framework reached only from the local system \u2014 driver probe, devfreq governor transitions driven by local workload, and the devfreq/UFS sysfs frequency attributes. No network, adjacent-network, or removable-device input reaches `_read_freq()`.\nAC:L - On an affected platform the missing bound check is on a straight-line path with no race, no timing window, and no memory-layout precondition \u2014 every OPP lookup through the `_indexed()` variants deterministically reads `opp-\u003erates[index]` past the array. Repeating the read is as simple as generating I/O or GPU load to force a DVFS transition.\nPR:L - An ordinary unprivileged process can drive devfreq/UFS clock-scaling transitions simply by generating storage or GPU load, which sends the governor through `devfreq_recommended_opp()` and `ufshcd_opp_set_rate()` into the unchecked lookup \u2014 no capability, user namespace, or sysfs write privilege is needed to reach the code.\nUI:N - The overread happens autonomously in probe context and in governor-driven DVFS work, with no victim required to open a device node, mount a filesystem, or take any other action.\nS:U - The out-of-bounds access stays within the kernel\u0027s own slab allocations and the affected device\u0027s power-management state, under the same security authority. No hypervisor, IOMMU, container, or sandbox boundary is crossed.\nC:H - The out-of-bounds word read from beyond `opp-\u003erates[]` is not merely compared \u2014 `_opp_table_find_key()` assigns it back through `*key`, so adjacent kernel heap contents (potentially slab metadata or pointers) escape into a caller-visible frequency value that is reported through devfreq/UFS frequency interfaces and tracepoints, and the read is freely repeatable as a heap-content oracle.\nI:L - The garbage key corrupts the ceil/floor/exact comparison, causing selection of the wrong operating point, so an out-of-spec clock rate and voltage are programmed into hardware and bogus `min_freq`/`max_freq` values are stored in the UFS clock descriptors. This is unintended but bounded modification of system state, not an attacker-directed arbitrary write.\nA:H - The slab out-of-bounds read is fatal on the KASAN/`panic_on_warn` configurations common in Android, automotive, and hardened embedded builds, and even on production builds a garbage frequency makes `ufshcd_parse_clock_min_max_freq()` fail probe or leaves the UFS controller and GPU clocked at an invalid rate, producing I/O timeouts, hangs, or a device left without working storage."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:47:18.059Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/774dd6f0f0a61c9c3848e025d7d9eeed1a7ca4cd"
        },
        {
          "url": "https://git.kernel.org/stable/c/eb6ffa0192ba83ece1a318b956265519c5c7dcec"
        },
        {
          "url": "https://git.kernel.org/stable/c/7d68c20638e50d5eb4576492a7958328ae445248"
        },
        {
          "url": "https://git.kernel.org/stable/c/da2a6acc73933b7812c94794726e438cde39e037"
        },
        {
          "url": "https://git.kernel.org/stable/c/d659bc68ed489022ea33342cfbda2911a81e7a0d"
        }
      ],
      "title": "OPP: add index check to assert to avoid buffer overflow in _read_freq()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-57998",
    "datePublished": "2025-02-27T02:07:17.965Z",
    "dateReserved": "2025-02-27T02:04:28.915Z",
    "dateUpdated": "2026-08-05T11:47:18.059Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2024-57998",
      "date": "2026-09-16",
      "epss": "0.00236",
      "percentile": "0.14769"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2024-57998\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-02-27T02:15:13.820\",\"lastModified\":\"2026-08-04T11:22:35.817\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nOPP: add index check to assert to avoid buffer overflow in _read_freq()\\n\\nPass the freq index to the assert function to make sure\\nwe do not read a freq out of the opp-\u003erates[] table when called\\nfrom the indexed variants:\\ndev_pm_opp_find_freq_exact_indexed() or\\ndev_pm_opp_find_freq_ceil/floor_indexed().\\n\\nAdd a secondary parameter to the assert function, unused\\nfor assert_single_clk() then add assert_clk_index() which\\nwill check for the clock index when called from the _indexed()\\nfind functions.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: OPP: agregar comprobaci\u00f3n de \u00edndice a assert para evitar el desbordamiento de b\u00fafer en _read_freq() Pasar el \u00edndice freq a la funci\u00f3n assert para asegurarnos de que no leemos un freq de la tabla opp-\u0026gt;rates[] cuando se llama desde las variantes indexadas: dev_pm_opp_find_freq_exact_indexed() o dev_pm_opp_find_freq_ceil/floor_indexed(). Agregar un par\u00e1metro secundario a la funci\u00f3n assert, no utilizado para assert_single_clk() y luego agregar assert_clk_index() que verificar\u00e1 el \u00edndice del reloj cuando se llame desde las funciones de b\u00fasqueda _indexed().\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/opp/core.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"92fcb46659d5dbfdad0422a503e289085990a5d0\",\"lessThan\":\"774dd6f0f0a61c9c3848e025d7d9eeed1a7ca4cd\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"142e17c1c2b48e3fb4f024e62ab6dee18f268694\",\"lessThan\":\"eb6ffa0192ba83ece1a318b956265519c5c7dcec\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"142e17c1c2b48e3fb4f024e62ab6dee18f268694\",\"lessThan\":\"7d68c20638e50d5eb4576492a7958328ae445248\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"142e17c1c2b48e3fb4f024e62ab6dee18f268694\",\"lessThan\":\"da2a6acc73933b7812c94794726e438cde39e037\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"142e17c1c2b48e3fb4f024e62ab6dee18f268694\",\"lessThan\":\"d659bc68ed489022ea33342cfbda2911a81e7a0d\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/opp/core.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.6\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.6\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.76\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.13\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.13.2\",\"lessThanOrEqual\":\"6.13.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.14\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:H\",\"baseScore\":7.3,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"LOW\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.5},{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-125\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.6\",\"versionEndExcluding\":\"6.6.76\",\"matchCriteriaId\":\"C9762EFE-508E-462C-B4F6-A1D1871149B5\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.7\",\"versionEndExcluding\":\"6.12.13\",\"matchCriteriaId\":\"2897389C-A8C3-4D69-90F2-E701B3D66373\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.13\",\"versionEndExcluding\":\"6.13.2\",\"matchCriteriaId\":\"6D4116B1-1BFD-4F23-BA84-169CC05FC5A3\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/774dd6f0f0a61c9c3848e025d7d9eeed1a7ca4cd\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/7d68c20638e50d5eb4576492a7958328ae445248\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/d659bc68ed489022ea33342cfbda2911a81e7a0d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/da2a6acc73933b7812c94794726e438cde39e037\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/eb6ffa0192ba83ece1a318b956265519c5c7dcec\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://lists.debian.org/debian-lts-announce/2025/03/msg00028.html\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\"}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-09-03T16:46:38+00:00",
      "cve": "CVE-2024-57998",
      "id": "CVE-2024-57998",
      "initial_release_date": "2024-01-01T00:00:00+00:00",
      "product_status:fixed": "303",
      "product_status:known_affected": "98",
      "product_status:known_not_affected": "90",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: OPP: add index check to assert to avoid buffer overflow in _read_freq()",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2024/cve-2024-57998.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-08-29T01:34:58Z",
      "cve": "CVE-2024-57998",
      "id": "CVE-2024-57998",
      "initial_release_date": "2025-02-28T02:23:15Z",
      "product_status:known_affected": "394",
      "product_status:known_not_affected": "439",
      "product_status:recommended": "448",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2024-57998",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2024-57998.json",
      "version": "50"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…