Skip to main content
← All vulnerabilities
CVE-2026-89932

KVM: nVMX: Always flush vpid02 on first use

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.15.221, 6.1.188, 6.6.157, 6.12.110, 6.18.51, and 1 more
None on Exploit-DB, Metasploit or GitHub

Summary

In the Linux kernel, the following vulnerability has been resolved: KVM: nVMX: Always flush vpid02 on first use Make sure vpid02 is always flushed on first use by setting last_vpid=0 when allocating vpid02. nested_vmx_transition_tlb_flush() will always detect a VPID change on first VM-Enter after VMXON, because VPID=0 in vmcs12 is not allowed if L1 enables VPID. This avoids using stale TLB entries from a previous lifetime of the VPID, that might have been associated with a different vCPU (or a completely different VM). Note that last_vpid is already being initialized as 0 when the vCPU is created, but it is not reset when vpid02 is freed on VMXOFF. Hence, the problem can only occur if L1 does VMXOFF -> VMXON, runs an L2, and KVM happens to reuse a VPID that has TLB entries on the physical CPU.

Timeline

  1. CVE published
  2. Record last updated

Affected versions

  • Linux Linux

    From 5c614b3583e7b6dab0c86356fa36c2bcbb8322a0 · fixed in 26de0d2d9a8d14c03e5ebb25fd68b5bfcd5ac366; From 5c614b3583e7b6dab0c86356fa36c2bcbb8322a0 · fixed in 8bc609999ec223089fec8d74c7de27d689606b36; From 5c614b3583e7b6dab0c86356fa36c2bcbb8322a0 · fixed in 62604376c313178811375f40a282fc2a46cd2311; From 5c614b3583e7b6dab0c86356fa36c2bcbb8322a0 · fixed in 8b98d662ab24f34710a56e03bc9169e4a5508606; From 5c614b3583e7b6dab0c86356fa36c2bcbb8322a0 · fixed in 22dfcc22c95e91295119a1c3b469816ce44c4804; From 5c614b3583e7b6dab0c86356fa36c2bcbb8322a0 · fixed in 121991d150735f3c0f7401678ce4d35c5b4ac898; From 5c614b3583e7b6dab0c86356fa36c2bcbb8322a0 · fixed in f0772389413dce9657c7d6950abf3edbbd511356

  • Linux Linux

    4.4

  • KernelLinux

    From 4.4.0 · fixed in 5.15.221; From 5.16.0 · fixed in 6.1.188; From 6.2.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.110; From 6.13.0 · fixed in 6.18.51; From 6.19.0 · fixed in 7.2.5

References 7

git.kernel.org