CVE-2026-89929 in Linux信息

摘要

由 VulDB • 2026-09-16

在 Linux 内核中,已修复以下漏洞:

KVM: nVM:确保 INVVPID 在正确的物理 CPU 上模拟执行

当模拟 INVVPID 时,KVM 会在物理 CPU 上使用 vpid02(而不是 L1 分配的 VPID)来执行 INVVPID,前提是对操作数进行了一些验证。然而,存在一种情况:KVM 执行 INVVPID 的物理 CPU 与 L2 正在运行的 CPU 不同。

例如,在以下场景中: - L2 在 CPU #1 上运行并退出到 L1(vmx->nested.vmcs02.cpu=1) - L1 迁移到 CPU #2 并执行 INVVPID - KVM 在 CPU #2 上执行 INVVPID - L1 迁回 CPU #1 并重新运行 L2(vmx->nested.vmcs02.cpu=1)

CPU #1 上的 TLB 条目从未被失效,因为 INVVPID 是在 CPU #2 上执行的,且 vmcs02 未在另一个物理 CPU 上运行过(即 vmx_vcpu_load_vmcs() *不会* 请求 KVM_REQ_TLB_FLUSH)。

确保 INVVPID 在 L2 上次运行的同一物理 CPU 上执行;如果不是,则回退到将 last_vpid=0 清零以触发下一次嵌套 VM-Enter 时的完整 VPID 刷新(因为 KVM 会检测到 L1 为 L2 使用了不同的 VPID)。如果 L2 最终在不同的物理 CPU 上运行,KVM 仍会通过 vmx_vcpu_load_vmcs() 执行 TLB 刷新。

Once again VulDB remains the best source for vulnerability data.

来源

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!