CVE-2026-72282 (GCVE-0-2026-72282)
Vulnerability from cvelistv5
Published
2026-08-15 05:55
Modified
2026-08-17 05:42
Summary
In the Linux kernel, the following vulnerability has been resolved: KVM: Move kvm_io_bus_get_dev() locking responsibilities to callers kvm_io_bus_get_dev() returns a device that is only matched by the address, and nothing else. This can cause a lifetime issue if the matched device is not the expected type, as by the time the caller can introspect the object, it might be gone (the srcu lock having been dropped). Given that there is only a single user of this helper, the simplest option is to move the locking responsibility to the caller, which can keep the srcu lock held for as long as it wants. Note that this aligns with other kvm_io_bus*() helpers, which already require the srcu lock to be held by the callers.
Impacted products
Vendor Product Version
Linux Linux Version: 8a39d00670f0792c1186e442e1dd28fe0326f2ee
Version: 8a39d00670f0792c1186e442e1dd28fe0326f2ee
Version: 8a39d00670f0792c1186e442e1dd28fe0326f2ee
Version: 8a39d00670f0792c1186e442e1dd28fe0326f2ee
Version: 8a39d00670f0792c1186e442e1dd28fe0326f2ee
Version: 8a39d00670f0792c1186e442e1dd28fe0326f2ee
Version: 8a39d00670f0792c1186e442e1dd28fe0326f2ee
Version: 8a39d00670f0792c1186e442e1dd28fe0326f2ee
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "arch/arm64/kvm/vgic/vgic-its.c",
            "virt/kvm/kvm_main.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "f398b7d92cd999191249830b9171c9bd787a9a91",
              "status": "affected",
              "version": "8a39d00670f0792c1186e442e1dd28fe0326f2ee",
              "versionType": "git"
            },
            {
              "lessThan": "1b4a3c2f0509e7b0e65667f3c36676a849ee2755",
              "status": "affected",
              "version": "8a39d00670f0792c1186e442e1dd28fe0326f2ee",
              "versionType": "git"
            },
            {
              "lessThan": "cfe107b02a3c3f049e0dc15b6a36625f048eda2a",
              "status": "affected",
              "version": "8a39d00670f0792c1186e442e1dd28fe0326f2ee",
              "versionType": "git"
            },
            {
              "lessThan": "90d35d2b8e47afd68fe2a4dd0eeb60bc71641775",
              "status": "affected",
              "version": "8a39d00670f0792c1186e442e1dd28fe0326f2ee",
              "versionType": "git"
            },
            {
              "lessThan": "e01071ea006c9b952125ed8b0cc90ac7bd356cce",
              "status": "affected",
              "version": "8a39d00670f0792c1186e442e1dd28fe0326f2ee",
              "versionType": "git"
            },
            {
              "lessThan": "7099e7148f81c605bbc319b16ce0131540341560",
              "status": "affected",
              "version": "8a39d00670f0792c1186e442e1dd28fe0326f2ee",
              "versionType": "git"
            },
            {
              "lessThan": "0cbae0e296d27ce4c4cce83e34d40c2bfd8133aa",
              "status": "affected",
              "version": "8a39d00670f0792c1186e442e1dd28fe0326f2ee",
              "versionType": "git"
            },
            {
              "lessThan": "3a07249981629ace483ebbef81ef6b34c2d2afec",
              "status": "affected",
              "version": "8a39d00670f0792c1186e442e1dd28fe0326f2ee",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "arch/arm64/kvm/vgic/vgic-its.c",
            "virt/kvm/kvm_main.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.8"
            },
            {
              "lessThan": "4.8",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.261",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.212",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.178",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.145",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.97",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.40",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.261",
                  "versionStartIncluding": "4.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.212",
                  "versionStartIncluding": "4.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.178",
                  "versionStartIncluding": "4.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.145",
                  "versionStartIncluding": "4.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.97",
                  "versionStartIncluding": "4.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.40",
                  "versionStartIncluding": "4.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.5",
                  "versionStartIncluding": "4.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "4.8",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: Move kvm_io_bus_get_dev() locking responsibilities to callers\n\nkvm_io_bus_get_dev() returns a device that is only matched by the\naddress, and nothing else. This can cause a lifetime issue if\nthe matched device is not the expected type, as by the time\nthe caller can introspect the object, it might be gone (the srcu\nlock having been dropped).\n\nGiven that there is only a single user of this helper, the simplest\noption is to move the locking responsibility to the caller, which\ncan keep the srcu lock held for as long as it wants.\n\nNote that this aligns with other kvm_io_bus*() helpers, which\nalready require the srcu lock to be held by the callers."
        }
      ],
      "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 bug is reached only via host-local KVM VM file descriptor ioctls (KVM_SIGNAL_MSI, KVM_IRQFD/eventfd MSI routing) and related in-kernel MSI injection paths on arm64 GICv3 ITS; there is no network, adjacent-radio, or physical-device packet path to kvm_io_bus_get_dev() or __vgic_doorbell_to_its().\nAC:L - Exploitation is a race where the attacker runs concurrent KVM_SIGNAL_MSI/irqfd MSI injection against vCPU teardown or VM shutdown that unregisters the matched MMIO device; the attacker controls both threads and can retry until the window is hit, so success does not depend on conditions outside attacker influence.\nPR:L - Triggering requires local access to a KVM VM fd (typically via /dev/kvm membership or equivalent host-local VM management rights), not remote authentication; this is low-privilege local access comparable to other namespace-reachable capabilities, not init-namespace root exclusively.\nUI:N - Exploitation is fully automated through concurrent ioctl/eventfd activity and does not require any victim user action such as opening files, mounting filesystems, or interacting with the guest.\nS:U - The vulnerable code runs in the host kernel on behalf of the VM owner/VMM; impact is host kernel memory corruption and privilege escalation within the same host security authority, not a direct guest-to-host VM escape across the guest/host boundary without prior host-side KVM access.\nC:H - This is a kernel use-after-free on a returned kvm_io_device/vgic_io_device pointer accessed after SRCU is dropped (ops pointer and container_of introspection), which can disclose kernel heap contents and be weaponized into arbitrary read primitives.\nI:H - UAF on emulated GIC MMIO device objects allows corrupting freed heap objects and hijacking function pointers/structure fields during type checking and follow-on ITS MSI handling, enabling arbitrary kernel write and local privilege escalation.\nA:H - The UAF can cause immediate kernel oops/panic from dereferencing freed kvm_io_device memory during concurrent device unregistration, and repeated triggering can reliably deny availability even before full exploitation."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-17T05:42:17.093Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/f398b7d92cd999191249830b9171c9bd787a9a91"
        },
        {
          "url": "https://git.kernel.org/stable/c/1b4a3c2f0509e7b0e65667f3c36676a849ee2755"
        },
        {
          "url": "https://git.kernel.org/stable/c/cfe107b02a3c3f049e0dc15b6a36625f048eda2a"
        },
        {
          "url": "https://git.kernel.org/stable/c/90d35d2b8e47afd68fe2a4dd0eeb60bc71641775"
        },
        {
          "url": "https://git.kernel.org/stable/c/e01071ea006c9b952125ed8b0cc90ac7bd356cce"
        },
        {
          "url": "https://git.kernel.org/stable/c/7099e7148f81c605bbc319b16ce0131540341560"
        },
        {
          "url": "https://git.kernel.org/stable/c/0cbae0e296d27ce4c4cce83e34d40c2bfd8133aa"
        },
        {
          "url": "https://git.kernel.org/stable/c/3a07249981629ace483ebbef81ef6b34c2d2afec"
        }
      ],
      "title": "KVM: Move kvm_io_bus_get_dev() locking responsibilities to callers",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-72282",
    "datePublished": "2026-08-15T05:55:06.307Z",
    "dateReserved": "2026-08-09T03:40:39.916Z",
    "dateUpdated": "2026-08-17T05:42:17.093Z",
    "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…