<?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 04:59:45 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-89492 — ocfs2: validate directory-index entry counts when reading metadata</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-89492</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;ocfs2: validate directory-index entry counts when reading metadata&lt;/p&gt;
&lt;p&gt;ocfs2_validate_dx_leaf() and ocfs2_validate_dx_root() check the ECC and
signature of an indexed-directory block before it reaches higher-level
callers, but neither validator bounds the ocfs2_dx_entry_list counts
against the capacity of the block that holds them.&lt;/p&gt;
&lt;p&gt;ocfs2_dx_dir_search() then walks&lt;/p&gt;
&lt;p&gt;for (i = 0; i &amp;lt; le16_to_cpu(entry_list-&amp;gt;de_num_used); i++)
		dx_entry = &amp;amp;entry_list-&amp;gt;de_entries[i];&lt;/p&gt;
&lt;p&gt;over de_num_used entries with no bounds check.  entry_list is either
dx_leaf-&amp;gt;dl_list (from ocfs2_read_dx_leaf) or, for an inline root,
dx_root-&amp;gt;dr_entries.  A crafted on-disk image can set de_num_used (and
de_count, which is the __counted_by_le() bound of de_entries) to 0xffff
and make the walk read far past the end of the 4KB metadata block, giving
a slab out-of-bounds read reachable from any path lookup, stat() or open()
on an indexed directory once the image is mounted.&lt;/p&gt;
&lt;p&gt;Commit 775c17386a6f (&amp;#34;ocfs2: validate dx_root extent list fields during
block read&amp;#34;) already bounds dr_list for the non-inline dx_root, but left
the inline dr_entries path and the dx_leaf dl_list unchecked.  Add the
same read-time validation for both entry lists: de_count must equal the
capacity of the block (ocfs2_dx_entries_per_leaf()/per_root()) and
de_num_used must not exceed de_count, rejecting corrupted metadata with
-EFSCORRUPTED before ocfs2_dx_dir_search() can walk an…&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;ocfs2: validate directory-index entry counts when reading metadata&lt;/p&gt;
&lt;p&gt;ocfs2_validate_dx_leaf() and ocfs2_validate_dx_root() check the ECC and
signature of an indexed-directory block before it reaches higher-level
callers, but neither validator bounds the ocfs2_dx_entry_list counts
against the capacity of the block that holds them.&lt;/p&gt;
&lt;p&gt;ocfs2_dx_dir_search() then walks&lt;/p&gt;
&lt;p&gt;for (i = 0; i &amp;lt; le16_to_cpu(entry_list-&amp;gt;de_num_used); i++)
		dx_entry = &amp;amp;entry_list-&amp;gt;de_entries[i];&lt;/p&gt;
&lt;p&gt;over de_num_used entries with no bounds check.  entry_list is either
dx_leaf-&amp;gt;dl_list (from ocfs2_read_dx_leaf) or, for an inline root,
dx_root-&amp;gt;dr_entries.  A crafted on-disk image can set de_num_used (and
de_count, which is the __counted_by_le() bound of de_entries) to 0xffff
and make the walk read far past the end of the 4KB metadata block, giving
a slab out-of-bounds read reachable from any path lookup, stat() or open()
on an indexed directory once the image is mounted.&lt;/p&gt;
&lt;p&gt;Commit 775c17386a6f (&amp;#34;ocfs2: validate dx_root extent list fields during
block read&amp;#34;) already bounds dr_list for the non-inline dx_root, but left
the inline dr_entries path and the dx_leaf dl_list unchecked.  Add the
same read-time validation for both entry lists: de_count must equal the
capacity of the block (ocfs2_dx_entries_per_leaf()/per_root()) and
de_num_used must not exceed de_count, rejecting corrupted metadata with
-EFSCORRUPTED before ocfs2_dx_dir_search() can walk an…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-89492</guid>
    </item>
  </channel>
</rss>
