Skip to main content

Linux Kernel EUVDEUVD-2026-38929

| CVE-2026-53061 MEDIUM
2026-06-24 Linux GHSA-h3w6-62jw-v8p3
5.5
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
vuln.today AI
5.5 MEDIUM

Local access and low privileges required to invoke dmsetup; no confidentiality or integrity impact, only permanent data loss (high availability).

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
MEDIUM
qualitative
Red Hat
5.5 MEDIUM
qualitative

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

5
Analysis Generated
Jul 21, 2026 - 17:40 vuln.today
CVSS changed
Jul 21, 2026 - 17:37 NVD
5.5 (MEDIUM)
Patch available
Jun 24, 2026 - 18:02 EUVD
CVE Published
Jun 24, 2026 - 16:30 cve.org
UNKNOWN (no severity yet)
CVE Published
Jun 24, 2026 - 16:30 nvd
MEDIUM 5.5

DescriptionNVD

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"

  1. 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"

  1. 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

  1. 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.

AnalysisAI

Data loss in the Linux kernel dm-cache subsystem occurs when LVM's table preload feature is used to switch a writeback cache to passthrough mode while dirty mappings exist. The dirty mapping check was designed assuming table reloads happen only after device suspension (which flushes dirty blocks), but LVM's preload path bypasses this assumption, allowing dirty cache blocks to be silently loaded into passthrough mode where they will never be written back to the origin device. No public exploit code exists; reproduction requires a deliberate sequence of dmsetup and fio operations documented in the CVE description itself. EPSS is 0.18% (7th percentile), consistent with a local, configuration-specific data-loss condition rather than a remotely exploitable flaw.

Technical ContextAI

dm-cache is a Linux kernel device mapper target (drivers/md/dm-cache-target.c) that uses a fast block device (SSD) as a cache layer in front of a slower origin device. In writeback mode, data is written first to the cache and asynchronously flushed to the origin, producing 'dirty' mappings - blocks present in cache but not yet persisted to origin. Passthrough mode bypasses the cache entirely. The vulnerability stems from the dirty mapping check being executed during table creation (ctr path) rather than the preresume phase. Commit 9b1cc9f251af previously acknowledged that LVM's table preload breaks the suspension assumption, but the passthrough dirty check was not updated accordingly. When migration_threshold is set to 0, dirty blocks accumulate without being flushed. A preloaded passthrough table then passes the stale check at creation time, and on resume those dirty blocks are abandoned. The fix moves the check to the preresume phase and removes the now-unused dm_cache_metadata_all_clean function. CPE data confirms the affected product as cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:*, spanning all stable branches back to the introducing commit 2ee57d587357f0d752af6c2e3e46434a74b1bee3. No CWE was assigned by NVD, but the root cause class is a TOCTOU-adjacent logic flaw - a state check performed at the wrong lifecycle phase.

RemediationAI

The primary fix is upgrading to a patched kernel version: 5.10.258+, 5.15.209+, 6.1.175+, 6.6.141+, 6.12.91+, 6.18.33+, 7.0.10+, or 7.1+. Ubuntu users should apply the updates referenced in USN-8566-1, USN-8567-1, and USN-8568-1. For systems that cannot be patched immediately, the most effective compensating control is to always suspend the dm-cache device (dmsetup suspend cache) and allow dirty blocks to flush before preloading a passthrough table - this ensures migration_threshold-constrained dirty mappings are committed to the origin device before the mode switch. As an additional safeguard, avoid setting migration_threshold to 0 in writeback mode unless absolutely required, as this is the primary mechanism by which dirty blocks accumulate without flushing. These workarounds require operational discipline and do not eliminate the underlying race; patching is the only definitive fix.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

Share

EUVD-2026-38929 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy