Cloudanix VulnDB

CVE-2024-49935

None

CVSS

—

EPSS

0.2%

Published

Oct 21, 2024

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A bug in Linux power-management code can cause the whole computer to crash when certain hardware power-saving features are used.

Exploitation
Local Privilege
Attacker needs
Low Privilege
Complexity
Moderate
Impact
Denial Of Service
Component
OS kernel
Class
Memory Corruption
Remediation
Patch
Effort
Medium
Patch risk
Low

What it actually does

Invalid CPU index value of 0xffffffff passed to cpumask_clear_cpu() inside exit_round_robin() in the acpi_pad driver causes clear_bit() to compute an out-of-bounds address, resulting in a kernel paging fault and crash.

Why it matters to the business

Unexpected kernel crashes on Linux systems that load the acpi_pad module can cause unplanned downtime, service interruption, and require manual recovery or reboot.

How an attack unfolds

An attacker with the ability to influence ACPI PAD power-saving thread scheduling (for example via repeated CPU hotplug or power-management events) can cause tsk_in_cpu[tsk_index] to remain -1 when exit_round_robin() runs; the subsequent unconditional cpumask_clear_cpu() then dereferences an invalid address and panics the kernel. No remote code execution is involved; the flaw produces denial-of-service via crash.

How to fix it

Upgrade the Linux kernel to a revision containing commit 82191a21a0dedc8c64e14f07f5d568d09bc4b331 or later; rebuild and reboot with the patched kernel. Where package managers provide it, install the fixed mariadb-connector-c package version 3.1.11-2.el8_3 or newer if that component is present.

How to confirm the fix worked

Verify the running kernel contains commit 82191a21a0dedc8c64e14f07f5d568d09bc4b331 (uname -r or /proc/version_signature); reproduce ACPI PAD load/unload cycles under CPU hotplug stress and confirm absence of the paging fault at ffffffffe0740618 or equivalent.

Typical attack path

  1. Trigger conditions that activate the acpi_pad power_saving_thread
  2. Leave tsk_in_cpu entry at 0xffffffff instead of a valid CPU number
  3. Invoke exit_round_robin() which calls cpumask_clear_cpu(-1)
  4. clear_bit() performs misaligned memory access leading to page fault
  5. Kernel oops/panic terminates the system

How to detect it

Search kernel logs and kdump vmcores for the strings power_saving_thread, exit_round_robin, pad_busy_cpus_bits, and the RIP address corresponding to clear_bit on an all-ones index; correlate with acpi_pad module load events and CPU mask operations that contain 0xffffffff.

  • power_saving_thread+0x313
  • pad_busy_cpus_bits
  • tsk_in_cpu
  • ffffffffc0726923
  • acpi_pad/.*Kdump
  • BUG: unable to handle kernel paging request at ffffffffe0740618

What your security team should do

  • Apply the fixed kernel commit or updated package within the next maintenance window
  • Monitor kernel logs for acpi_pad oops signatures until all systems are patched
  • Disable the acpi_pad module via modprobe.blacklist if the workload permits and risk tolerance requires immediate mitigation

The record

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 ]

Affected packages

