CVE-2026-53265

dm cache policy smq: check allocation under invalidate lock

State
Published
Severity
7.8 High
Published
Jun 25, 2026
Updated
Oct 19, 2026
Reserved
Jun 9, 2026

Read the record on cve.org

Description

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

dm cache policy smq: check allocation under invalidate lock

commit 2d1f7b65f5de ("dm cache policy smq: fix missing locks in invalidating cache blocks") added mq->lock around the destructive part of smq_invalidate_mapping(), but left the e->allocated check outside the critical section.

That leaves a check-then-act race. Two concurrent invalidators can both observe e->allocated as true before either of them takes mq->lock. The first invalidator that acquires the lock removes the entry from the queues and hash table and then calls free_entry(), which clears e->allocated and puts the entry back on the free list. The second invalidator can then acquire mq->lock and continue with the stale result of the unlocked check.

This can corrupt the SMQ queues or hash table by deleting an entry that is no longer on those structures. It can also hit the allocation check in free_entry() when the same entry is freed again.

Move the allocation check under mq->lock so the predicate and the destructive operations are serialized by the same lock.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

  • CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')

Affected Products

ProductVersions
LinuxLinux
  • 4991b5a08751e2e82488fb93ae08849b6aea10d9 to before c242c7af2aecf0b538b8623bdb86b8b441da38d9Affected
  • 1b2bec4a7dcf5f00b7a1cbeeec8997841d783513 to before 13da856c86fb8c2ccab95034fd77da1bb2c2a17cAffected
  • 9a5fdfb9e57ec3a8ad2b8fce5e5ffa42d53b130e to before d886945fcb0f8c9dc6b39928d7a96c95c587346cAffected
  • ac5ee99443891bdb161f5539606a66a1b5e72542 to before b4892561552d671bd8c4da5ebb70e9fbb1ec446eAffected
  • 93627a29d4b66d4a2def938dfb8610cc80ae454b to before 03ffe1112ed88bb3a9bd0b971549bf4d64bfc59aAffected
  • c348ae47d8e65f06429fa41adce9ad986b696766 to before 42ff6774ecd9d7f70d599cb71ff64373a1da4948Affected
  • 2b62d0611c9af14a16bddf22df2612b4f40eb5a1 to before c57570fba24016ec25ec046ab44db39143fb7a64Affected
  • 2d1f7b65f5deedd2e6b09fdc6ea27f8375f24b45 to before d3f0a606b9f278ece8a0df626ded9c4044071235Affected
LinuxLinux
  • 5.10.258 to before 5.10.259Affected
  • 5.15.209 to before 5.15.210Affected
  • 6.1.175 to before 6.1.176Affected
  • 6.6.141 to before 6.6.143Affected
  • 6.12.91 to before 6.12.94Affected
  • 6.18.33 to before 6.18.36Affected
  • 7.0.10 to before 7.0.13Affected

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.