GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2026-72282 (GCVE-0-2026-72282)

Vulnerability from cvelistv5 – Published: 2026-08-15 05:55 – Updated: 2026-08-17 05:42
VLAI
Title
KVM: Move kvm_io_bus_get_dev() locking responsibilities to callers
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 CPE status
Linux Linux Affected: 8a39d00670f0792c1186e442e1dd28fe0326f2ee , < f398b7d92cd999191249830b9171c9bd787a9a91 (git)
Affected: 8a39d00670f0792c1186e442e1dd28fe0326f2ee , < 1b4a3c2f0509e7b0e65667f3c36676a849ee2755 (git)
Affected: 8a39d00670f0792c1186e442e1dd28fe0326f2ee , < cfe107b02a3c3f049e0dc15b6a36625f048eda2a (git)
Affected: 8a39d00670f0792c1186e442e1dd28fe0326f2ee , < 90d35d2b8e47afd68fe2a4dd0eeb60bc71641775 (git)
Affected: 8a39d00670f0792c1186e442e1dd28fe0326f2ee , < e01071ea006c9b952125ed8b0cc90ac7bd356cce (git)
Affected: 8a39d00670f0792c1186e442e1dd28fe0326f2ee , < 7099e7148f81c605bbc319b16ce0131540341560 (git)
Affected: 8a39d00670f0792c1186e442e1dd28fe0326f2ee , < 0cbae0e296d27ce4c4cce83e34d40c2bfd8133aa (git)
Affected: 8a39d00670f0792c1186e442e1dd28fe0326f2ee , < 3a07249981629ace483ebbef81ef6b34c2d2afec (git)
guessed Create a notification for this product.
Linux Linux Affected: 4.8
Unaffected: 0 , < 4.8 (semver)
Unaffected: 5.10.261 , ≤ 5.10.* (semver)
Unaffected: 5.15.212 , ≤ 5.15.* (semver)
Unaffected: 6.1.178 , ≤ 6.1.* (semver)
Unaffected: 6.6.145 , ≤ 6.6.* (semver)
Unaffected: 6.12.97 , ≤ 6.12.* (semver)
Unaffected: 6.18.40 , ≤ 6.18.* (semver)
Unaffected: 7.1.5 , ≤ 7.1.* (semver)
Unaffected: 7.2 , ≤ * (original_commit_for_fix)
guessed 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",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-72282",
      "date": "2026-09-04",
      "epss": "0.00176",
      "percentile": "0.07202"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-72282\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-08-15T06:21:58.680\",\"lastModified\":\"2026-08-17T06:18:30.800\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"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.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"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\",\"versions\":[{\"version\":\"8a39d00670f0792c1186e442e1dd28fe0326f2ee\",\"lessThan\":\"f398b7d92cd999191249830b9171c9bd787a9a91\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"8a39d00670f0792c1186e442e1dd28fe0326f2ee\",\"lessThan\":\"1b4a3c2f0509e7b0e65667f3c36676a849ee2755\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"8a39d00670f0792c1186e442e1dd28fe0326f2ee\",\"lessThan\":\"cfe107b02a3c3f049e0dc15b6a36625f048eda2a\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"8a39d00670f0792c1186e442e1dd28fe0326f2ee\",\"lessThan\":\"90d35d2b8e47afd68fe2a4dd0eeb60bc71641775\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"8a39d00670f0792c1186e442e1dd28fe0326f2ee\",\"lessThan\":\"e01071ea006c9b952125ed8b0cc90ac7bd356cce\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"8a39d00670f0792c1186e442e1dd28fe0326f2ee\",\"lessThan\":\"7099e7148f81c605bbc319b16ce0131540341560\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"8a39d00670f0792c1186e442e1dd28fe0326f2ee\",\"lessThan\":\"0cbae0e296d27ce4c4cce83e34d40c2bfd8133aa\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"8a39d00670f0792c1186e442e1dd28fe0326f2ee\",\"lessThan\":\"3a07249981629ace483ebbef81ef6b34c2d2afec\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"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\",\"versions\":[{\"version\":\"4.8\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"4.8\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.10.261\",\"lessThanOrEqual\":\"5.10.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.15.212\",\"lessThanOrEqual\":\"5.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.178\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.145\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.97\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.40\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.1.5\",\"lessThanOrEqual\":\"7.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.2\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}]},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/0cbae0e296d27ce4c4cce83e34d40c2bfd8133aa\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/1b4a3c2f0509e7b0e65667f3c36676a849ee2755\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/3a07249981629ace483ebbef81ef6b34c2d2afec\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/7099e7148f81c605bbc319b16ce0131540341560\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/90d35d2b8e47afd68fe2a4dd0eeb60bc71641775\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/cfe107b02a3c3f049e0dc15b6a36625f048eda2a\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/e01071ea006c9b952125ed8b0cc90ac7bd356cce\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/f398b7d92cd999191249830b9171c9bd787a9a91\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-18T19:17:39+00:00",
      "cve": "CVE-2026-72282",
      "id": "CVE-2026-72282",
      "initial_release_date": "2026-08-15T00:00:00+00:00",
      "product_status:known_affected": "232",
      "product_status:known_not_affected": "42",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: KVM: Move kvm_io_bus_get_dev() locking responsibilities to callers",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-72282.json",
      "version": "3"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Loading…