CVE-2024-56701

powerpc/pseries: Fix dtl_access_lock to be a rw_semaphore

published December 28, 2024

CVSS
—
EPSS
0%
Percentile
10.3
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

powerpc/pseries: Fix dtl_access_lock to be a rw_semaphore

The dtl_access_lock needs to be a rw_sempahore, a sleeping lock, because

the code calls kmalloc() while holding it, which can sleep:

# echo 1 > /proc/powerpc/vcpudispatch_stats

BUG: sleeping function called from invalid context at include/linux/sched/mm.h:337

in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 199, name: sh

preempt_count: 1, expected: 0

3 locks held by sh/199:

#0: c00000000a0743f8 (sb_writers#3){.+.+}-{0:0}, at: vfs_write+0x324/0x438

#1: c0000000028c7058 (dtl_enable_mutex){+.+.}-{3:3}, at: vcpudispatch_stats_write+0xd4/0x5f4

#2: c0000000028c70b8 (dtl_access_lock){+.+.}-{2:2}, at: vcpudispatch_stats_write+0x220/0x5f4

CPU: 0 PID: 199 Comm: sh Not tainted 6.10.0-rc4 #152

Hardware name: IBM pSeries (emulated by qemu) POWER9 (raw) 0x4e1202 0xf000005 of:SLOF,HEAD hv:linux,kvm pSeries

Call Trace:

dump_stack_lvl+0x130/0x148 (unreliable)

__might_resched+0x174/0x410

kmem_cache_alloc_noprof+0x340/0x3d0

alloc_dtl_buffers+0x124/0x1ac

vcpudispatch_stats_write+0x2a8/0x5f4

proc_reg_write+0xf4/0x150

vfs_write+0xfc/0x438

ksys_write+0x88/0x148

system_call_exception+0x1c4/0x5a0

system_call_common+0xf4/0x258

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00208 · 10.3th percentile
Published
2024-12-28T09:46Z
EPSS history
Timeline
  • 28 DEC 09:46Z
    powerpc/pseries: Fix dtl_access_lock to be a rw_semaphore
    cvelistv5