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

Published Jun 18, 2025
·
Updated

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

dm cache: prevent BUGON 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 BUGON 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 cacherestore v1.0 to build the metadata.

cat <<EOF >> cmeta.xml <superblock uuid="" blocksize="128" nrcacheblocks="512" \ policy="smq" hintwidth="4"> <mappings> <mapping cacheblock="0" originblock="0" dirty="false"/> </mappings> </superblock> EOF dmsetup create cmeta --table "0 8192 linear /dev/sdc 0" cacherestore -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.

mappingroot=$(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=$((4096mappingroot+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 BUGON 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:smqloadmapping+0x3e5/0x570

Fix by disallowing resume operations for devices that failed the initial attempt.

Affected Software

10 affected componentsFixes available
Linux Linux kernel
Linux Linux kernel<5.4.294
Linux Linux kernel>=5.5<5.10.238
Linux Linux kernel>=5.11<5.15.185
Linux Linux kernel>=5.16<6.1.141
Linux Linux kernel>=6.2<6.6.93
Linux Linux kernel>=6.7<6.12.31
Linux Linux kernel>=6.13<6.14.9
Debian Debian Linux=11.0
debian/linux
6.1.176-16.1.190-16.12.107-16.12.113-17.2.12-17.2.13-1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade debian/linux to a version that resolves this vulnerability.

    Fixed in 6.1.176-1Fixed in 6.1.190-1Fixed in 6.12.107-1Fixed in 6.12.113-1Fixed in 7.2.12-1Fixed in 7.2.13-1
  2. Compensating control

    Do not retry resume operations for cache devices whose initial resume attempt failed, because retrying can trigger BUG_ON while reloading cache mappings into a partially initialized policy object.

Event History

Jun 18, 2025
CVE Published
via MITRE·09:33 AM
Data Sourced
via MITRE·09:33 AM
Description
Data Sourced
via NVD·10:15 AM
RemedyDescriptionSeverityWeaknessAffected Software

Parent advisories

This vulnerability appears in the following advisories.

Peer vulnerabilities

Found alongside the following vulnerabilities.

Frequently Asked Questions

1

What is the severity of CVE-2025-38066?

CVE-2025-38066 has been classified as a moderate severity vulnerability due to its potential impact on system stability.

2

How do I fix CVE-2025-38066?

To fix CVE-2025-38066, update the Linux kernel to the latest version where this vulnerability has been resolved.

3

What are the potential consequences of CVE-2025-38066?

The potential consequences of CVE-2025-38066 include system crashes or unstable behavior due to retries on failed device resumes.

4

Is CVE-2025-38066 exploitable by remote attackers?

CVE-2025-38066 is not directly exploitable by remote attackers, as it primarily affects local system operations.

5

Which versions of the Linux kernel are affected by CVE-2025-38066?

CVE-2025-38066 affects specific versions of the Linux kernel prior to the latest security patches that address this issue.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203