Skip to main content
VulnerabilityPublished Updated

CVE-2025-38066: Linux kernel · dm cache: prevent BUG_ON by blocking retries on failed device resumes

Affects Linux kernelSource CVE Database V5

0
Compare

Not known to be exploited · fixed in f3128e3074e8af565cc6a66fe3384a56df87f803 : update Linux kernel when convenient.

Data as of 5 Nov 2026, 21:04 UTC

Severity
Unrated

Rated by Threat Radar · No CVSS score from NVD or the CNA

Thin evidence

One scorer or none
CISA SSVC
Exploitation
No evidence of active exploitation and no public proof of concept
Automatable
Attackers cannot reliably automate steps 1–4 of the kill chain
Technical impact
Limited control over the software or limited information exposure

CISA SSVC assessment, 2026-11-05.

Patch
Available – fixed in f3128e3074e8af565cc6a66fe3384a56df87f803, cc80a5cc520939d0a7d071cc4ae4b3c55ef171d0, c614584c2a66b538f469089ac089457a34590c14 +5

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 18 Jun 2025

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponized: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 5 Nov 2026.

What to do

Upgrade to a fixed release listed under Affected software.

Affected software

ProductAffectedFixed in
LinuxLinuxAffected
  • ≥ 66a636356647a9be8885c2ce2948de126577698a, < f3128e3074e8af565cc6a66fe3384a56df87f803
Fixed in
  • f3128e3074e8af565cc6a66fe3384a56df87f803
LinuxLinuxAffected
  • ≥ 66a636356647a9be8885c2ce2948de126577698a, < cc80a5cc520939d0a7d071cc4ae4b3c55ef171d0
Fixed in
  • cc80a5cc520939d0a7d071cc4ae4b3c55ef171d0
LinuxLinuxAffected
  • ≥ 66a636356647a9be8885c2ce2948de126577698a, < c614584c2a66b538f469089ac089457a34590c14
Fixed in
  • c614584c2a66b538f469089ac089457a34590c14
LinuxLinuxAffected
  • ≥ 66a636356647a9be8885c2ce2948de126577698a, < c5356a5e80442131e2714d0d26bb110590e4e568
Fixed in
  • c5356a5e80442131e2714d0d26bb110590e4e568
LinuxLinuxAffected
  • ≥ 66a636356647a9be8885c2ce2948de126577698a, < 3986ef4a9b6a0d9c28bc325d8713beba5e67586f
Fixed in
  • 3986ef4a9b6a0d9c28bc325d8713beba5e67586f
LinuxLinuxAffected
  • ≥ 66a636356647a9be8885c2ce2948de126577698a, < 00586b78eeb7c626a14ca13453a1631f88a7cf36
Fixed in
  • 00586b78eeb7c626a14ca13453a1631f88a7cf36

Description

In the Linux kernel, the following vulnerability has been resolved: dm cache: prevent BUG_ON by blocking retries on failed device resumes A cache device failing to resume due to mapping errors should not be retried, as the failure leaves a partially initialized policy object. Repeating the resume operation risks triggering BUG_ON when reloading cache mappings into the incomplete policy object. Reproduce steps: 1. create a cache metadata consisting of 512 or more cache blocks, with some mappings stored in the first array block of the mapping array. Here we use cache_restore v1.0 to build the metadata. cat <<EOF >> cmeta.xml <superblock uuid="" block_size="128" nr_cache_blocks="512" \ policy="smq" hint_width="4"> <mappings> <mapping cache_block="0" origin_block="0" dirty="false"/> </mappings> </superblock> EOF dmsetup create cmeta --table "0 8192 linear /dev/sdc 0" cache_restore -i cmeta.xml -o /dev/mapper/cmeta --metadata-version=2 dmsetup remove cmeta 2. wipe the second array block of the mapping array to simulate data degradations. mapping_root=$(dd if=/dev/sdc bs=1c count=8 skip=192 \ 2>/dev/null | hexdump -e '1/8 "%u\n"') ablock=$(dd if=/dev/sdc bs=1c count=8 skip=$((4096*mapping_root+2056)) \ 2>/dev/null | hexdump -e '1/8 "%u\n"') dd if=/dev/zero of=/dev/sdc bs=4k count=1 seek=$ablock 3. try bringing up the cache device. The resume is expected to fail due to the broken array block. dmsetup create cmeta --table "0 8192 linear /dev/sdc 0" dmsetup create cdata --table "0 65536 linear /dev/sdc 8192" dmsetup create corig --table "0 524288 linear /dev/sdc 262144" dmsetup create cache --notable dmsetup load cache --table "0 524288 cache /dev/mapper/cmeta \ /dev/mapper/cdata /dev/mapper/corig 128 2 metadata2 writethrough smq 0" dmsetup resume cache 4. try resuming the cache again. An unexpected BUG_ON is triggered while loading cache mappings. dmsetup resume cache Kernel logs: (snip) ------------[ cut here ]------------ kernel BUG at drivers/md/dm-cache-policy-smq.c:752! Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN NOPTI CPU: 0 UID: 0 PID: 332 Comm: dmsetup Not tainted 6.13.4 #3 RIP: 0010:smq_load_mapping+0x3e5/0x570 Fix by disallowing resume operations for devices that failed the initial attempt.

References

Community reviews

Loading reviews…