<?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>Sat, 03 Oct 2026 23:27:47 +0000</lastBuildDate>
    <item>
      <title>CVE-2025-22034 — mm/gup: reject FOLL_SPLIT_PMD with hugetlb VMAs</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2025-22034</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/gup: reject FOLL_SPLIT_PMD with hugetlb VMAs&lt;/p&gt;
&lt;p&gt;Patch series &amp;#34;mm: fixes for device-exclusive entries (hmm)&amp;#34;, v2.&lt;/p&gt;
&lt;p&gt;Discussing the PageTail() call in make_device_exclusive_range() with
Willy, I recently discovered [1] that device-exclusive handling does not
properly work with THP, making the hmm-tests selftests fail if THPs are
enabled on the system.&lt;/p&gt;
&lt;p&gt;Looking into more details, I found that hugetlb is not properly fenced,
and I realized that something that was bugging me for longer -- how
device-exclusive entries interact with mapcounts -- completely breaks
migration/swapout/split/hwpoison handling of these folios while they have
device-exclusive PTEs.&lt;/p&gt;
&lt;p&gt;The program below can be used to allocate 1 GiB worth of pages and making
them device-exclusive on a kernel with CONFIG_TEST_HMM.&lt;/p&gt;
&lt;p&gt;Once they are device-exclusive, these folios cannot get swapped out
(proc$pid/smaps_rollup will always indicate 1 GiB RSS no matter how much
one forces memory reclaim), and when having a memory block onlined to
ZONE_MOVABLE, trying to offline it will loop forever and complain about
failed migration of a page that should be movable.&lt;/p&gt;
&lt;p&gt;# echo offline &amp;gt; /sys/devices/system/memory/memory136/state
# echo online_movable &amp;gt; /sys/devices/system/memory/memory136/state
# ./hmm-swap &amp;amp;
... wait until everything is device-exclusive
# echo offline &amp;gt; /sys/devices/system/memory/memory136/state
[  285.193431][T14882] page: refcount:2 mapcount:0 mapp…&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/gup: reject FOLL_SPLIT_PMD with hugetlb VMAs&lt;/p&gt;
&lt;p&gt;Patch series &amp;#34;mm: fixes for device-exclusive entries (hmm)&amp;#34;, v2.&lt;/p&gt;
&lt;p&gt;Discussing the PageTail() call in make_device_exclusive_range() with
Willy, I recently discovered [1] that device-exclusive handling does not
properly work with THP, making the hmm-tests selftests fail if THPs are
enabled on the system.&lt;/p&gt;
&lt;p&gt;Looking into more details, I found that hugetlb is not properly fenced,
and I realized that something that was bugging me for longer -- how
device-exclusive entries interact with mapcounts -- completely breaks
migration/swapout/split/hwpoison handling of these folios while they have
device-exclusive PTEs.&lt;/p&gt;
&lt;p&gt;The program below can be used to allocate 1 GiB worth of pages and making
them device-exclusive on a kernel with CONFIG_TEST_HMM.&lt;/p&gt;
&lt;p&gt;Once they are device-exclusive, these folios cannot get swapped out
(proc$pid/smaps_rollup will always indicate 1 GiB RSS no matter how much
one forces memory reclaim), and when having a memory block onlined to
ZONE_MOVABLE, trying to offline it will loop forever and complain about
failed migration of a page that should be movable.&lt;/p&gt;
&lt;p&gt;# echo offline &amp;gt; /sys/devices/system/memory/memory136/state
# echo online_movable &amp;gt; /sys/devices/system/memory/memory136/state
# ./hmm-swap &amp;amp;
... wait until everything is device-exclusive
# echo offline &amp;gt; /sys/devices/system/memory/memory136/state
[  285.193431][T14882] page: refcount:2 mapcount:0 mapp…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2025-22034</guid>
    </item>
  </channel>
</rss>
