<?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 16:31:39 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-80674 — ntfs: validate resident attribute lists and harden the validator</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-80674</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;ntfs: validate resident attribute lists and harden the validator&lt;/p&gt;
&lt;p&gt;A base inode&amp;#39;s $ATTRIBUTE_LIST is sanity-checked by load_attribute_list()
only on the non-resident path; ntfs_read_locked_inode() copies a *resident*
attribute list into ni-&amp;gt;attr_list with a plain memcpy() and no validation
at all. Every subsequent walk of ni-&amp;gt;attr_list --
ntfs_external_attr_find(), ntfs_inode_attach_all_extents() and
ntfs_attrlist_need() -- then trusts the entries are well-formed and reads
attr_list_entry fixed-header fields
(lowest_vcn at offset 8, mft_reference at offset 16, and the name) with
bounds that assume validation already happened. A crafted resident
attribute list therefore reaches those walks unvalidated and can drive
out-of-bounds reads of the attribute-list buffer.&lt;/p&gt;
&lt;p&gt;load_attribute_list() itself reads ale-&amp;gt;name_offset (offset 7),
ale-&amp;gt;mft_reference (offset 16) and the name length under only an
&amp;#34;al &amp;lt; al_start + size&amp;#34; bound, so its own validation loop can over-read the
fixed header of a truncated trailing entry by a few bytes.&lt;/p&gt;
&lt;p&gt;Factor the per-entry validation into ntfs_attr_list_entry_is_valid(),
which requires each entry&amp;#39;s fixed header (offsetof(struct
attr_list_entry, name)) to be in range before any field is dereferenced,
that ale-&amp;gt;length is a multiple of 8 covering the fixed header plus the
name, and that the entry is in use and carries a live MFT reference.
ntfs_attr_list_is_valid() walks the buffer with it…&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;ntfs: validate resident attribute lists and harden the validator&lt;/p&gt;
&lt;p&gt;A base inode&amp;#39;s $ATTRIBUTE_LIST is sanity-checked by load_attribute_list()
only on the non-resident path; ntfs_read_locked_inode() copies a *resident*
attribute list into ni-&amp;gt;attr_list with a plain memcpy() and no validation
at all. Every subsequent walk of ni-&amp;gt;attr_list --
ntfs_external_attr_find(), ntfs_inode_attach_all_extents() and
ntfs_attrlist_need() -- then trusts the entries are well-formed and reads
attr_list_entry fixed-header fields
(lowest_vcn at offset 8, mft_reference at offset 16, and the name) with
bounds that assume validation already happened. A crafted resident
attribute list therefore reaches those walks unvalidated and can drive
out-of-bounds reads of the attribute-list buffer.&lt;/p&gt;
&lt;p&gt;load_attribute_list() itself reads ale-&amp;gt;name_offset (offset 7),
ale-&amp;gt;mft_reference (offset 16) and the name length under only an
&amp;#34;al &amp;lt; al_start + size&amp;#34; bound, so its own validation loop can over-read the
fixed header of a truncated trailing entry by a few bytes.&lt;/p&gt;
&lt;p&gt;Factor the per-entry validation into ntfs_attr_list_entry_is_valid(),
which requires each entry&amp;#39;s fixed header (offsetof(struct
attr_list_entry, name)) to be in range before any field is dereferenced,
that ale-&amp;gt;length is a multiple of 8 covering the fixed header plus the
name, and that the entry is in use and carries a live MFT reference.
ntfs_attr_list_is_valid() walks the buffer with it…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-80674</guid>
    </item>
  </channel>
</rss>
