CVE-2024-49935

Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
21/10/2024
Last modified:
03/11/2025

Description

In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> ACPI: PAD: fix crash in exit_round_robin()<br /> <br /> The kernel occasionally crashes in cpumask_clear_cpu(), which is called<br /> within exit_round_robin(), because when executing clear_bit(nr, addr) with<br /> nr set to 0xffffffff, the address calculation may cause misalignment within<br /> the memory, leading to access to an invalid memory address.<br /> <br /> ----------<br /> BUG: unable to handle kernel paging request at ffffffffe0740618<br /> ...<br /> 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<br /> ...<br /> RIP: 0010:power_saving_thread+0x313/0x411 [acpi_pad]<br /> 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 48 0f b3 05 f4 9c 01 00 42 c7 04 a5 20 82 72 c0 ff ff ff ff 31<br /> RSP: 0018:ff72a5d51fa77ec8 EFLAGS: 00010202<br /> RAX: 00000000ffffffff RBX: ff462981e5d8cb80 RCX: 0000000000000000<br /> RDX: 0000000000000000 RSI: 0000000000000246 RDI: 0000000000000246<br /> RBP: ff46297556959d80 R08: 0000000000000382 R09: ff46297c8d0f38d8<br /> R10: 0000000000000000 R11: 0000000000000001 R12: 000000000000000e<br /> R13: 0000000000000000 R14: ffffffffffffffff R15: 000000000000000e<br /> FS: 0000000000000000(0000) GS:ff46297a800c0000(0000) knlGS:0000000000000000<br /> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033<br /> CR2: ffffffffe0740618 CR3: 0000007e20410004 CR4: 0000000000771ee0<br /> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000<br /> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400<br /> PKRU: 55555554<br /> Call Trace:<br /> ? acpi_pad_add+0x120/0x120 [acpi_pad]<br /> kthread+0x10b/0x130<br /> ? set_kthread_struct+0x50/0x50<br /> ret_from_fork+0x1f/0x40<br /> ...<br /> CR2: ffffffffe0740618<br /> <br /> crash&gt; dis -lr ffffffffc0726923<br /> ...<br /> /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<br /> 0xffffffffc0726918 : mov %r12d,%r12d<br /> /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<br /> 0xffffffffc072691b : mov -0x3f8d7de0(,%r12,4),%eax<br /> /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<br /> 0xffffffffc0726923 : lock btr %rax,0x19cf4(%rip) # 0xffffffffc0740620 <br /> <br /> crash&gt; px tsk_in_cpu[14]<br /> $66 = 0xffffffff<br /> <br /> crash&gt; px 0xffffffffc072692c+0x19cf4<br /> $99 = 0xffffffffc0740620<br /> <br /> crash&gt; sym 0xffffffffc0740620<br /> ffffffffc0740620 (b) pad_busy_cpus_bits [acpi_pad]<br /> <br /> crash&gt; px pad_busy_cpus_bits[0]<br /> $42 = 0xfffc0<br /> ----------<br /> <br /> To fix this, ensure that tsk_in_cpu[tsk_index] != -1 before calling<br /> cpumask_clear_cpu() in exit_round_robin(), just as it is done in<br /> round_robin_cpu().<br /> <br /> [ rjw: Subject edit, avoid updates to the same value ]

Vulnerable products and versions

CPE From Up to
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.15.168 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (including) 6.1.113 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (including) 6.6.55 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (including) 6.10.14 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.11 (including) 6.11.3 (excluding)