---
id: CVE-2026-53062
title: 'dm cache policy smq: fix missing locks in invalidating cache blocks'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  dm cache policy smq: fix missing locks in invalidating cache blocks

  In passthrough mode, the policy invalidate_mapping operation is called
  simultaneously from multiple…
severity: high
cvss: 7.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
cvssSource: cna
cwe:
  - CWE-414
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= b29d4986d0da1a27cd35917cdb433672f5c95d7f <
    4991b5a08751e2e82488fb93ae08849b6aea10d9
  - >-
    Linux >= b29d4986d0da1a27cd35917cdb433672f5c95d7f <
    1b2bec4a7dcf5f00b7a1cbeeec8997841d783513
  - >-
    Linux >= b29d4986d0da1a27cd35917cdb433672f5c95d7f <
    9a5fdfb9e57ec3a8ad2b8fce5e5ffa42d53b130e
  - >-
    Linux >= b29d4986d0da1a27cd35917cdb433672f5c95d7f <
    ac5ee99443891bdb161f5539606a66a1b5e72542
  - >-
    Linux >= b29d4986d0da1a27cd35917cdb433672f5c95d7f <
    93627a29d4b66d4a2def938dfb8610cc80ae454b
  - >-
    Linux >= b29d4986d0da1a27cd35917cdb433672f5c95d7f <
    c348ae47d8e65f06429fa41adce9ad986b696766
  - >-
    Linux >= b29d4986d0da1a27cd35917cdb433672f5c95d7f <
    2b62d0611c9af14a16bddf22df2612b4f40eb5a1
  - >-
    Linux >= b29d4986d0da1a27cd35917cdb433672f5c95d7f <
    2d1f7b65f5deedd2e6b09fdc6ea27f8375f24b45
  - Linux 4.12
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: total
  timestamp: '2026-10-16T15:24:58.631300Z'
published: '2026-06-24'
updated: '2026-10-19'
sourceUpdated: '2026-10-19T19:47:14.719Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-53062'
references:
  - url: 'https://git.kernel.org/stable/c/4991b5a08751e2e82488fb93ae08849b6aea10d9'
  - url: 'https://git.kernel.org/stable/c/1b2bec4a7dcf5f00b7a1cbeeec8997841d783513'
  - url: 'https://git.kernel.org/stable/c/9a5fdfb9e57ec3a8ad2b8fce5e5ffa42d53b130e'
  - url: 'https://git.kernel.org/stable/c/ac5ee99443891bdb161f5539606a66a1b5e72542'
  - url: 'https://git.kernel.org/stable/c/93627a29d4b66d4a2def938dfb8610cc80ae454b'
  - url: 'https://git.kernel.org/stable/c/c348ae47d8e65f06429fa41adce9ad986b696766'
  - url: 'https://git.kernel.org/stable/c/2b62d0611c9af14a16bddf22df2612b4f40eb5a1'
  - url: 'https://git.kernel.org/stable/c/2d1f7b65f5deedd2e6b09fdc6ea27f8375f24b45'
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-53062.json
  - url: 'https://access.redhat.com/security/cve/CVE-2026-53062'
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2492278'
  - url: 'https://www.cve.org/CVERecord?id=CVE-2026-53062'
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-53062'
  - url: >-
      https://lore.kernel.org/linux-cve-announce/2026062402-CVE-2026-53062-a727@gregkh/T
  - url: 'https://access.redhat.com/errata/RHSA-2026:70498'
  - url: 'https://access.redhat.com/errata/RHSA-2026:70459'
  - url: 'https://access.redhat.com/errata/RHSA-2026:70402'
  - url: 'https://access.redhat.com/errata/RHSA-2026:77216'
  - url: 'https://access.redhat.com/errata/RHSA-2026:84793'
  - url: 'https://access.redhat.com/errata/RHSA-2026:70403'
tags:
  - cve.org
  - csaf
  - vex
  - red-hat
epss: 0.00097
epssPercentile: 0.00731
patched:
  - enterprise_linux_appstream_v_10
  - enterprise_linux_appstream_v_9
  - enterprise_linux_baseos_v_10
  - enterprise_linux_baseos_v_8
  - enterprise_linux_baseos_aus_v_8_6
  - enterprise_linux_baseos_eus_extension_v_8_6
  - enterprise_linux_baseos_e4s_v_8_8
  - enterprise_linux_baseos_tus_v_8_8
  - enterprise_linux_baseos_v_9
  - enterprise_linux_codeready_linux_builder_v_10
  - enterprise_linux_crb_v_8
  - enterprise_linux_codeready_linux_builder_v_9
  - enterprise_linux_real_time_for_nfv_v_10
  - enterprise_linux_nfv_v_8
  - enterprise_linux_real_time_for_nfv_v_9
  - enterprise_linux_real_time_v_10
  - enterprise_linux_rt_v_8
  - enterprise_linux_real_time_v_9
scores:
  cna: 7.8
  vendor: 7
ingestedAt: '2026-10-16T17:24:46.728Z'
---

## Overview

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

dm cache policy smq: fix missing locks in invalidating cache blocks

