CVE-2024-57998
NoneCVSS
—
EPSS
0.2%
Published
Feb 27, 2025
CISA due date
—
Cloudanix analysis
A coding mistake in the Linux kernel could let a program running on the computer read or damage internal memory structures, potentially letting an attacker take full control of the machine.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Privilege Gain
- Component
- OS kernel
- Class
- Buffer Overflow
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Missing index validation in OPP _read_freq() allows out-of-bounds read from opp->rates[] when called via indexed dev_pm_opp_find_freq_* functions, creating a potential buffer overflow condition.
Why it matters to the business
Kernel memory corruption risk on systems using dynamic OPP frequency selection can lead to crashes, denial of service, or local privilege escalation; high ecosystem prevalence of Linux kernel increases exposure for servers, embedded devices, and cloud workloads.
How an attack unfolds
An attacker with local access crafts calls to the indexed OPP lookup functions supplying an out-of-range frequency index, bypassing prior bounds checks and triggering the unsafe read in _read_freq() to corrupt adjacent kernel memory or leak data for further escalation.
How to fix it
Update Linux kernel to commit 774dd6f0f0a61c9c3848e025d7d9eeed1a7ca4cd or later stable releases containing the index check addition; apply vendor backports for supported distributions.
How to confirm the fix worked
Verify kernel source contains assert_clk_index() call in _read_freq() and that indexed find functions pass the frequency index; confirm running kernel version includes the referenced commit via git describe or package changelog.
Typical attack path
- Obtain local code execution or shell on target system
- Trigger OPP frequency lookup via indexed API paths (dev_pm_opp_find_freq_exact_indexed, ceil/floor_indexed)
- Supply crafted index exceeding opp->rates[] table size
- Exploit resulting out-of-bounds read for memory corruption or information leak
- Escalate to kernel privileges or cause denial of service
How to detect it
Review kernel logs for unexpected OPP-related warnings or crashes around frequency lookups; correlate with process execution of tools exercising PM_OPP interfaces; examine for post-exploitation artifacts typical of Linux kernel privilege-escalation campaigns.
What your security team should do
- Prioritize kernel updates on all production Linux systems within standard patch windows
- Monitor for similar index-validation issues in other OPP or PM code paths
- Restrict untrusted local code execution where possible until patched
The record
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.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:9 | kernel | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-64k | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-64k-core | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-64k-debug | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-64k-debug-core | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-64k-debug-devel | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-64k-debug-devel-matched | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-64k-debug-modules | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-64k-debug-modules-core | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-64k-debug-modules-extra | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-64k-devel | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-64k-devel-matched | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-64k-modules | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-64k-modules-core | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-64k-modules-extra | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-abi-stablelists | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-core | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-cross-headers | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-debug | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-debug-core | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-debug-devel | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-debug-devel-matched | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-debug-modules | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-debug-modules-core | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-debug-modules-extra | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-debug-uki-virt | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-devel | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-devel-matched | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-doc | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-headers | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-modules | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-modules-core | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-modules-extra | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-64k | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-64k-core | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-64k-debug | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-64k-debug-core | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-64k-debug-devel | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-64k-debug-modules | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-64k-debug-modules-core | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-64k-debug-modules-extra | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-64k-devel | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-64k-modules | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-64k-modules-core | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-64k-modules-extra | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-core | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-debug | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-debug-core | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-debug-devel | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-debug-modules | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-debug-modules-core | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-debug-modules-extra | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-devel | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-modules | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-modules-core | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-rt-modules-extra | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-tools | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-tools-libs | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-tools-libs-devel | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-uki-virt | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-uki-virt-addons | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-zfcpdump | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-zfcpdump-core | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-zfcpdump-devel | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-zfcpdump-devel-matched | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-zfcpdump-modules | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-zfcpdump-modules-core | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | kernel-zfcpdump-modules-extra | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | libperf | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | perf | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | python3-perf | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | rtla | 0 | 5.14.0-611.5.1.el9_7 |
| AlmaLinux:9 | rv | 0 | 5.14.0-611.5.1.el9_7 |
| Debian:11 | linux-6.1 | 0 | 6.1.129-1~deb11u1 |
| Debian:12 | linux | 0 | No fix |
| Debian:13 | linux | 0 | No fix |
| Debian:13 | linux | 0 | 6.12.13-1 |
| Linux | Kernel | 6.6.0 | 6.6.76 |
| SUSE:Linux Enterprise High Availability Extension 15 SP6 | kernel-default | 0 | 6.4.0-150600.23.50.1 |
| SUSE:Linux Enterprise High Availability Extension 15 SP7 | kernel-default | 0 | 6.4.0-150700.53.3.1 |
| SUSE:Linux Enterprise Live Patching 15 SP6 | kernel-default | 0 | 6.4.0-150600.23.50.1 |
| SUSE:Linux Enterprise Live Patching 15 SP6 | kernel-livepatch-SLE15-SP6-RT_Update_11 | 0 | 1-150600.1.3.2 |
| SUSE:Linux Enterprise Live Patching 15 SP6 | kernel-livepatch-SLE15-SP6_Update_11 | 0 | 1-150600.13.3.1 |
| SUSE:Linux Enterprise Live Patching 15 SP7 | kernel-default | 0 | 6.4.0-150700.53.3.1 |
| SUSE:Linux Enterprise Live Patching 15 SP7 | kernel-livepatch-SLE15-SP7_Update_1 | 0 | 1-150700.15.3.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | kernel-64kb | 0 | 6.4.0-150600.23.50.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | kernel-default | 0 | 6.4.0-150600.23.50.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | kernel-default-base | 0 | 6.4.0-150600.23.50.1.150600.12.22.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | kernel-source | 0 | 6.4.0-150600.23.50.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | kernel-zfcpdump | 0 | 6.4.0-150600.23.50.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP7 | kernel-64kb | 0 | 6.4.0-150700.53.3.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP7 | kernel-default | 0 | 6.4.0-150700.53.3.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP7 | kernel-default-base | 0 | 6.4.0-150700.53.3.1.150700.17.2.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP7 | kernel-source | 0 | 6.4.0-150700.53.3.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP7 | kernel-zfcpdump | 0 | 6.4.0-150700.53.3.1 |
| SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 | kernel-coco | 0 | 6.4.0-15061.21.coco15sp6.1 |
| SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 | kernel-coco_debug | 0 | 6.4.0-15061.21.coco15sp6.1 |
| SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 | kernel-source-coco | 0 | 6.4.0-15061.21.coco15sp6.1 |
| SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 | kernel-syms-coco | 0 | 6.4.0-15061.21.coco15sp6.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP6 | kernel-docs | 0 | 6.4.0-150600.23.50.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP6 | kernel-obs-build | 0 | 6.4.0-150600.23.50.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP6 | kernel-source | 0 | 6.4.0-150600.23.50.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP6 | kernel-syms | 0 | 6.4.0-150600.23.50.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP7 | kernel-docs | 0 | 6.4.0-150700.53.3.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP7 | kernel-obs-build | 0 | 6.4.0-150700.53.3.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP7 | kernel-source | 0 | 6.4.0-150700.53.3.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP7 | kernel-syms | 0 | 6.4.0-150700.53.3.1 |
| SUSE:Linux Enterprise Module for Legacy 15 SP6 | kernel-default | 0 | 6.4.0-150600.23.50.1 |
| SUSE:Linux Enterprise Module for Legacy 15 SP7 | kernel-default | 0 | 6.4.0-150700.53.3.1 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP6 | kernel-azure | 0 | 6.4.0-150600.8.37.1 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP6 | kernel-source-azure | 0 | 6.4.0-150600.8.37.1 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP6 | kernel-syms-azure | 0 | 6.4.0-150600.8.37.1 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP7 | kernel-azure | 0 | 6.4.0-150700.20.3.1 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP7 | kernel-source-azure | 0 | 6.4.0-150700.20.3.1 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP7 | kernel-syms-azure | 0 | 6.4.0-150700.20.3.1 |
| SUSE:Linux Enterprise Workstation Extension 15 SP6 | kernel-default | 0 | 6.4.0-150600.23.50.1 |
| SUSE:Linux Enterprise Workstation Extension 15 SP7 | kernel-default | 0 | 6.4.0-150700.53.3.1 |
| SUSE:Real Time Module 15 SP6 | kernel-rt | 0 | 6.4.0-150600.10.39.1 |
| SUSE:Real Time Module 15 SP6 | kernel-rt_debug | 0 | 6.4.0-150600.10.39.1 |
| SUSE:Real Time Module 15 SP6 | kernel-source-rt | 0 | 6.4.0-150600.10.39.1 |
| SUSE:Real Time Module 15 SP6 | kernel-syms-rt | 0 | 6.4.0-150600.10.39.1 |
| Ubuntu:24.10 | linux-aws | 0 | 6.11.0-1014.15 |
| openSUSE:Leap 15.6 | dtb-aarch64 | 0 | 6.4.0-150600.23.50.1 |
| openSUSE:Leap 15.6 | kernel-64kb | 0 | 6.4.0-150600.23.50.1 |
| openSUSE:Leap 15.6 | kernel-azure | 0 | 6.4.0-150600.8.37.1 |
| openSUSE:Leap 15.6 | kernel-debug | 0 | 6.4.0-150600.23.50.1 |
| openSUSE:Leap 15.6 | kernel-default | 0 | 6.4.0-150600.23.50.1 |
| openSUSE:Leap 15.6 | kernel-default-base | 0 | 6.4.0-150600.23.50.1.150600.12.22.1 |
| openSUSE:Leap 15.6 | kernel-docs | 0 | 6.4.0-150600.23.50.1 |
| openSUSE:Leap 15.6 | kernel-kvmsmall | 0 | 6.4.0-150600.23.50.1 |
| openSUSE:Leap 15.6 | kernel-obs-build | 0 | 6.4.0-150600.23.50.1 |
| openSUSE:Leap 15.6 | kernel-obs-qa | 0 | 6.4.0-150600.23.50.1 |
| openSUSE:Leap 15.6 | kernel-rt | 0 | 6.4.0-150600.10.39.1 |
| openSUSE:Leap 15.6 | kernel-rt_debug | 0 | 6.4.0-150600.10.39.1 |
| openSUSE:Leap 15.6 | kernel-source | 0 | 6.4.0-150600.23.50.1 |
| openSUSE:Leap 15.6 | kernel-source-azure | 0 | 6.4.0-150600.8.37.1 |
| openSUSE:Leap 15.6 | kernel-source-rt | 0 | 6.4.0-150600.10.39.1 |
| openSUSE:Leap 15.6 | kernel-syms | 0 | 6.4.0-150600.23.50.1 |
| openSUSE:Leap 15.6 | kernel-syms-azure | 0 | 6.4.0-150600.8.37.1 |
| openSUSE:Leap 15.6 | kernel-syms-rt | 0 | 6.4.0-150600.10.39.1 |
| openSUSE:Leap 15.6 | kernel-zfcpdump | 0 | 6.4.0-150600.23.50.1 |
Related vulnerabilities
- CVE-2025-68285 In the Linux kernel, the following vulnerability has been resolved: libceph: fix… Also affects kernel
- CVE-2025-68287 In the Linux kernel, the following vulnerability has been resolved: usb: dwc3: Fix race… Also affects kernel
- CVE-2025-40277 In the Linux kernel, the following vulnerability has been resolved: drm/vmwgfx: Validate… Also affects kernel
- CVE-2025-40240 In the Linux kernel, the following vulnerability has been resolved: sctp: avoid NULL… Also affects kernel
- CVE-2025-40185 In the Linux kernel, the following vulnerability has been resolved: ice: ice_adapter… Also affects kernel
- CVE-2025-40176 In the Linux kernel, the following vulnerability has been resolved: tls: wait for pending… Also affects kernel
- CVE-2025-40058 In the Linux kernel, the following vulnerability has been resolved: iommu/vt-d: Disallow… Also affects kernel
- CVE-2025-39981 In the Linux kernel, the following vulnerability has been resolved: Bluetooth: MGMT: Fix… Also affects kernel