<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Thu, 01 Oct 2026 19:53:04 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-68093 — KVM: SVM: Bump asid_generation on CPU online to avoid ASID collision after hotplug</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-68093</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;KVM: SVM: Bump asid_generation on CPU online to avoid ASID collision after hotplug&lt;/p&gt;
&lt;p&gt;If a vCPU stays scheduled out (or blocked) while the last pCPU it ran
on goes through a hotplug cycle (online-&amp;gt;offline-&amp;gt;online), and the vCPU
then resumes execution on the same pCPU, then it is possible for it to
run with an ASID that has now been assigned to a different vCPU,
resulting in stale TLB translations being used.&lt;/p&gt;
&lt;p&gt;svm_enable_virtualization_cpu() resets asid_generation to 1 and sets
next_asid to max_asid + 1 on every CPU online event, including hotplug
cycles.  Because next_asid starts beyond the pool boundary, the first
call to new_asid() after an online event always wraps the pool,
incrementing asid_generation to 2 and assigning ASIDs starting from
min_asid.&lt;/p&gt;
&lt;p&gt;Consider two vCPUs from different VMs, vCPU-A pinned to CPU-X holding
asid_generation=2 and ASID=N from before the hotplug event:&lt;/p&gt;
&lt;p&gt;1. CPU-X goes offline and back online: asid_generation resets to 1,
     next_asid = max_asid + 1.&lt;/p&gt;
&lt;p&gt;2. One or more vCPUs migrate to CPU-X and call new_asid(), wrapping
     the pool and consuming ASIDs starting from min_asid.  Eventually
     vCPU-B from a different VM is assigned asid_generation=2, ASID=N
     — the same ASID that vCPU-A held before the hotplug.&lt;/p&gt;
&lt;p&gt;3. vCPU-A enters pre_svm_run() on CPU-X: current_vmcb-&amp;gt;cpu is
     unchanged so the migration branch is skipped.  Its saved
     asid_generation=2 matches sd-&amp;gt;asi…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;KVM: SVM: Bump asid_generation on CPU online to avoid ASID collision after hotplug&lt;/p&gt;
&lt;p&gt;If a vCPU stays scheduled out (or blocked) while the last pCPU it ran
on goes through a hotplug cycle (online-&amp;gt;offline-&amp;gt;online), and the vCPU
then resumes execution on the same pCPU, then it is possible for it to
run with an ASID that has now been assigned to a different vCPU,
resulting in stale TLB translations being used.&lt;/p&gt;
&lt;p&gt;svm_enable_virtualization_cpu() resets asid_generation to 1 and sets
next_asid to max_asid + 1 on every CPU online event, including hotplug
cycles.  Because next_asid starts beyond the pool boundary, the first
call to new_asid() after an online event always wraps the pool,
incrementing asid_generation to 2 and assigning ASIDs starting from
min_asid.&lt;/p&gt;
&lt;p&gt;Consider two vCPUs from different VMs, vCPU-A pinned to CPU-X holding
asid_generation=2 and ASID=N from before the hotplug event:&lt;/p&gt;
&lt;p&gt;1. CPU-X goes offline and back online: asid_generation resets to 1,
     next_asid = max_asid + 1.&lt;/p&gt;
&lt;p&gt;2. One or more vCPUs migrate to CPU-X and call new_asid(), wrapping
     the pool and consuming ASIDs starting from min_asid.  Eventually
     vCPU-B from a different VM is assigned asid_generation=2, ASID=N
     — the same ASID that vCPU-A held before the hotplug.&lt;/p&gt;
&lt;p&gt;3. vCPU-A enters pre_svm_run() on CPU-X: current_vmcb-&amp;gt;cpu is
     unchanged so the migration branch is skipped.  Its saved
     asid_generation=2 matches sd-&amp;gt;asi…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-68093</guid>
    </item>
  </channel>
</rss>
