<?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 03:16:41 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-68163 — mm/page_vma_mapped: fix device-private PMD handling</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-68163</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;mm/page_vma_mapped: fix device-private PMD handling&lt;/p&gt;
&lt;p&gt;Commit 65edfda6f3f2 (&amp;#34;mm/rmap: extend rmap and migration support
device-private entries&amp;#34;) introduced the concept of device-private PMD
entries, but did not correctly update the rmap walk code to account for
them.&lt;/p&gt;
&lt;p&gt;As a result, when page_vma_mapped_walk() encounters device-private PMD
entries, it takes no action other than to acquire the PMD lock and exit.&lt;/p&gt;
&lt;p&gt;However this is highly problematic for two reasons - firstly, device
private entries possess a PFN so check_pmd() needs to be called to ensure
an overlapping PFN range.&lt;/p&gt;
&lt;p&gt;Secondly, and more importantly, if PVMW_MIGRATION is set the caller
assumes the returned entry is a migration entry, resulting in memory
corruption when the caller tries to interpret the device private entry as
such.&lt;/p&gt;
&lt;p&gt;In addition, commit 146287290023 (&amp;#34;mm/huge_memory: implement
device-private THP splitting&amp;#34;) allowed device private PMDs to be split
like THP mappings, but again did not update this code path.&lt;/p&gt;
&lt;p&gt;As a result, we might race a PMD split prior to acquiring the PMD lock.&lt;/p&gt;
&lt;p&gt;This patch addresses all of these issues by invoking check_pmd(), ensuring
PMVW_MIGRATION is not set and checks whether a split raced us we do for
PMD THP and migration entries.&lt;/p&gt;
&lt;p&gt;Instead of checking for a subset of the cases after taking the pmd_lock(),
put device-private along with pmd_trans_huge() and
pmd_is_migration_entry().  Also remove thp_migration_suppor…&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;mm/page_vma_mapped: fix device-private PMD handling&lt;/p&gt;
&lt;p&gt;Commit 65edfda6f3f2 (&amp;#34;mm/rmap: extend rmap and migration support
device-private entries&amp;#34;) introduced the concept of device-private PMD
entries, but did not correctly update the rmap walk code to account for
them.&lt;/p&gt;
&lt;p&gt;As a result, when page_vma_mapped_walk() encounters device-private PMD
entries, it takes no action other than to acquire the PMD lock and exit.&lt;/p&gt;
&lt;p&gt;However this is highly problematic for two reasons - firstly, device
private entries possess a PFN so check_pmd() needs to be called to ensure
an overlapping PFN range.&lt;/p&gt;
&lt;p&gt;Secondly, and more importantly, if PVMW_MIGRATION is set the caller
assumes the returned entry is a migration entry, resulting in memory
corruption when the caller tries to interpret the device private entry as
such.&lt;/p&gt;
&lt;p&gt;In addition, commit 146287290023 (&amp;#34;mm/huge_memory: implement
device-private THP splitting&amp;#34;) allowed device private PMDs to be split
like THP mappings, but again did not update this code path.&lt;/p&gt;
&lt;p&gt;As a result, we might race a PMD split prior to acquiring the PMD lock.&lt;/p&gt;
&lt;p&gt;This patch addresses all of these issues by invoking check_pmd(), ensuring
PMVW_MIGRATION is not set and checks whether a split raced us we do for
PMD THP and migration entries.&lt;/p&gt;
&lt;p&gt;Instead of checking for a subset of the cases after taking the pmd_lock(),
put device-private along with pmd_trans_huge() and
pmd_is_migration_entry().  Also remove thp_migration_suppor…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-68163</guid>
    </item>
  </channel>
</rss>
