CVE-2023-53031

Source
https://cve.org/CVERecord?id=CVE-2023-53031
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2023-53031.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2023-53031
Downstream
Related
Published
2025-03-27T16:43:59.607Z
Modified
2026-05-07T04:17:01.744229Z
Summary
powerpc/imc-pmu: Fix use of mutex in IRQs disabled section
Details

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

powerpc/imc-pmu: Fix use of mutex in IRQs disabled section

Current imc-pmu code triggers a WARNING with CONFIGDEBUGATOMICSLEEP and CONFIGPROVELOCKING enabled, while running a threadimc event.

Command to trigger the warning: # perf stat -e threadimc/CPMCSFROML4MEMX_DPTEG/ sleep 5

Performance counter stats for 'sleep 5':

               0      thread_imc/CPM_CS_FROM_L4_MEM_X_DPTEG/

     5.002117947 seconds time elapsed

     0.000131000 seconds user
     0.001063000 seconds sys

Below is snippet of the warning in dmesg:

BUG: sleeping function called from invalid context at kernel/locking/mutex.c:580 inatomic(): 1, irqsdisabled(): 1, nonblock: 0, pid: 2869, name: perf-exec preemptcount: 2, expected: 0 4 locks held by perf-exec/2869: #0: c00000004325c540 (&sig->credguardmutex){+.+.}-{3:3}, at: bprmexecve+0x64/0xa90 #1: c00000004325c5d8 (&sig->execupdatelock){++++}-{3:3}, at: beginnewexec+0x460/0xef0 #2: c0000003fa99d4e0 (&cpuctxlock){-...}-{2:2}, at: perfeventexec+0x290/0x510 #3: c000000017ab8418 (&ctx->lock){....}-{2:2}, at: perfeventexec+0x29c/0x510 irq event stamp: 4806 hardirqs last enabled at (4805): [<c000000000f65b94>] rawspinunlockirqrestore+0x94/0xd0 hardirqs last disabled at (4806): [<c0000000003fae44>] perfeventexec+0x394/0x510 softirqs last enabled at (0): [<c00000000013c404>] copyprocess+0xc34/0x1ff0 softirqs last disabled at (0): [<0000000000000000>] 0x0 CPU: 36 PID: 2869 Comm: perf-exec Not tainted 6.2.0-rc2-00011-g1247637727f2 #61 Hardware name: 8375-42A POWER9 0x4e1202 opal:v7.0-16-g9b85f7d961 PowerNV Call Trace: dumpstack_lvl+0x98/0xe0 (unreliable) __might_resched+0x2f8/0x310 __mutexlock+0x6c/0x13f0 threadimceventadd+0xf4/0x1b0 eventschedin+0xe0/0x210 mergeschedin+0x1f0/0x600 visitgroupsmerge.isra.92.constprop.166+0x2bc/0x6c0 ctxflexibleschedin+0xcc/0x140 ctxschedin+0x20c/0x2a0 ctxresched+0x104/0x1c0 perfeventexec+0x340/0x510 beginnewexec+0x730/0xef0 loadelfbinary+0x3f8/0x1e10 ... do not call blocking ops when !TASKRUNNING; state=2001 set at [<00000000fd63e7cf>] donanosleep+0x60/0x1a0 WARNING: CPU: 36 PID: 2869 at kernel/sched/core.c:9912 _mightsleep+0x9c/0xb0 CPU: 36 PID: 2869 Comm: sleep Tainted: G W 6.2.0-rc2-00011-g1247637727f2 #61 Hardware name: 8375-42A POWER9 0x4e1202 opal:v7.0-16-g9b85f7d961 PowerNV NIP: c000000000194a1c LR: c000000000194a18 CTR: c000000000a78670 REGS: c00000004d2134e0 TRAP: 0700 Tainted: G W (6.2.0-rc2-00011-g1247637727f2) MSR: 9000000000021033 <SF,HV,ME,IR,DR,RI,LE> CR: 48002824 XER: 00000000 CFAR: c00000000013fb64 IRQMASK: 1

The above warning triggered because the current imc-pmu code uses mutex lock in interrupt disabled sections. The function mutex_lock() internally calls _mightresched(), which will check if IRQs are disabled and in case IRQs are disabled, it will trigger the warning.

Fix the issue by changing the mutex lock to spinlock.

[mpe: Fix comments, trim oops in change log, add reported-by tags]

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/53xxx/CVE-2023-53031.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
8f95faaac56c18b32d0e23ace55417a440abdb7e
Fixed
d0c6d2a31026102d4738b47a610bed4401b9834f
Fixed
8cbeb60320ac45a8240b561c8ef466b86c34dedc
Fixed
a90d339f1f66be4a946769b565668e2bd0686dfa
Fixed
424bcb570cb320d1d15238cd4c933522b90f78fa
Fixed
76d588dddc459fefa1da96e0a081a397c5c8e216

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2023-53031.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
4.14.0
Fixed
5.4.229
Type
ECOSYSTEM
Events
Introduced
5.5.0
Fixed
5.10.164
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.89
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.1.7

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2023-53031.json"