<?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:15:44 +0000</lastBuildDate>
    <item>
      <title>CVE-2024-49873 — mm/filemap: fix filemap_get_folios_contig THP panic</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2024-49873</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/filemap: fix filemap_get_folios_contig THP panic&lt;/p&gt;
&lt;p&gt;Patch series &amp;#34;memfd-pin huge page fixes&amp;#34;.&lt;/p&gt;
&lt;p&gt;Fix multiple bugs that occur when using memfd_pin_folios with hugetlb
pages and THP.  The hugetlb bugs only bite when the page is not yet
faulted in when memfd_pin_folios is called.  The THP bug bites when the
starting offset passed to memfd_pin_folios is not huge page aligned.  See
the commit messages for details.&lt;/p&gt;
&lt;p&gt;This patch (of 5):&lt;/p&gt;
&lt;p&gt;memfd_pin_folios on memory backed by THP panics if the requested start
offset is not huge page aligned:&lt;/p&gt;
&lt;p&gt;BUG: kernel NULL pointer dereference, address: 0000000000000036
RIP: 0010:filemap_get_folios_contig+0xdf/0x290
RSP: 0018:ffffc9002092fbe8 EFLAGS: 00010202
RAX: 0000000000000002 RBX: 0000000000000002 RCX: 0000000000000002&lt;/p&gt;
&lt;p&gt;The fault occurs here, because xas_load returns a folio with value 2:&lt;/p&gt;
&lt;p&gt;filemap_get_folios_contig()
        for (folio = xas_load(&amp;amp;xas); folio &amp;amp;&amp;amp; xas.xa_index &amp;lt;= end;
                        folio = xas_next(&amp;amp;xas)) {
                ...
                if (!folio_try_get(folio))   &amp;lt;-- BOOM&lt;/p&gt;
&lt;p&gt;&amp;#34;2&amp;#34; is an xarray sibling entry.  We get it because memfd_pin_folios does
not round the indices passed to filemap_get_folios_contig to huge page
boundaries for THP, so we load from the middle of a huge page range see a
sibling.  (It does round for hugetlbfs, at the is_file_hugepages test).&lt;/p&gt;
&lt;p&gt;To fix, if the folio is a sibling, then return the next index as the
starting poin…&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/filemap: fix filemap_get_folios_contig THP panic&lt;/p&gt;
&lt;p&gt;Patch series &amp;#34;memfd-pin huge page fixes&amp;#34;.&lt;/p&gt;
&lt;p&gt;Fix multiple bugs that occur when using memfd_pin_folios with hugetlb
pages and THP.  The hugetlb bugs only bite when the page is not yet
faulted in when memfd_pin_folios is called.  The THP bug bites when the
starting offset passed to memfd_pin_folios is not huge page aligned.  See
the commit messages for details.&lt;/p&gt;
&lt;p&gt;This patch (of 5):&lt;/p&gt;
&lt;p&gt;memfd_pin_folios on memory backed by THP panics if the requested start
offset is not huge page aligned:&lt;/p&gt;
&lt;p&gt;BUG: kernel NULL pointer dereference, address: 0000000000000036
RIP: 0010:filemap_get_folios_contig+0xdf/0x290
RSP: 0018:ffffc9002092fbe8 EFLAGS: 00010202
RAX: 0000000000000002 RBX: 0000000000000002 RCX: 0000000000000002&lt;/p&gt;
&lt;p&gt;The fault occurs here, because xas_load returns a folio with value 2:&lt;/p&gt;
&lt;p&gt;filemap_get_folios_contig()
        for (folio = xas_load(&amp;amp;xas); folio &amp;amp;&amp;amp; xas.xa_index &amp;lt;= end;
                        folio = xas_next(&amp;amp;xas)) {
                ...
                if (!folio_try_get(folio))   &amp;lt;-- BOOM&lt;/p&gt;
&lt;p&gt;&amp;#34;2&amp;#34; is an xarray sibling entry.  We get it because memfd_pin_folios does
not round the indices passed to filemap_get_folios_contig to huge page
boundaries for THP, so we load from the middle of a huge page range see a
sibling.  (It does round for hugetlbfs, at the is_file_hugepages test).&lt;/p&gt;
&lt;p&gt;To fix, if the folio is a sibling, then return the next index as the
starting poin…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2024-49873</guid>
    </item>
  </channel>
</rss>
