CVE-2026-72289

KVM: arm64: vgic: Check the interrupt is still ours before migrating it

State
Published
Severity
9.3 Critical
Published
Aug 15, 2026
Updated
Oct 16, 2026
Reserved
Aug 9, 2026

Read the record on cve.org

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.

Scores

CVSSScoreVectorSource
3.19.3 CriticalCVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 0919e84c0fc1fc73525fdcedefab89ea8460f697 to before 3893e1fcf6f306b327a8358dcd1cbd077989a240Affected
  • 0919e84c0fc1fc73525fdcedefab89ea8460f697 to before cb3efe1a354f1638726725c3ecee1ce8d1a7e2dcAffected
  • 0919e84c0fc1fc73525fdcedefab89ea8460f697 to before da2d249a39a1881681c303ceea33f38ba1c5bbebAffected
  • 0919e84c0fc1fc73525fdcedefab89ea8460f697 to before 654be81c4c637af12709d47c7efc3302cd336513Affected
  • 0919e84c0fc1fc73525fdcedefab89ea8460f697 to before e363c0bc0226dc5ea5046a88e9a6864b82c45399Affected
  • 0919e84c0fc1fc73525fdcedefab89ea8460f697 to before 79fdd2aa774e44847cd9bb7edc811e73e3dc7bfeAffected
  • 0919e84c0fc1fc73525fdcedefab89ea8460f697 to before 0658b09cba7fe866c6cd70cd2dcdfdcabe80328fAffected
  • 0919e84c0fc1fc73525fdcedefab89ea8460f697 to before 0074b82cdfcb5fd13710a0ac308ade68ac6f6fbeAffected
LinuxLinux
  • 4.7Affected
  • before 4.7Not affected
  • 5.10.261 through 5.10.*Not affected
  • 5.15.212 through 5.15.*Not affected
  • 6.1.178 through 6.1.*Not affected
  • 6.6.145 through 6.6.*Not affected
  • 6.12.97 through 6.12.*Not affected
  • 6.18.40 through 6.18.*Not affected
  • 7.1.5 through 7.1.*Not affected
  • 7.2 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.