In passthrough mode, the policy invalidate_mapping operation is called
simultaneously from multiple workers, thus it should be protected by a
lock. Otherwise, we might end up with data races on the allocated blocks
counter, or even use-after-free issues with internal data structures
when doing concurrent writes.

Note that the existing FIXME in smq_invalidate_mapping() doesn't affect
passthrough mode since migration tasks don't exist there, but would need
attention if supporting fast device shrinking via suspend/resume without
target reloading.

Reproduce steps:

1. Create a cache device consisting of 1024 cache entries

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. Populate the cache, and record the number of cached blocks

fio --name=populate --filename=/dev/mapper/cache --rw=randwrite --bs=4k \
--size=64m --direct=1
nr_cached=$(dmsetup status cache | awk '{split($7, a, "/"); print a[1]}')

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 passthrough cache. By setting multiple jobs with I/O
   size equal to the cache block size, cache blocks are invalidated
   concurrently from different workers.

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

5. Check if demoted matches cached block count. These numbers should
   match but may differ due to the data race.

nr_demoted=$(dmsetup status cache | awk '{print $12}')
echo "$nr_cached, $nr_demoted"

## Affected

- `Linux >= b29d4986d0da1a27cd35917cdb433672f5c95d7f < 4991b5a08751e2e82488fb93ae08849b6aea10d9`
- `Linux >= b29d4986d0da1a27cd35917cdb433672f5c95d7f < 1b2bec4a7dcf5f00b7a1cbeeec8997841d783513`
- `Linux >= b29d4986d0da1a27cd35917cdb433672f5c95d7f < 9a5fdfb9e57ec3a8ad2b8fce5e5ffa42d53b130e`
- `Linux >= b29d4986d0da1a27cd35917cdb433672f5c95d7f < ac5ee99443891bdb161f5539606a66a1b5e72542`
- `Linux >= b29d4986d0da1a27cd35917cdb433672f5c95d7f < 93627a29d4b66d4a2def938dfb8610cc80ae454b`
- `Linux >= b29d4986d0da1a27cd35917cdb433672f5c95d7f < c348ae47d8e65f06429fa41adce9ad986b696766`
- `Linux >= b29d4986d0da1a27cd35917cdb433672f5c95d7f < 2b62d0611c9af14a16bddf22df2612b4f40eb5a1`
- `Linux >= b29d4986d0da1a27cd35917cdb433672f5c95d7f < 2d1f7b65f5deedd2e6b09fdc6ea27f8375f24b45`
- `Linux 4.12`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Vendor advisories

- **RHSA-2026:70498** · Red Hat · fixed in: Red Hat Enterprise Linux AppStream (v. 10), Red Hat Enterprise Linux BaseOS (v. 10), Red Hat Enterprise Linux CodeReady Linux Builder (v. 10), Red Hat Enterprise Linux Real Time for NFV (v. 10), Red Hat Enterprise Linux Real Time (v. 10) · released 2026-09-23 · [advisory](https://access.redhat.com/errata/RHSA-2026:70498)
- **RHSA-2026:70459** · Red Hat · fixed in: Red Hat Enterprise Linux AppStream (v. 9), Red Hat Enterprise Linux BaseOS (v. 9), Red Hat Enterprise Linux CodeReady Linux Builder (v. 9), Red Hat Enterprise Linux Real Time for NFV (v. 9), Red Hat Enterprise Linux Real Time (v. 9) · released 2026-09-23 · [advisory](https://access.redhat.com/errata/RHSA-2026:70459)
- **RHSA-2026:70402** · Red Hat · fixed in: Red Hat Enterprise Linux BaseOS (v. 8), Red Hat Enterprise Linux CRB (v. 8) · released 2026-09-22 · [advisory](https://access.redhat.com/errata/RHSA-2026:70402)
- **RHSA-2026:77216** · Red Hat · fixed in: Red Hat Enterprise Linux BaseOS AUS (v.8.6), Red Hat Enterprise Linux BaseOS EUS EXTENSION (v.8.6) · released 2026-10-07 · [advisory](https://access.redhat.com/errata/RHSA-2026:77216)
- **RHSA-2026:84793** · Red Hat · fixed in: Red Hat Enterprise Linux BaseOS E4S (v.8.8), Red Hat Enterprise Linux BaseOS TUS (v.8.8) · released 2026-10-19 · [advisory](https://access.redhat.com/errata/RHSA-2026:84793)
- **RHSA-2026:70403** · Red Hat · fixed in: Red Hat Enterprise Linux NFV (v. 8), Red Hat Enterprise Linux RT (v. 8) · released 2026-09-22 · [advisory](https://access.redhat.com/errata/RHSA-2026:70403)
- **Red Hat VEX** · Moderate · affected: Red Hat Enterprise Linux 6, Red Hat Enterprise Linux 7, Red Hat Enterprise Linux 9 · no fix planned: Red Hat Enterprise Linux 6, Red Hat Enterprise Linux 7, Red Hat Enterprise Linux 9 · updated 2026-10-19 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-53062.json)
