<?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>Fri, 02 Oct 2026 11:16:17 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-46113 — KVM: x86: Fix shadow paging use-after-free due to unexpected GFN</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-46113</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: x86: Fix shadow paging use-after-free due to unexpected GFN&lt;/p&gt;
&lt;p&gt;The shadow MMU computes GFNs for direct shadow pages using sp-&amp;gt;gfn plus
the SPTE index. This assumption breaks for shadow paging if the guest
page tables are modified between VM entries (similar to commit
aad885e77496, &amp;#34;KVM: x86/mmu: Drop/zap existing present SPTE even
when creating an MMIO SPTE&amp;#34;, 2026-03-27).  The flow is as follows:&lt;/p&gt;
&lt;p&gt;- a PDE is installed for a 2MB mapping, and a page in that area is
  accessed.  KVM creates a kvm_mmu_page consisting of 512 4KB pages;
  the kvm_mmu_page is marked by FNAME(fetch) as direct-mapped because
  the guest&amp;#39;s mapping is a huge page (and thus contiguous).&lt;/p&gt;
&lt;p&gt;- the PDE mapping is changed from outside the guest.&lt;/p&gt;
&lt;p&gt;- the guest accesses another page in the same 2MB area.  KVM installs
  a new leaf SPTE and rmap entry; the SPTE uses the &amp;#34;correct&amp;#34; GFN
  (i.e. based on the new mapping, as changed in the previous step) but
  that GFN is outside of the [sp-&amp;gt;gfn, sp-&amp;gt;gfn + 511] range; therefore
  the rmap entry cannot be found and removed when the kvm_mmu_page
  is zapped.&lt;/p&gt;
&lt;p&gt;- the memslot that covers the first 2MB mapping is deleted, and the
  kvm_mmu_page for the now-invalid GPA is zapped.  However, rmap_remove()
  only looks at the [sp-&amp;gt;gfn, sp-&amp;gt;gfn + 511] range established in step 1,
  and fails to find the rmap entry that was recorded by step 3.&lt;/p&gt;
&lt;p&gt;- any operation that causes an rmap walk for the same page access…&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: x86: Fix shadow paging use-after-free due to unexpected GFN&lt;/p&gt;
&lt;p&gt;The shadow MMU computes GFNs for direct shadow pages using sp-&amp;gt;gfn plus
the SPTE index. This assumption breaks for shadow paging if the guest
page tables are modified between VM entries (similar to commit
aad885e77496, &amp;#34;KVM: x86/mmu: Drop/zap existing present SPTE even
when creating an MMIO SPTE&amp;#34;, 2026-03-27).  The flow is as follows:&lt;/p&gt;
&lt;p&gt;- a PDE is installed for a 2MB mapping, and a page in that area is
  accessed.  KVM creates a kvm_mmu_page consisting of 512 4KB pages;
  the kvm_mmu_page is marked by FNAME(fetch) as direct-mapped because
  the guest&amp;#39;s mapping is a huge page (and thus contiguous).&lt;/p&gt;
&lt;p&gt;- the PDE mapping is changed from outside the guest.&lt;/p&gt;
&lt;p&gt;- the guest accesses another page in the same 2MB area.  KVM installs
  a new leaf SPTE and rmap entry; the SPTE uses the &amp;#34;correct&amp;#34; GFN
  (i.e. based on the new mapping, as changed in the previous step) but
  that GFN is outside of the [sp-&amp;gt;gfn, sp-&amp;gt;gfn + 511] range; therefore
  the rmap entry cannot be found and removed when the kvm_mmu_page
  is zapped.&lt;/p&gt;
&lt;p&gt;- the memslot that covers the first 2MB mapping is deleted, and the
  kvm_mmu_page for the now-invalid GPA is zapped.  However, rmap_remove()
  only looks at the [sp-&amp;gt;gfn, sp-&amp;gt;gfn + 511] range established in step 1,
  and fails to find the rmap entry that was recorded by step 3.&lt;/p&gt;
&lt;p&gt;- any operation that causes an rmap walk for the same page access…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-46113</guid>
    </item>
  </channel>
</rss>
