CVE-2026-72289: KVM: arm64: vgic: Check the interrupt is still ours before migrating it
In the Linux kernel, the following vulnerability has been resolved:
KVM: arm64: vgic: Check the interrupt is still ours before migrating it
vgicpruneaplist() drops both aplistlock and irqlock while migrating an interrupt to another vCPU. After reacquiring the locks it only checks that the affinity is unchanged (targetvcpu == vgictargetoracle(irq)) before moving the interrupt, which assumes that an interrupt whose affinity is preserved is still queued on this vCPU's aplist.
That assumption no longer holds if the interrupt is taken off the aplist while the locks are dropped. vgicflushpendinglpis() removes the interrupt from the list and sets irq->vcpu to NULL, but leaves enabled/pending/targetvcpu untouched. As the interrupt is still enabled and pending, vgictargetoracle() returns the same targetvcpu, so the affinity check passes and listdel() is run a second time on an entry that has already been removed.
Also check that the interrupt is still assigned to this vCPU (irq->vcpu == vcpu) before moving it.
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2026-72289?
CVE-2026-72289 has a risk score of 31, indicating a significant security vulnerability.
How do I fix CVE-2026-72289?
To remediate CVE-2026-72289, ensure you update your Linux kernel to the latest version that addresses this vulnerability.
What systems are affected by CVE-2026-72289?
CVE-2026-72289 affects systems utilizing the Linux kernel with KVM support for arm64 architecture.
What kind of attacks can exploit CVE-2026-72289?
CVE-2026-72289 could potentially allow an attacker to cause denial of service or disrupt virtual machines.
Is CVE-2026-72289 already patched?
Yes, CVE-2026-72289 has been resolved in the Linux kernel as of its publication date on August 15, 2026.