CVE-2026-53061

dm cache: fix dirty mapping checking in passthrough mode switching

published June 24, 2026

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

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

dm cache: fix dirty mapping checking in passthrough mode switching

As mentioned in commit 9b1cc9f251af ("dm cache: share cache-metadata

object across inactive and active DM tables"), dm-cache assumed table

reload occurs after suspension, while LVM's table preload breaks this

assumption. The dirty mapping check for passthrough mode was designed

around this assumption and is performed during table creation, causing

the check to fail with preload while metadata updates are ongoing. This

risks loading dirty mappings into passthrough mode, resulting in data

loss.

Reproduce steps:

1. Create a writeback cache with zero migration_threshold to produce

dirty mappings

dmsetup create cmeta --table "0 8192 linear /dev/sdc 0"

dmsetup create cdata --table "0 131072 linear /dev/sdc 8192"

dmsetup create corig --table "0 262144 linear /dev/sdc 262144"

dd if=/dev/zero of=/dev/mapper/cmeta bs=4k count=1 oflag=direct

dmsetup create cache --table "0 262144 cache /dev/mapper/cmeta \

/dev/mapper/cdata /dev/mapper/corig 128 2 metadata2 writeback smq \

2 migration_threshold 0"

2. Preload a table in passthrough mode

dmsetup reload cache --table "0 262144 cache /dev/mapper/cmeta \

/dev/mapper/cdata /dev/mapper/corig 128 2 metadata2 passthrough smq 0"

3. Write to the first cache block to make it dirty

fio --filename=/dev/mapper/cache --name=populate --rw=write --bs=4k \

--direct=1 --size=64k

4. Resume the inactive table. Now it's possible to load the dirty block

into passthrough mode.

dmsetup resume cache

Fix by moving the checks to the preresume phase to support table

preloading. Also remove the unused function dm_cache_metadata_all_clean.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00123 · 1.9th percentile
Published
2026-06-24T16:30Z
EPSS history
Timeline
  • 24 JUN 16:30Z
    dm cache: fix dirty mapping checking in passthrough mode switching
    cvelistv5