CVE-2026-80699: KVM: arm64: vgic: Avoid double-deactivate of IRQs in the nested context
In the Linux kernel, the following vulnerability has been resolved:
KVM: arm64: vgic: Avoid double-deactivate of IRQs in the nested context
In the nested state, the physical interrupt has already been deactivated through the HW bit in the LR. The extra deactivation would be harmless but can hit an errata case on AmpereOne, so avoid it here.
On AmpereOne, deactivating a physical interrupt through ICCDIREL1 or ICCEOIR1EL1 (depending on EOImode) which is not active, but is the highest priority pending interrupt causes the cpu to lose the interrupt pending state and also prevents the delivery of future interrupts.
Event History
Frequently Asked Questions
Which systems are most likely to be affected?
The issue applies to Linux KVM on arm64 using the virtual GIC in a nested virtualization context. The harmful behavior described is tied to an AmpereOne errata case.
What is the operational impact on affected AmpereOne systems?
If a physical interrupt that is not active is deactivated while it is the highest-priority pending interrupt, the CPU can lose that interrupt's pending state. It can also prevent delivery of future interrupts.
Is the extra interrupt deactivation always harmful?
No. The extra deactivation is described as normally harmless, but it can trigger the documented AmpereOne errata condition in nested state.