CVE-2025-40134

CVE-2025-40134

published November 12, 2025

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

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

dm: fix NULL pointer dereference in __dm_suspend()

There is a race condition between dm device suspend and table load that

can lead to null pointer dereference. The issue occurs when suspend is

invoked before table load completes:

BUG: kernel NULL pointer dereference, address: 0000000000000054

Oops: 0000 [#1] PREEMPT SMP PTI

CPU: 6 PID: 6798 Comm: dmsetup Not tainted 6.6.0-g7e52f5f0ca9b #62

Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.1-2.fc37 04/01/2014

RIP: 0010:blk_mq_wait_quiesce_done+0x0/0x50

Call Trace:

<TASK>

blk_mq_quiesce_queue+0x2c/0x50

dm_stop_queue+0xd/0x20

__dm_suspend+0x130/0x330

dm_suspend+0x11a/0x180

dev_suspend+0x27e/0x560

ctl_ioctl+0x4cf/0x850

dm_ctl_ioctl+0xd/0x20

vfs_ioctl+0x1d/0x50

__se_sys_ioctl+0x9b/0xc0

__x64_sys_ioctl+0x19/0x30

x64_sys_call+0x2c4a/0x4620

do_syscall_64+0x9e/0x1b0

The issue can be triggered as below:

T1 T2

dm_suspend table_load

__dm_suspend dm_setup_md_queue

dm_mq_init_request_queue

blk_mq_init_allocated_queue

=> q->mq_ops = set->ops; (1)

dm_stop_queue / dm_wait_for_completion

=> q->tag_set NULL pointer! (2)

=> q->tag_set = set; (3)

Fix this by checking if a valid table (map) exists before performing

request-based suspend and waiting for target I/O. When map is NULL,

skip these table-dependent suspend steps.

Even when map is NULL, no I/O can reach any target because there is

no table loaded; I/O submitted in this state will fail early in the

DM layer. Skipping the table-dependent suspend logic in this case

is safe and avoids NULL pointer dereferences.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00227 · 12.7th percentile
Published
2025-11-12T16:15Z
References (8)
EPSS history
Timeline
  • 12 NOV 10:23Z
    dm: fix NULL pointer dereference in __dm_suspend()
    cvelistv5