{"id":24616,"date":"2026-09-16T20:32:33","date_gmt":"2026-09-16T12:32:33","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89929"},"modified":"2026-09-16T20:32:33","modified_gmt":"2026-09-16T12:32:33","slug":"cve-2026-89929","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89929","title":{"rendered":"CVE-2026-89929 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: nVM: Ensure INVV"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>KVM: nVM: Ensure INVVPID is emulated on the correct physical CPU<\/p>\n<p>When emulating INVVPID, KVM executes INVVPID on the physical CPU using<br \/>\nvpid02 (instead of the L1 assigned VPID), after doing some validations<br \/>\non the operands. However, it is possible that the physical CPU KVM<br \/>\nexecutes INVVPID on is different from the CPU L2 is running on.<\/p>\n<p>For example, in the following scenario:<br \/>\n&#8211; L2 runs on CPU #1 and exits to L1 (vmx-&gt;nested.vmcs02.cpu=1)<br \/>\n&#8211; L1 migrates to CPU #2 and executes INVVPID<br \/>\n&#8211; KVM executes INVVPID on CPU #2<br \/>\n&#8211; L1 migrates back to CPU #1 and runs L2 (vmx-&gt;nested.vmcs02.cpu=1)<\/p>\n<p>The TLB entries on CPU #1 are never invalidated, because INVVPID was<br \/>\nexecuted on CPU #2, and vmcs02 never ran on a different pCPU (i.e.<br \/>\nvmx_vcpu_load_vmcs() will *not* request KVM_REQ_TLB_FLUSH).<\/p>\n<p>Ensure that INVVPID is being executed on the same pCPU that L2 last ran<br \/>\non, and if not, fallback to clearing last_vpid=0 to trigger a full VPID<br \/>\nflush on the next nested VM-Enter (as KVM will detect L1 using a<br \/>\ndifferent VPID for L2). If L2 ends up running on a different pCPU, KVM<br \/>\nwill flush the TLB anyway through vmx_vcpu_load_vmcs().<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>KVM: nVM: Ensure INVVPID is emulated on the correct physical CPU<\/p>\n<p>When emulating INVVPID, KVM executes INVVPID on the physical CPU <\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-24616","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/24616","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=24616"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=24616"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=24616"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}