GPU VulnDB

Database/Kernel, userspace & hypervisor

KVM nVMX: emulated INVVPID can run on the wrong physical CPU, leaving stale L2 TLB entries

CVSS 8.8CVE-2026-89929Kernel, userspace & hypervisorcurated

Impact

When emulating INVVPID, KVM executed the instruction on whatever physical CPU L1 happened to be on, using vpid02. If L1 migrated between running L2 and issuing the invalidation, the flush landed on a CPU that never ran that L2, and the stale TLB entries on the original CPU were never invalidated - vmx_vcpu_load_vmcs() does not request a flush because vmcs02.cpu is unchanged. A nested guest then executes against address translations the L1 hypervisor believed it had revoked, which is a memory-integrity and confidentiality break inside nested virtualization. This is relevant to GPU clouds that expose nested virt to tenants or run VMs inside VMs for CI and sandboxing. The fix checks that INVVPID runs on the pCPU L2 last ran on and otherwise forces a full VPID flush on the next nested VM-Enter.

Who can reach it

Local, from an L1 guest running nested VMs on an x86 KVM host. Requires nested virtualization to be enabled and exposed; fleets that do not offer nested virt are not exposed.

What to do

Apply the linked stable commits or a patched distribution kernel and reboot the hypervisor, moving guests off first. As an interim measure, disabling nested virtualization for tenant VMs removes the exposure entirely.

References

Related entries

All Kernel, userspace & hypervisor entries

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.