Direct naar de inhoud
Kritieke cyberalerts voor jouw sector & systemen — direct in je inbox. Aanmelden →
CVE's Videos Dagbriefing

← Terug naar CVE-database

CVE-2026-53061

MEDIUM · 5.5 CVSS Gepubliceerd:

Beschrijving NL

In de Linux kernel is de volgende kwetsbaarheid verholpen:

dm-cache: corrigeer vuile mappingcontrole in passthrough-modus schakelen

Zoals vermeld in commit 9b1cc9f251af ("dm cache: share cache-metadata
object in inactieve en actieve DM-tabellen "), dm-cache veronderstelde tabel
herladen treedt op na opschorting, terwijl LVM's tabelvoorbelasting dit breekt
veronderstelling. De vuile mappingcontrole voor passthrough-modus is ontworpen
rond deze veronderstelling en wordt uitgevoerd tijdens het maken van tabellen, waardoor
de controle om te mislukken met vooraf laden terwijl metadata-updates aan de gang zijn. Dit
riskeert het laden van vuile mappings in passthrough-modus, wat resulteert in gegevens
verlies. Stappen reproduceren:

1. Maak een writeback-cache met zero migration_threshold om te produceren
vuile toewijzingen

dmsetup create cmeta --tabel "0 8192 lineair /dev/sdc 0"
dmsetup cdata aanmaken --tabel "0 131072 linear /dev/sdc 8192"
dmsetup corig aanmaken --tabel "0 262144 lineair /dev/sdc 262144"
dd if=/dev/zero of =/dev/mapper/cmeta bs=4k aantal=1 oflag=direct
dmsetup cache aanmaken --tabel "0 262144 cache /dev/mapper/cmeta
/dev/mapper/cdata /dev/mapper/corig 128 2 metadata2 writeback smq
2 migratie_threshol d 0"

2. Een tabel vooraf laden in passthrough-modus

dmsetup herlaad cache --tabel "0 262144 cache /dev/mapper/cmeta
/dev/mapper/cdata /dev/mapper/corig 128 2 metadata2 passthrough smq 0"

3. Schrijf naar het eerste cacheblok om het vuil te maken

fio --filename=/dev/mapper/cache --name=populate --rw=write --bs=4k
--direct=1 --size=64k

4. Hervat de inactieve tabel. Nu is het mogelijk om het vuile blok te laden
naar de passthrough-modus. dmsetup hervatten cache

Fix door de controles naar de preresumafase te verplaatsen om de tabel te ondersteunen
voorladen. Verwijder ook de ongebruikte functie dm_cache_metadata_all_clean.

Origineel (Engels) tonen

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.

Vendors

Linux

Affected products

Linux Kernel

References