<?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>Mon, 05 Oct 2026 01:32:31 +0000</lastBuildDate>
    <item>
      <title>CVE-2024-35877 — x86/mm/pat: fix VM_PAT handling in COW mappings</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2024-35877</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux, Siemens SIMATIC S7-1500 TM MFP - GNU/Linux subsystem&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: fix VM_PAT handling in COW mappings&lt;/p&gt;
&lt;p&gt;PAT handling won&amp;#39;t do the right thing in COW mappings: the first PTE (or,
in fact, all PTEs) can be replaced during write faults to point at anon
folios.  Reliably recovering the correct PFN and cachemode using
follow_phys() from PTEs will not work in COW mappings.&lt;/p&gt;
&lt;p&gt;Using follow_phys(), we might just get the address+protection of the anon
folio (which is very wrong), or fail on swap/nonswap entries, failing
follow_phys() and triggering a WARN_ON_ONCE() in untrack_pfn() and
track_pfn_copy(), not properly calling free_pfn_range().&lt;/p&gt;
&lt;p&gt;In free_pfn_range(), we either wouldn&amp;#39;t call memtype_free() or would call
it with the wrong range, possibly leaking memory.&lt;/p&gt;
&lt;p&gt;To fix that, let&amp;#39;s update follow_phys() to refuse returning anon folios,
and fallback to using the stored PFN inside vma-&amp;gt;vm_pgoff for COW mappings
if we run into that.&lt;/p&gt;
&lt;p&gt;We will now properly handle untrack_pfn() with COW mappings, where we
don&amp;#39;t need the cachemode.  We&amp;#39;ll have to fail fork()-&amp;gt;track_pfn_copy() if
the first page was replaced by an anon folio, though: we&amp;#39;d have to store
the cachemode in the VMA to make this work, likely growing the VMA size.&lt;/p&gt;
&lt;p&gt;For now, lets keep it simple and let track_pfn_copy() just fail in that
case: it would have failed in the past with swap/nonswap entries already,
and it would have done the wrong thing with anon folios.&lt;/p&gt;
&lt;p&gt;Simple reproducer to trigger the WARN_ON_ONCE() in untr…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux, Siemens SIMATIC S7-1500 TM MFP - GNU/Linux subsystem&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: fix VM_PAT handling in COW mappings&lt;/p&gt;
&lt;p&gt;PAT handling won&amp;#39;t do the right thing in COW mappings: the first PTE (or,
in fact, all PTEs) can be replaced during write faults to point at anon
folios.  Reliably recovering the correct PFN and cachemode using
follow_phys() from PTEs will not work in COW mappings.&lt;/p&gt;
&lt;p&gt;Using follow_phys(), we might just get the address+protection of the anon
folio (which is very wrong), or fail on swap/nonswap entries, failing
follow_phys() and triggering a WARN_ON_ONCE() in untrack_pfn() and
track_pfn_copy(), not properly calling free_pfn_range().&lt;/p&gt;
&lt;p&gt;In free_pfn_range(), we either wouldn&amp;#39;t call memtype_free() or would call
it with the wrong range, possibly leaking memory.&lt;/p&gt;
&lt;p&gt;To fix that, let&amp;#39;s update follow_phys() to refuse returning anon folios,
and fallback to using the stored PFN inside vma-&amp;gt;vm_pgoff for COW mappings
if we run into that.&lt;/p&gt;
&lt;p&gt;We will now properly handle untrack_pfn() with COW mappings, where we
don&amp;#39;t need the cachemode.  We&amp;#39;ll have to fail fork()-&amp;gt;track_pfn_copy() if
the first page was replaced by an anon folio, though: we&amp;#39;d have to store
the cachemode in the VMA to make this work, likely growing the VMA size.&lt;/p&gt;
&lt;p&gt;For now, lets keep it simple and let track_pfn_copy() just fail in that
case: it would have failed in the past with swap/nonswap entries already,
and it would have done the wrong thing with anon folios.&lt;/p&gt;
&lt;p&gt;Simple reproducer to trigger the WARN_ON_ONCE() in untr…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2024-35877</guid>
    </item>
  </channel>
</rss>
