CVE-2026-46029

mm/slab: return NULL early from kmalloc_nolock() in NMI on UP

High · published May 27, 2026

CVSS v3.1
7.0
EPSS
0%
Percentile
4.1
In the wild
Unconfirmed
What it is

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

mm/slab: return NULL early from kmalloc_nolock() in NMI on UP

On UP kernels (!CONFIG_SMP), spin_trylock() is a no-op that

unconditionally succeeds even when the lock is already held. As a

result, kmalloc_nolock() called from NMI context can re-enter the slab

allocator and acquire n->list_lock that the interrupted context is

already holding, corrupting slab state.

With CONFIG_DEBUG_SPINLOCK on UP, the following BUG is triggered with

the slub_kunit test module:

BUG: spinlock trylock failure on UP on CPU#0, kunit_try_catch/243

[...]

Call Trace:

<NMI>

dump_stack_lvl+0x3f/0x60

do_raw_spin_trylock+0x41/0x50

_raw_spin_trylock+0x24/0x50

get_from_partial_node+0x120/0x4d0

___slab_alloc+0x8a/0x4c0

kmalloc_nolock_noprof+0x164/0x310

[...]

</NMI>

Fix this by returning NULL early when invoked from NMI on a UP kernel.

The record
Technical detail
CVSS v3.1
7.0 · HIGH
Vector
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00153 · 4.1th percentile
Published
2026-05-27T12:56Z
EPSS history
Timeline
  • 27 MAY 12:56Z
    mm/slab: return NULL early from kmalloc_nolock() in NMI on UP
    cvelistv5