CVE-2026-53064

dm cache: fix null-deref with concurrent writes in passthrough mode

State
Published
Severity
Not scored
Published
Jun 24, 2026
Updated
Jun 24, 2026
Reserved
Jun 9, 2026

Read the record on cve.org

Description

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

dm cache: fix null-deref with concurrent writes in passthrough mode

In passthrough mode, when dm-cache starts to invalidate a cache entry and bio prison cell lock fails due to concurrent write to the same cached block, mg->cell remains NULL. The error path in invalidate_complete() attempts to unlock and free the cell unconditionally, causing a NULL pointer dereference:

KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007] CPU: 0 UID: 0 PID: 134 Comm: fio Not tainted 6.19.0-rc7 #3 PREEMPT RIP: 0010:dm_cell_unlock_v2+0x3f/0x210 <snip> Call Trace: invalidate_complete+0xef/0x430 map_bio+0x130f/0x1a10 cache_map+0x320/0x6b0 __map_bio+0x458/0x510 dm_submit_bio+0x40e/0x16d0 __submit_bio+0x419/0x870 <snip>

Reproduce steps:

1. Create a cache device

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 writethrough smq 0"

2. Promote the first data block into cache

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

3. Reload the cache into passthrough mode

dmsetup suspend cache dmsetup reload cache --table "0 262144 cache /dev/mapper/cmeta \ /dev/mapper/cdata /dev/mapper/corig 128 2 metadata2 passthrough smq 0" dmsetup resume cache

4. Write to the first cached block concurrently

fio --filename=/dev/mapper/cache --name test --rw=randwrite --bs=4k \ --randrepeat=0 --direct=1 --numjobs=2 --size 64k

Fix by checking if mg->cell is valid before attempting to unlock it.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • b29d4986d0da1a27cd35917cdb433672f5c95d7f to before 01264a6a3a3ad7ac1d73443299cd5a9568002454Affected
  • b29d4986d0da1a27cd35917cdb433672f5c95d7f to before ee38fb00e1a80f46a4990e38f25ecb04ae7b7417Affected
  • b29d4986d0da1a27cd35917cdb433672f5c95d7f to before c7fb6bc864c4910b344dafa36dd5028e9b980768Affected
  • b29d4986d0da1a27cd35917cdb433672f5c95d7f to before 0aa745fea1f8dc81bcdd0a45e215b6706727b482Affected
  • b29d4986d0da1a27cd35917cdb433672f5c95d7f to before a2635d541a93fd111e743cf14b6275dc81be2abcAffected
  • b29d4986d0da1a27cd35917cdb433672f5c95d7f to before 25dcc1989c194ba2b5fb6d03cbb9b83814ac0d15Affected
  • b29d4986d0da1a27cd35917cdb433672f5c95d7f to before df3b8ef06cc62de4fca5d2108e285085b3cffd44Affected
  • b29d4986d0da1a27cd35917cdb433672f5c95d7f to before 7d1f98d668ee34c1d15bdc0420fdd062f24a27c0Affected
LinuxLinux
  • 4.12Affected
  • before 4.12Not affected
  • 5.10.258 through 5.10.*Not affected
  • 5.15.209 through 5.15.*Not affected
  • 6.1.175 through 6.1.*Not affected
  • 6.6.141 through 6.6.*Not affected
  • 6.12.91 through 6.12.*Not affected
  • 6.18.33 through 6.18.*Not affected
  • 7.0.10 through 7.0.*Not affected
  • 7.1 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.