KernelScan.io

HIGH Introduced in 2.6.36

dm Resume Race

CVE-2026-89997

CVSS 7.8 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI7.0HIGH

01

In the Linux kernel, the following vulnerability has been resolved: dm: fix resume-vs-remove race If the user issues the resume ioctl and the remove ioctl at the same time, it may be possible that the device is resumed after it is suspended in __dm_destroy. The result is that the table is destroyed without calling the postsuspend method. Dm targets expect that they may be removed only after the postsuspend method method was called. If we break this expectation, it can cause misbehavior in various targets. For example - in the dm-integrity target, the reboot notifier is not unregistered, leading to use-after-free. Fix this bug by refusing to resume if the device is being destroyed.

02

Engine v0.6.0

Risk summary

A local attacker can race the device-mapper resume and remove ioctls to trigger a use-after-free in kernel memory. The bug exists in all supported stable branches since the original 2.6.12 import. Exploitation requires winning a narrow race window but can lead to kernel code execution or denial of service.

Affecteddrivers/md/dm.c (device-mapper)

Vulnerability analysis

When the device-mapper resume and remove operations are issued at the same time, the device can be resumed after it has already started being destroyed. This causes the mapped table to be torn down without completing the normal cleanup that target devices expect. In the dm-integrity target, for example, a callback is left registered and later dereferenced after the target's memory is freed, producing a use-after-free. The fix prevents this by refusing to resume a device that is already being destroyed. The vulnerable path is reachable by any local process with the ability to issue device-mapper ioctls.

03

BranchIntroducedFixed inPatch commit
2.62.6.35.42.6.369757367bcf1d
5.102.6.365.10.2701ede2bce2bd6
5.152.6.365.15.2213f04e6520d9a
6.12.6.366.1.18894f3d399c1dd
6.122.6.366.12.11036177beff2a9
6.182.6.366.18.5194380ecd5ff9
6.62.6.366.6.1573b59530b14fd
7.22.6.367.2.544b43ec132f1
mainline2.6.367.3—
cip/5.102.6.365.10.271-cip789757367bcf1d
cip/6.12.6.366.1.189-cip613f04e6520d9a
cip/6.1-rt2.6.366.1.189-cip61-rt323f04e6520d9a
cip/6.122.6.366.12.111-cip323b59530b14fd

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.111-cip32
cip/6.1Fixed in 6.1.189-cip61
cip/6.1-rtFixed in 6.1.189-cip61-rt32
cip/5.10Fixed in 5.10.271-cip78
cip/5.10-rtAffected — no CIP fix yet (latest 5.10.268-cip77-rt34)
cip/4.19Affected — no CIP fix yet (latest 4.19.325-cip136)
cip/4.19-rtAffected — no CIP fix yet (latest 4.19.325-cip136-rt50)
cip/4.4Affected — no CIP fix yet (latest 4.4.302-cip115)
cip/4.4-rtAffected — no CIP fix yet (latest 4.4.302-cip115-rt63)