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

KVM: arm64: vgic: Handle race between interrupt affinity change and LPI disabling

Hyunwoo Kim reports some really bad races should the following
situation occur:

- LPI-I is pending in vcpu-B's AP list
- vcpu-A writes to vcpu-B's RD to disable its LPIs
- vcpu-C moves I from B to C

If the last two race nicely enough, vgic_prune_ap_list() can drop
the irq and AP list locks, reacquire them, and in the interval
the irq has been freed. UAF follows.

The fix is two-fold:

- Before dropping the irq and ap_list locks, take a reference on
the irq

- Do not try to handle migration of the pending bit: there is no
expectation that this state is retained, as per the architecture

With that, we're sure that the interrupt is still around, and we
safely remove it from the AP list as it has no target at this
stage (unless another interrupt fires, but that's another story).
Published: 2026-08-15
Score: 9.3 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A race condition exists in the Linux KVM arm64 Virtual Generic Interrupt Controller (VGIC) implementation. If an interrupt remains pending in one virtual CPU’s pending list while another virtual CPU disables the same LPI and a third virtual CPU migrates the interrupt, the VGIC may drop lock protection, release the interrupt reference, and subsequently free the interrupt object. The next operation then dereferences a freed object, resulting in a use‑after‑free exploit. This flaw aligns with CWE-364 (Race Condition).

Affected Systems

All versions of the Linux kernel that contain the arm64 KVM VGIC code prior to the patch commit (c/7258770e5814f15e8308ebda82ac9acf6964ba8e) are affected. Systems running KVM guests on ARM64 hardware, where the kernel’s VGIC implementation is in use, are at risk.

Risk and Exploitability

The CVSS score of 9.3 indicates a high severity vulnerability, while the EPSS score of less than 1% suggests a low probability of exploitation in the wild. The CVE is not listed in the CISA KEV catalog. Based on the description, it is inferred that exploitation requires precise timing across three virtual CPUs and hypervisor‑level control, implying that only an attacker with root or hypervisor privileges could orchestrate the required race. The likely attack vector is a coordinated race between vCPU threads inside a privileged hypervisor. If successful, the use‑after‑free could lead to arbitrary code execution in the kernel or a denial‑of‑service through a kernel crash.

Generated by OpenCVE AI on August 22, 2026 at 08:18 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply a kernel update that incorporates the reference-counting and lock-prevention changes described in the patch commit b1a89d12d35a8256d2b170ced0b1c86851f3def2.
  • If an update is not possible, manually backport the patches from the referenced Git commits to add the missing reference count and to omit pending‑bit migration handling in vgic_prune_ap_list().
  • As a temporary workaround, limit LPI disabling to a single virtual CPU or disable LPI handling entirely on VMs until the patch is available.

Generated by OpenCVE AI on August 22, 2026 at 08:18 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 22 Aug 2026 07:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Wed, 19 Aug 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-364
References
Metrics threat_severity

None

threat_severity

Moderate


Mon, 17 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 9.3, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H'}


Sat, 15 Aug 2026 19:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sat, 15 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: KVM: arm64: vgic: Handle race between interrupt affinity change and LPI disabling Hyunwoo Kim reports some really bad races should the following situation occur: - LPI-I is pending in vcpu-B's AP list - vcpu-A writes to vcpu-B's RD to disable its LPIs - vcpu-C moves I from B to C If the last two race nicely enough, vgic_prune_ap_list() can drop the irq and AP list locks, reacquire them, and in the interval the irq has been freed. UAF follows. The fix is two-fold: - Before dropping the irq and ap_list locks, take a reference on the irq - Do not try to handle migration of the pending bit: there is no expectation that this state is retained, as per the architecture With that, we're sure that the interrupt is still around, and we safely remove it from the AP list as it has no target at this stage (unless another interrupt fires, but that's another story).
Title KVM: arm64: vgic: Handle race between interrupt affinity change and LPI disabling
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-17T05:42:23.669Z

Reserved: 2026-08-09T03:40:39.917Z

Link: CVE-2026-72288

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T06:22:00.450

Modified: 2026-08-17T06:18:31.557

Link: CVE-2026-72288

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-15T00:00:00Z

Links: CVE-2026-72288 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-22T08:30:17Z

Weaknesses
  • CWE-364

    Signal Handler Race Condition