Skip to main content

CVE-2024-49935: Vulnerability in Linux Linux

High
VulnerabilityCVE-2024-49935cvecve-2024-49935
Published: Mon Oct 21 2024 (10/21/2024, 18:01:56 UTC)
Source: CVE
Vendor/Project: Linux
Product: Linux

Description

In the Linux kernel, the following vulnerability has been resolved: ACPI: PAD: fix crash in exit_round_robin() The kernel occasionally crashes in cpumask_clear_cpu(), which is called within exit_round_robin(), because when executing clear_bit(nr, addr) with nr set to 0xffffffff, the address calculation may cause misalignment within the memory, leading to access to an invalid memory address. ---------- BUG: unable to handle kernel paging request at ffffffffe0740618 ... CPU: 3 PID: 2919323 Comm: acpi_pad/14 Kdump: loaded Tainted: G OE X --------- - - 4.18.0-425.19.2.el8_7.x86_64 #1 ... RIP: 0010:power_saving_thread+0x313/0x411 [acpi_pad] Code: 89 cd 48 89 d3 eb d1 48 c7 c7 55 70 72 c0 e8 64 86 b0 e4 c6 05 0d a1 02 00 01 e9 bc fd ff ff 45 89 e4 42 8b 04 a5 20 82 72 c0 <f0> 48 0f b3 05 f4 9c 01 00 42 c7 04 a5 20 82 72 c0 ff ff ff ff 31 RSP: 0018:ff72a5d51fa77ec8 EFLAGS: 00010202 RAX: 00000000ffffffff RBX: ff462981e5d8cb80 RCX: 0000000000000000 RDX: 0000000000000000 RSI: 0000000000000246 RDI: 0000000000000246 RBP: ff46297556959d80 R08: 0000000000000382 R09: ff46297c8d0f38d8 R10: 0000000000000000 R11: 0000000000000001 R12: 000000000000000e R13: 0000000000000000 R14: ffffffffffffffff R15: 000000000000000e FS: 0000000000000000(0000) GS:ff46297a800c0000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffffffffe0740618 CR3: 0000007e20410004 CR4: 0000000000771ee0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 PKRU: 55555554 Call Trace: ? acpi_pad_add+0x120/0x120 [acpi_pad] kthread+0x10b/0x130 ? set_kthread_struct+0x50/0x50 ret_from_fork+0x1f/0x40 ... CR2: ffffffffe0740618 crash> dis -lr ffffffffc0726923 ... /usr/src/debug/kernel-4.18.0-425.19.2.el8_7/linux-4.18.0-425.19.2.el8_7.x86_64/./include/linux/cpumask.h: 114 0xffffffffc0726918 <power_saving_thread+776>: mov %r12d,%r12d /usr/src/debug/kernel-4.18.0-425.19.2.el8_7/linux-4.18.0-425.19.2.el8_7.x86_64/./include/linux/cpumask.h: 325 0xffffffffc072691b <power_saving_thread+779>: mov -0x3f8d7de0(,%r12,4),%eax /usr/src/debug/kernel-4.18.0-425.19.2.el8_7/linux-4.18.0-425.19.2.el8_7.x86_64/./arch/x86/include/asm/bitops.h: 80 0xffffffffc0726923 <power_saving_thread+787>: lock btr %rax,0x19cf4(%rip) # 0xffffffffc0740620 <pad_busy_cpus_bits> crash> px tsk_in_cpu[14] $66 = 0xffffffff crash> px 0xffffffffc072692c+0x19cf4 $99 = 0xffffffffc0740620 crash> sym 0xffffffffc0740620 ffffffffc0740620 (b) pad_busy_cpus_bits [acpi_pad] crash> px pad_busy_cpus_bits[0] $42 = 0xfffc0 ---------- To fix this, ensure that tsk_in_cpu[tsk_index] != -1 before calling cpumask_clear_cpu() in exit_round_robin(), just as it is done in round_robin_cpu(). [ rjw: Subject edit, avoid updates to the same value ]

