<?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>Tue, 29 Sep 2026 05:26:27 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-97525 — x86/mm/pat: Allocate split page tables as kernel page tables</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-97525</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;x86/mm/pat: Allocate split page tables as kernel page tables&lt;/p&gt;
&lt;p&gt;A PTE is allocated directly without going through the standard page table
allocation routines (such as pte_alloc_one_kernel()) when the CPA code
splits a large page (__split_large_page()).&lt;/p&gt;
&lt;p&gt;This means the page table constructor is never called nor is the page table
marked as a kernel page table.&lt;/p&gt;
&lt;p&gt;The former results in the folio associated with the page table not being
marked as a page table (__pagetable_ctor() is never called thus neither is
__folio_set_pgtable()) nor are statistics updated to reflect
it (lruvec_stat_add_folio() is never called).&lt;/p&gt;
&lt;p&gt;The latter issue of failing to mark the page table as a kernel page
table (ptdesc_set_kernel() is never called) is far more problematic.&lt;/p&gt;
&lt;p&gt;Since commit:&lt;/p&gt;
&lt;p&gt;5ba2f0a15564 (&amp;#34;mm: introduce deferred freeing for kernel page tables&amp;#34;)&lt;/p&gt;
&lt;p&gt;kernel page table freeing has been batched and since the
subsequent commit:&lt;/p&gt;
&lt;p&gt;e37d5a2d60a3 (&amp;#34;iommu/sva: invalidate stale IOTLB entries for kernel address space&amp;#34;)&lt;/p&gt;
&lt;p&gt;IOTLB cache entries for kernel page tables have been invalidated upon
being freed.&lt;/p&gt;
&lt;p&gt;Since split page tables are freed without this invalidation, the IOTLB
can contain stale entries for them.&lt;/p&gt;
&lt;p&gt;Resolve the issue by using the ordinary PTE allocation API at split time.&lt;/p&gt;
&lt;p&gt;This results in these kernel page tables invoking a page table constructor,
and thus requires a page table destructor.&lt;/p&gt;
&lt;p&gt;Destructors are not always present,…&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;x86/mm/pat: Allocate split page tables as kernel page tables&lt;/p&gt;
&lt;p&gt;A PTE is allocated directly without going through the standard page table
allocation routines (such as pte_alloc_one_kernel()) when the CPA code
splits a large page (__split_large_page()).&lt;/p&gt;
&lt;p&gt;This means the page table constructor is never called nor is the page table
marked as a kernel page table.&lt;/p&gt;
&lt;p&gt;The former results in the folio associated with the page table not being
marked as a page table (__pagetable_ctor() is never called thus neither is
__folio_set_pgtable()) nor are statistics updated to reflect
it (lruvec_stat_add_folio() is never called).&lt;/p&gt;
&lt;p&gt;The latter issue of failing to mark the page table as a kernel page
table (ptdesc_set_kernel() is never called) is far more problematic.&lt;/p&gt;
&lt;p&gt;Since commit:&lt;/p&gt;
&lt;p&gt;5ba2f0a15564 (&amp;#34;mm: introduce deferred freeing for kernel page tables&amp;#34;)&lt;/p&gt;
&lt;p&gt;kernel page table freeing has been batched and since the
subsequent commit:&lt;/p&gt;
&lt;p&gt;e37d5a2d60a3 (&amp;#34;iommu/sva: invalidate stale IOTLB entries for kernel address space&amp;#34;)&lt;/p&gt;
&lt;p&gt;IOTLB cache entries for kernel page tables have been invalidated upon
being freed.&lt;/p&gt;
&lt;p&gt;Since split page tables are freed without this invalidation, the IOTLB
can contain stale entries for them.&lt;/p&gt;
&lt;p&gt;Resolve the issue by using the ordinary PTE allocation API at split time.&lt;/p&gt;
&lt;p&gt;This results in these kernel page tables invoking a page table constructor,
and thus requires a page table destructor.&lt;/p&gt;
&lt;p&gt;Destructors are not always present,…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-97525</guid>
    </item>
  </channel>
</rss>
