CVE-2026-72289 KVM: arm64: vgic: Check the interrupt is still ours before migrating it
A race condition in the Linux kernel's KVM arm64 VGIC allows a double list deletion, potentially causing a kernel crash or denial of service.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-72289?
CVE-2026-72289 is a critical vulnerability in Linux, published on 15 Aug 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
In the Linux kernel, the following vulnerability has been resolved:
KVM: arm64: vgic: Check the interrupt is still ours before migrating it
vgic_prune_ap_list() drops both ap_list_lock and irq_lock while migrating an interrupt to another vCPU. After reacquiring the locks it only checks that the affinity is unchanged (target_vcpu == vgic_target_oracle(irq)) before moving the interrupt, which assumes that an interrupt whose affinity is preserved is still queued on this vCPU's ap_list.
That assumption no longer holds if the interrupt is taken off the ap_list while the locks are dropped. vgic_flush_pending_lpis() removes the interrupt from the list and sets irq->vcpu to NULL, but leaves enabled/pending/target_vcpu untouched. As the interrupt is still enabled and pending, vgic_target_oracle() returns the same target_vcpu, so the affinity check passes and list_del() 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.
Which versions are affected by CVE-2026-72289?
How do I fix CVE-2026-72289?
Apply the vendor's patch.
Is CVE-2026-72289 being exploited?
There is no known exploitation of CVE-2026-72289 in the wild and no public exploit code.
Sources
Also known as BELL-CVE-2026-72289, DEBIAN-CVE-2026-72289, GHSA-j2wf-f982-8f9v, UBUNTU-CVE-2026-72289.