CVE-2026-23134

slab: fix kmalloc_nolock() context check for PREEMPT_RT

published February 14, 2026

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

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

slab: fix kmalloc_nolock() context check for PREEMPT_RT

On PREEMPT_RT kernels, local_lock becomes a sleeping lock. The current

check in kmalloc_nolock() only verifies we're not in NMI or hard IRQ

context, but misses the case where preemption is disabled.

When a BPF program runs from a tracepoint with preemption disabled

(preempt_count > 0), kmalloc_nolock() proceeds to call

local_lock_irqsave() which attempts to acquire a sleeping lock,

triggering:

BUG: sleeping function called from invalid context

in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 6128

preempt_count: 2, expected: 0

Fix this by checking !preemptible() on PREEMPT_RT, which directly

expresses the constraint that we cannot take a sleeping lock when

preemption is disabled. This encompasses the previous checks for NMI

and hard IRQ contexts while also catching cases where preemption is

disabled.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00126 · 2.1th percentile
Published
2026-02-14T15:14Z
EPSS history
Timeline
  • 14 FEB 15:14Z
    slab: fix kmalloc_nolock() context check for PREEMPT_RT
    cvelistv5