AI-Powered Analysis

AILast updated: 06/28/2025, 21:55:13 UTC

Technical Analysis

CVE-2024-49935 is a vulnerability identified in the Linux kernel's ACPI PAD driver, specifically related to the function exit_round_robin(). The issue arises due to improper handling of CPU masks when clearing CPU bits. The kernel occasionally crashes in the function cpumask_clear_cpu(), which is called within exit_round_robin(). The root cause is that the function clear_bit() is called with an invalid bit number (0xffffffff), leading to misaligned memory access and a kernel paging fault. This occurs because the code does not verify that the CPU index (tsk_in_cpu[tsk_index]) is valid (i.e., not -1) before attempting to clear the CPU bit. The crash manifests as a kernel panic with an invalid memory access at a specific address, as detailed in the crash logs. The vulnerability is fixed by adding a check to ensure that the CPU index is valid before calling cpumask_clear_cpu(), mirroring the existing check in the related round_robin_cpu() function. This bug affects Linux kernel versions including 4.18.0-425.19.2.el8_7.x86_64 and potentially other versions with similar ACPI PAD implementations. The vulnerability can cause system instability and crashes, impacting availability. There is no indication that this vulnerability can be exploited to execute arbitrary code or escalate privileges directly, but the kernel crash can lead to denial of service. No known exploits are reported in the wild as of the publication date. The vulnerability is technical and requires kernel-level access or conditions to trigger the crash, likely involving specific ACPI PAD driver activity and CPU scheduling operations.

Potential Impact

For European organizations, this vulnerability primarily poses a risk to system availability. Linux is widely used across European enterprises, public sector institutions, and cloud service providers. Systems running affected kernel versions, especially those using ACPI PAD drivers (common in power management and CPU scheduling), may experience unexpected kernel crashes leading to downtime or service interruptions. This can affect critical infrastructure, data centers, and enterprise servers. While the vulnerability does not appear to allow privilege escalation or data breaches directly, denial of service in production environments can disrupt business operations, cause financial loss, and impact service level agreements. Organizations relying on Linux-based systems for critical workloads, including telecommunications, finance, healthcare, and government services, are at risk if patches are not applied promptly. The vulnerability also affects embedded Linux systems and devices using affected kernels, which may be part of industrial control systems or IoT deployments in Europe, further broadening the impact scope.

Mitigation Recommendations

Organizations should prioritize updating their Linux kernels to versions where this vulnerability is patched. Specifically, ensure that the kernel includes the fix that adds validation of the CPU index before calling cpumask_clear_cpu() in exit_round_robin(). For environments where immediate kernel upgrades are challenging, consider the following mitigations: 1) Disable or limit ACPI PAD driver usage if feasible, especially on systems where power management features are not critical. 2) Monitor kernel logs for signs of crashes related to cpumask_clear_cpu() or exit_round_robin() to detect potential exploitation or triggering conditions. 3) Implement robust system monitoring and automated reboot mechanisms to minimize downtime caused by kernel panics. 4) Use kernel live patching solutions where available to apply fixes without full system reboots. 5) Conduct thorough testing of kernel updates in staging environments to ensure compatibility and stability before deployment. 6) Harden access controls to limit kernel-level access to trusted administrators only, reducing the risk of intentional triggering of the vulnerability.

Need more detailed analysis?Get Pro

Technical Details

Data Version
5.1
Assigner Short Name
Linux
Date Reserved
2024-10-21T12:17:06.042Z
Cisa Enriched
true
Cvss Version
null
State
PUBLISHED

Threat ID: 682d9826c4522896dcbe0a6a

Added to database: 5/21/2025, 9:08:54 AM

Last enriched: 6/28/2025, 9:55:13 PM

Last updated: 8/10/2025, 5:39:48 AM

Views: 14

Actions

PRO

Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.

Please log in to the Console to use AI analysis features.

Need enhanced features?

Contact root@offseq.com for Pro access with improved analysis and higher rate limits.

Latest Threats