Database/Kernel, userspace & hypervisor

KVM arm64 vgic-its: double reference drop on the ITS translation cache frees an in-use interrupt
Impact
vgic_its_invalidate_cache() walks the per-ITS translation cache and calls vgic_put_irq() on the iterated pointer rather than on the value xa_erase() returned. The three callers do not exclude one another - ITS command handlers hold its_lock, the GITS_CTLR write path holds cmd_lock, and the GICR_CTLR EnableLPIs-clear path holds neither - so two contexts draining the same cache can each erase and then put the same entry, dropping the cache's single reference more than once and freeing an interrupt while an ITE still maps it. A guest drives all three paths from inside the VM, so this is a guest-to-host memory-corruption primitive with a scope-changed CVSS of 9.3. On arm64 virtualization hosts running tenant VMs with passthrough accelerators, that is a tenant escaping into the hypervisor; Red Hat ships the fix for RHEL 9/10 and OpenShift 4.19/4.20, which means it also lands on OpenShift GPU worker nodes.
Who can reach it
Local to the host in CVSS terms, but the reachable actor is a guest VM: any tenant able to issue ITS commands and write GITS_CTLR/GICR_CTLR in its own virtual GIC on an arm64 KVM host. No host credentials needed.
What to do
Install the patched kernel (RHSA-2026:34911 for Red Hat systems, or the stable commits listed) and reboot each arm64 KVM host; the fix is in the kvm module's vgic code and cannot be applied to running guests. Hosts must be evacuated - live-migrate or drain tenant VMs, then reboot. x86 hosts are not affected.
References
Related entries
- PREVAIL eBPF verifier: stale offset tracking lets out-of-bounds BPF programs pass verificationCVE-2026-53670 · PREVAIL eBPF verifier (EbpfTransformer::add offset tracking)Critical
- PREVAIL: writes through a context pointer are modelled as a no-op, so unsafe eBPF programs verify as safeCVE-2026-53671 · PREVAIL eBPF verifier (T_CTX store abstract transformer)Critical
- Linux kernel (arch/x86/kvm/svm): Page State Change requests from a confidential guest were validated against theCVE-2026-63938 · Linux kernel (arch/x86/kvm/svm)Critical
- Linux kernel (arch/x86/kvm/svm): KVM computed the usable size of the guest-provided GHCB scratch area wrongly, so aCVE-2026-63939 · Linux kernel (arch/x86/kvm/svm)Critical
- Linux kernel (arch/x86/kvm/svm): A confidential guest can hand KVM a port-I/O request with length or count zeroCVE-2026-63940 · Linux kernel (arch/x86/kvm/svm)Critical
- Linux kernel arm_ffa: use-after-free racing a notifier unregister against notification deliveryCVE-2026-64080 · Linux kernel arm_ffa firmware driver (notification callback lookup)Critical
This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.