Ecosystem Package Introduced Fixed
Debian:11 linux 0 No fix
Debian:11 linux-6.1 0 6.1.119-1~deb11u1
Debian:12 linux 0 No fix
Debian:13 linux 0 No fix
Debian:13 linux 0 6.11.4-1
Linux Kernel 0 5.4.296
Linux Kernel 2.6.32 5.4.296
Mageia:9 kernel 0 6.6.58-2.mga9
Mageia:9 kernel-firmware 0 20240909-1.mga9
Mageia:9 kernel-firmware-nonfree 0 20240909-1.mga9.nonfree
Mageia:9 kernel-linus 0 6.6.58-2.mga9
Mageia:9 kmod-virtualbox 0 7.0.20-57.mga9
Mageia:9 kmod-xtables-addons 0 3.24-65.mga9
Mageia:9 radeon-firmware 0 20240909-1.mga9.nonfree
SUSE:Linux Enterprise High Availability Extension 15 SP5 kernel-default 0 5.14.21-150500.55.88.1
SUSE:Linux Enterprise High Availability Extension 15 SP6 kernel-default 0 6.4.0-150600.23.30.1
SUSE:Linux Enterprise Live Patching 12 SP5 kernel-default 0 4.12.14-122.255.1
SUSE:Linux Enterprise Live Patching 12 SP5 kgraft-patch-SLE12-SP5_Update_67 0 1-8.5.1
SUSE:Linux Enterprise Live Patching 15 SP5 kernel-default 0 5.14.21-150500.55.88.1
SUSE:Linux Enterprise Live Patching 15 SP5 kernel-livepatch-SLE15-SP5-RT_Update_23 0 1-150500.11.3.1
SUSE:Linux Enterprise Live Patching 15 SP5 kernel-livepatch-SLE15-SP5_Update_21 0 1-150500.11.5.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-default 0 6.4.0-150600.23.30.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_5 0 1-150600.1.3.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_6 0 1-150600.13.3.5
SUSE:Linux Enterprise Micro 5.5 kernel-default 0 5.14.21-150500.55.88.1
SUSE:Linux Enterprise Micro 5.5 kernel-default-base 0 5.14.21-150500.55.88.1.150500.6.39.4
SUSE:Linux Enterprise Micro 5.5 kernel-rt 0 5.14.21-150500.13.79.1
SUSE:Linux Enterprise Micro 5.5 kernel-source-rt 0 5.14.21-150500.13.79.1
SUSE:Linux Enterprise Module for Basesystem 15 SP5 kernel-64kb 0 5.14.21-150500.55.88.1
SUSE:Linux Enterprise Module for Basesystem 15 SP5 kernel-default 0 5.14.21-150500.55.88.1
SUSE:Linux Enterprise Module for Basesystem 15 SP5 kernel-default-base 0 5.14.21-150500.55.88.1.150500.6.39.4
SUSE:Linux Enterprise Module for Basesystem 15 SP5 kernel-source 0 5.14.21-150500.55.88.1
SUSE:Linux Enterprise Module for Basesystem 15 SP5 kernel-zfcpdump 0 5.14.21-150500.55.88.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-64kb 0 6.4.0-150600.23.30.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default 0 6.4.0-150600.23.30.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default-base 0 6.4.0-150600.23.30.1.150600.12.12.6
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-source 0 6.4.0-150600.23.30.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-zfcpdump 0 6.4.0-150600.23.30.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-coco 0 6.4.0-15061.9.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-coco_debug 0 6.4.0-15061.9.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-source-coco 0 6.4.0-15061.9.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-syms-coco 0 6.4.0-15061.9.coco15sp6.1
SUSE:Linux Enterprise Module for Development Tools 15 SP5 kernel-docs 0 5.14.21-150500.55.88.1
SUSE:Linux Enterprise Module for Development Tools 15 SP5 kernel-obs-build 0 5.14.21-150500.55.88.1
SUSE:Linux Enterprise Module for Development Tools 15 SP5 kernel-source 0 5.14.21-150500.55.88.1
SUSE:Linux Enterprise Module for Development Tools 15 SP5 kernel-syms 0 5.14.21-150500.55.88.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-docs 0 6.4.0-150600.23.30.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-obs-build 0 6.4.0-150600.23.30.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-source 0 6.4.0-150600.23.30.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-syms 0 6.4.0-150600.23.30.1
SUSE:Linux Enterprise Module for Legacy 15 SP5 kernel-default 0 5.14.21-150500.55.88.1
SUSE:Linux Enterprise Module for Legacy 15 SP6 kernel-default 0 6.4.0-150600.23.30.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP5 kernel-azure 0 5.14.21-150500.33.75.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP5 kernel-source-azure 0 5.14.21-150500.33.75.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP5 kernel-syms-azure 0 5.14.21-150500.33.75.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-azure 0 6.4.0-150600.8.17.2
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-source-azure 0 6.4.0-150600.8.17.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-syms-azure 0 6.4.0-150600.8.17.1
SUSE:Linux Enterprise Server 12 SP5-LTSS kernel-default 0 4.12.14-122.255.1
SUSE:Linux Enterprise Server 12 SP5-LTSS kernel-source 0 4.12.14-122.255.1
SUSE:Linux Enterprise Server 12 SP5-LTSS kernel-syms 0 4.12.14-122.255.1
SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 kernel-default 0 4.12.14-122.255.1
SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 kernel-source 0 4.12.14-122.255.1
SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 kernel-syms 0 4.12.14-122.255.1
SUSE:Linux Enterprise Workstation Extension 15 SP6 kernel-default 0 6.4.0-150600.23.30.1
SUSE:Real Time Module 15 SP5 kernel-rt 0 5.14.21-150500.13.79.1
SUSE:Real Time Module 15 SP5 kernel-rt_debug 0 5.14.21-150500.13.79.1
SUSE:Real Time Module 15 SP5 kernel-source-rt 0 5.14.21-150500.13.79.1
SUSE:Real Time Module 15 SP5 kernel-syms-rt 0 5.14.21-150500.13.79.1
SUSE:Real Time Module 15 SP6 kernel-rt 0 6.4.0-150600.10.17.1
SUSE:Real Time Module 15 SP6 kernel-rt_debug 0 6.4.0-150600.10.17.1
SUSE:Real Time Module 15 SP6 kernel-source-rt 0 6.4.0-150600.10.17.1
SUSE:Real Time Module 15 SP6 kernel-syms-rt 0 6.4.0-150600.10.17.1
Ubuntu:20.04:LTS linux-aws-5.15 0 5.15.0-1073.79~20.04.1
Ubuntu:20.04:LTS linux-azure-5.15 0 5.15.0-1078.87~20.04.1
Ubuntu:20.04:LTS linux-gcp-5.15 0 5.15.0-1072.80~20.04.1
Ubuntu:20.04:LTS linux-hwe-5.15 0 5.15.0-127.137~20.04.1
Ubuntu:20.04:LTS linux-ibm-5.15 0 5.15.0-1066.69~20.04.1
Ubuntu:20.04:LTS linux-intel-iotg-5.15 0 5.15.0-1071.77~20.04.1
Ubuntu:20.04:LTS linux-lowlatency-hwe-5.15 0 5.15.0-127.137~20.04.1
Ubuntu:20.04:LTS linux-oracle-5.15 0 5.15.0-1071.77~20.04.1
Ubuntu:22.04:LTS linux 0 5.15.0-127.137
Ubuntu:22.04:LTS linux-aws 0 5.15.0-1073.79
Ubuntu:22.04:LTS linux-azure 0 5.15.0-1078.87
Ubuntu:22.04:LTS linux-gcp 0 5.15.0-1072.80
Ubuntu:22.04:LTS linux-gke 0 5.15.0-1070.76
Ubuntu:22.04:LTS linux-gkeop 0 5.15.0-1056.63
Ubuntu:22.04:LTS linux-ibm 0 5.15.0-1066.69
Ubuntu:22.04:LTS linux-intel-iotg 0 5.15.0-1071.77
Ubuntu:22.04:LTS linux-kvm 0 5.15.0-1070.75
Ubuntu:22.04:LTS linux-lowlatency 0 5.15.0-127.137
Ubuntu:22.04:LTS linux-nvidia 0 5.15.0-1068.69
Ubuntu:22.04:LTS linux-oracle 0 5.15.0-1071.77
Ubuntu:22.04:LTS linux-raspi 0 5.15.0-1066.69
Ubuntu:22.04:LTS linux-xilinx-zynqmp 0 5.15.0-1039.43
Ubuntu:24.10 linux 0 6.11.0-18.18
Ubuntu:24.10 linux-aws 0 6.11.0-1009.10
Ubuntu:24.10 linux-azure 0 6.11.0-1009.9
Ubuntu:24.10 linux-gcp 0 6.11.0-1009.9
Ubuntu:24.10 linux-lowlatency 0 6.11.0-1010.11
Ubuntu:24.10 linux-oracle 0 6.11.0-1011.12
Ubuntu:24.10 linux-raspi 0 6.11.0-1008.8
Ubuntu:24.10 linux-realtime 0 6.11.0-1005.5
openSUSE:Leap 15.5 kernel-azure 0 5.14.21-150500.33.75.1
openSUSE:Leap 15.5 kernel-rt 0 5.14.21-150500.13.79.1
openSUSE:Leap 15.5 kernel-rt_debug 0 5.14.21-150500.13.79.1
openSUSE:Leap 15.5 kernel-source-azure 0 5.14.21-150500.33.75.1
openSUSE:Leap 15.5 kernel-source-rt 0 5.14.21-150500.13.79.1
openSUSE:Leap 15.5 kernel-syms-azure 0 5.14.21-150500.33.75.1
openSUSE:Leap 15.5 kernel-syms-rt 0 5.14.21-150500.13.79.1
openSUSE:Leap 15.6 dtb-aarch64 0 6.4.0-150600.23.30.1
openSUSE:Leap 15.6 kernel-64kb 0 6.4.0-150600.23.30.1
openSUSE:Leap 15.6 kernel-azure 0 6.4.0-150600.8.17.2
openSUSE:Leap 15.6 kernel-debug 0 6.4.0-150600.23.30.1
openSUSE:Leap 15.6 kernel-default 0 6.4.0-150600.23.30.1
openSUSE:Leap 15.6 kernel-default-base 0 6.4.0-150600.23.30.1.150600.12.12.6
openSUSE:Leap 15.6 kernel-docs 0 6.4.0-150600.23.30.1
openSUSE:Leap 15.6 kernel-kvmsmall 0 6.4.0-150600.23.30.1
openSUSE:Leap 15.6 kernel-obs-build 0 6.4.0-150600.23.30.1
openSUSE:Leap 15.6 kernel-obs-qa 0 6.4.0-150600.23.30.1
openSUSE:Leap 15.6 kernel-rt 0 6.4.0-150600.10.17.1
openSUSE:Leap 15.6 kernel-rt_debug 0 6.4.0-150600.10.17.1
openSUSE:Leap 15.6 kernel-source 0 6.4.0-150600.23.30.1
openSUSE:Leap 15.6 kernel-source-azure 0 6.4.0-150600.8.17.1
openSUSE:Leap 15.6 kernel-source-rt 0 6.4.0-150600.10.17.1
openSUSE:Leap 15.6 kernel-syms 0 6.4.0-150600.23.30.1
openSUSE:Leap 15.6 kernel-syms-azure 0 6.4.0-150600.8.17.1
openSUSE:Leap 15.6 kernel-syms-rt 0 6.4.0-150600.10.17.1
openSUSE:Leap 15.6 kernel-zfcpdump 0 6.4.0-150600.23.30.1
openSUSE:Leap Micro 5.5 kernel-rt 0 5.14.21-150500.13.79.1
openSUSE:Tumbleweed kernel-source 0 6.11.8-1.1
openSUSE:Tumbleweed kernel-source-longterm 0 6.12.11-1.1

Related vulnerabilities