{"id":41191,"date":"2026-10-19T00:32:32","date_gmt":"2026-10-18T16:32:32","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98719"},"modified":"2026-10-19T00:32:32","modified_gmt":"2026-10-18T16:32:32","slug":"cve-2026-98719","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98719","title":{"rendered":"CVE-2026-98719 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: SEV: Nullify &#8220;ha"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>KVM: SEV: Nullify &#8220;have run CPUs&#8221; mask pointer when freeing it<\/p>\n<p>Nullify have_run_cpus when freeing the mask, particularly in the error path<br \/>\nof __sev_guest_init(), so that KVM doesn&#8217;t have to subtly use sev-&gt;active<br \/>\nto track whether or not the mask has been freed.  As pointed out by Sashiko,<br \/>\nblindly freeing the mask in sev_vm_destroy() results in a double-free if<br \/>\nthe mask is freed if __sev_guest_init() fails.<\/p>\n<p>Throw the logic in a helper as nullifying the pointer is frustratingly<br \/>\ndifficult and weird due to have_run_cpus being a single-entry array when<br \/>\nCPUMASK_OFFSTACK=n.  Deliberately don&#8217;t use CPUMASK_VAR_NULL, as it&#8217;s not<br \/>\ndirectly assignable when the cpumask is on-stack, e.g. requires using a<br \/>\nlocal variable and a memcpy(), which is beyond ridiculous.  Furthermore,<br \/>\nwhile clearing the on-stack bitmask is an unnecessary and arguably unwanted<br \/>\nside effect, KVM absolutely relies on &#8216;0&#8217; being the &#8220;null&#8221; value given that<br \/>\nthe struct is zero-allocated.<\/p>\n<p>Opportunistically add an alloc() helper to pair with free(); there are just<br \/>\nenough call sites to make doing so worthwhile.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>KVM: SEV: Nullify &#8220;have run CPUs&#8221; mask pointer when freeing it<\/p>\n<p>Nullify have_run_cpus when freeing the mask, particularly in the er<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-41191","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/41191","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=41191"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=41191"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=41191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}