CVE-2026-53265 (GCVE-0-2026-53265)
Vulnerability from cvelistv5
Published
2026-06-25 08:39
Modified
2026-08-05 12:34
Summary
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.
Impacted products
Vendor Product Version
Linux Linux Version: 4991b5a08751e2e82488fb93ae08849b6aea10d9
Version: 1b2bec4a7dcf5f00b7a1cbeeec8997841d783513
Version: 9a5fdfb9e57ec3a8ad2b8fce5e5ffa42d53b130e
Version: ac5ee99443891bdb161f5539606a66a1b5e72542
Version: 93627a29d4b66d4a2def938dfb8610cc80ae454b
Version: c348ae47d8e65f06429fa41adce9ad986b696766
Version: 2b62d0611c9af14a16bddf22df2612b4f40eb5a1
Version: 2d1f7b65f5deedd2e6b09fdc6ea27f8375f24b45
Create a notification for this product.
   Linux Linux Version: 5.10.258   
Version: 5.15.209   
Version: 6.1.175   
Version: 6.6.141   
Version: 6.12.91   
Version: 6.18.33   
Version: 7.0.10   
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/md/dm-cache-policy-smq.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "c242c7af2aecf0b538b8623bdb86b8b441da38d9",
              "status": "affected",
              "version": "4991b5a08751e2e82488fb93ae08849b6aea10d9",
              "versionType": "git"
            },
            {
              "lessThan": "13da856c86fb8c2ccab95034fd77da1bb2c2a17c",
              "status": "affected",
              "version": "1b2bec4a7dcf5f00b7a1cbeeec8997841d783513",
              "versionType": "git"
            },
            {
              "lessThan": "d886945fcb0f8c9dc6b39928d7a96c95c587346c",
              "status": "affected",
              "version": "9a5fdfb9e57ec3a8ad2b8fce5e5ffa42d53b130e",
              "versionType": "git"
            },
            {
              "lessThan": "b4892561552d671bd8c4da5ebb70e9fbb1ec446e",
              "status": "affected",
              "version": "ac5ee99443891bdb161f5539606a66a1b5e72542",
              "versionType": "git"
            },
            {
              "lessThan": "03ffe1112ed88bb3a9bd0b971549bf4d64bfc59a",
              "status": "affected",
              "version": "93627a29d4b66d4a2def938dfb8610cc80ae454b",
              "versionType": "git"
            },
            {
              "lessThan": "42ff6774ecd9d7f70d599cb71ff64373a1da4948",
              "status": "affected",
              "version": "c348ae47d8e65f06429fa41adce9ad986b696766",
              "versionType": "git"
            },
            {
              "lessThan": "c57570fba24016ec25ec046ab44db39143fb7a64",
              "status": "affected",
              "version": "2b62d0611c9af14a16bddf22df2612b4f40eb5a1",
              "versionType": "git"
            },
            {
              "lessThan": "d3f0a606b9f278ece8a0df626ded9c4044071235",
              "status": "affected",
              "version": "2d1f7b65f5deedd2e6b09fdc6ea27f8375f24b45",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/md/dm-cache-policy-smq.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "5.10.259",
              "status": "affected",
              "version": "5.10.258",
              "versionType": "semver"
            },
            {
              "lessThan": "5.15.210",
              "status": "affected",
              "version": "5.15.209",
              "versionType": "semver"
            },
            {
              "lessThan": "6.1.176",
              "status": "affected",
              "version": "6.1.175",
              "versionType": "semver"
            },
            {
              "lessThan": "6.6.143",
              "status": "affected",
              "version": "6.6.141",
              "versionType": "semver"
            },
            {
              "lessThan": "6.12.94",
              "status": "affected",
              "version": "6.12.91",
              "versionType": "semver"
            },
            {
              "lessThan": "6.18.36",
              "status": "affected",
              "version": "6.18.33",
              "versionType": "semver"
            },
            {
              "lessThan": "7.0.13",
              "status": "affected",
              "version": "7.0.10",
              "versionType": "semver"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.259",
                  "versionStartIncluding": "5.10.258",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.210",
                  "versionStartIncluding": "5.15.209",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.176",
                  "versionStartIncluding": "6.1.175",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.143",
                  "versionStartIncluding": "6.6.141",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.94",
                  "versionStartIncluding": "6.12.91",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.36",
                  "versionStartIncluding": "6.18.33",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0.13",
                  "versionStartIncluding": "7.0.10",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndm cache policy smq: check allocation under invalidate lock\n\ncommit 2d1f7b65f5de (\"dm cache policy smq: fix missing locks in\ninvalidating cache blocks\") added mq-\u003elock around the destructive part of\nsmq_invalidate_mapping(), but left the e-\u003eallocated check outside the\ncritical section.\n\nThat leaves a check-then-act race. Two concurrent invalidators can both\nobserve e-\u003eallocated as true before either of them takes mq-\u003elock. The\nfirst invalidator that acquires the lock removes the entry from the\nqueues and hash table and then calls free_entry(), which clears\ne-\u003eallocated and puts the entry back on the free list. The second\ninvalidator can then acquire mq-\u003elock and continue with the stale result\nof the unlocked check.\n\nThis can corrupt the SMQ queues or hash table by deleting an entry that\nis no longer on those structures. It can also hit the allocation check in\nfree_entry() when the same entry is freed again.\n\nMove the allocation check under mq-\u003elock so the predicate and the\ndestructive operations are serialized by the same lock."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The vulnerable code is reached locally through device-mapper cache invalidation, via DM target messages or writes to an already configured passthrough dm-cache device. There is no network, adjacent, or physical packet/device path.\nAC:L - The race is between concurrent invalidators, and an attacker who can issue concurrent writes or invalidation requests can create that concurrency. When uncertain, the attacker-controlled race is scored as low complexity.\nPR:L - DM control ioctls require init-namespace CAP_SYS_ADMIN, but a plausible deployment lets a low-privileged local user generate passthrough cache writes through a mounted or otherwise writable dm-cache-backed device. User namespaces do not bypass the DM ioctl gate.\nUI:N - No victim action is required after the vulnerable dm-cache device is present; the attacker triggers invalidation with local I/O or messages. The race does not depend on another user opening a file or approving an action.\nS:U - The impact remains within the same kernel/storage security authority. This is not a VM escape, IOMMU bypass, or cross-authority boundary violation.\nC:H - The stale invalidation can corrupt SMQ queue/hash policy state, potentially misdirecting cached block mappings and exposing data from other blocks. As kernel memory/data-structure corruption, confidentiality impact is scored high when uncertain.\nI:H - The bug can delete/free an entry twice and corrupt SMQ queues or hash tables before hitting the allocation check. That can corrupt cache mapping state and kernel data structures, so integrity impact is high.\nA:H - The second free can hit BUG_ON(!e-\u003eallocated), causing a kernel oops/panic. Even without the BUG_ON path, corrupted cache policy structures can destabilize the kernel, so availability impact is high."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:34:42.297Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/c242c7af2aecf0b538b8623bdb86b8b441da38d9"
        },
        {
          "url": "https://git.kernel.org/stable/c/13da856c86fb8c2ccab95034fd77da1bb2c2a17c"
        },
        {
          "url": "https://git.kernel.org/stable/c/d886945fcb0f8c9dc6b39928d7a96c95c587346c"
        },
        {
          "url": "https://git.kernel.org/stable/c/b4892561552d671bd8c4da5ebb70e9fbb1ec446e"
        },
        {
          "url": "https://git.kernel.org/stable/c/03ffe1112ed88bb3a9bd0b971549bf4d64bfc59a"
        },
        {
          "url": "https://git.kernel.org/stable/c/42ff6774ecd9d7f70d599cb71ff64373a1da4948"
        },
        {
          "url": "https://git.kernel.org/stable/c/c57570fba24016ec25ec046ab44db39143fb7a64"
        },
        {
          "url": "https://git.kernel.org/stable/c/d3f0a606b9f278ece8a0df626ded9c4044071235"
        }
      ],
      "title": "dm cache policy smq: check allocation under invalidate lock",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-53265",
    "datePublished": "2026-06-25T08:39:52.543Z",
    "dateReserved": "2026-06-09T07:44:35.395Z",
    "dateUpdated": "2026-08-05T12:34:42.297Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…