<?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 08:43:49 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-72193 — ntfs3: cap RESTART_TABLE free-chain walker at rt-&gt;used</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-72193</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;ntfs3: cap RESTART_TABLE free-chain walker at rt-&amp;gt;used&lt;/p&gt;
&lt;p&gt;A crafted NTFS3 disk image triggers an in-kernel infinite loop at
mount time, hanging the mounting thread and firing the soft-lockup
watchdog within ~22s on multi-CPU hosts (panic with
kernel.softlockup_panic=1).  The bug is reachable from desktop USB
auto-mount on distributions where udisks2 routes the NTFS signature
to the in-tree ntfs3 driver (Arch family and an increasing fraction
of Fedora / openSUSE / RHEL deployments); CAP_SYS_ADMIN-class manual
mount elsewhere.&lt;/p&gt;
&lt;p&gt;check_rstbl()&amp;#39;s second walker iterates the free-entry singly-linked
list headed by rt-&amp;gt;first_free with no upper bound on iteration count:&lt;/p&gt;
&lt;p&gt;for (off = ff; off;) {
      if (off == RESTART_ENTRY_ALLOCATED)
          return false;
      off = le32_to_cpu(*(__le32 *)Add2Ptr(rt, off));
      if (off &amp;gt; ts - sizeof(__le32))
          return false;
  }&lt;/p&gt;
&lt;p&gt;The existing guards cover three exits: end-of-list (off == 0), the
in-use marker (off == RESTART_ENTRY_ALLOCATED), and out-of-bounds
(off &amp;gt; ts - sizeof(__le32)).  None of the three prevents an
in-bounds cycle.&lt;/p&gt;
&lt;p&gt;A crafted on-disk RESTART_TABLE whose free chain contains a
self-loop or A-&amp;gt;B-&amp;gt;A cycle whose offsets satisfy:&lt;/p&gt;
&lt;p&gt;- in range [sizeof(struct RESTART_TABLE), ts - sizeof(__le32)]
  - (off - sizeof(struct RESTART_TABLE)) % rsize == 0&lt;/p&gt;
&lt;p&gt;passes all existing guards and spins the mount-time thread forever.
Reproduced in UML by hand-forging a 2 M…&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;ntfs3: cap RESTART_TABLE free-chain walker at rt-&amp;gt;used&lt;/p&gt;
&lt;p&gt;A crafted NTFS3 disk image triggers an in-kernel infinite loop at
mount time, hanging the mounting thread and firing the soft-lockup
watchdog within ~22s on multi-CPU hosts (panic with
kernel.softlockup_panic=1).  The bug is reachable from desktop USB
auto-mount on distributions where udisks2 routes the NTFS signature
to the in-tree ntfs3 driver (Arch family and an increasing fraction
of Fedora / openSUSE / RHEL deployments); CAP_SYS_ADMIN-class manual
mount elsewhere.&lt;/p&gt;
&lt;p&gt;check_rstbl()&amp;#39;s second walker iterates the free-entry singly-linked
list headed by rt-&amp;gt;first_free with no upper bound on iteration count:&lt;/p&gt;
&lt;p&gt;for (off = ff; off;) {
      if (off == RESTART_ENTRY_ALLOCATED)
          return false;
      off = le32_to_cpu(*(__le32 *)Add2Ptr(rt, off));
      if (off &amp;gt; ts - sizeof(__le32))
          return false;
  }&lt;/p&gt;
&lt;p&gt;The existing guards cover three exits: end-of-list (off == 0), the
in-use marker (off == RESTART_ENTRY_ALLOCATED), and out-of-bounds
(off &amp;gt; ts - sizeof(__le32)).  None of the three prevents an
in-bounds cycle.&lt;/p&gt;
&lt;p&gt;A crafted on-disk RESTART_TABLE whose free chain contains a
self-loop or A-&amp;gt;B-&amp;gt;A cycle whose offsets satisfy:&lt;/p&gt;
&lt;p&gt;- in range [sizeof(struct RESTART_TABLE), ts - sizeof(__le32)]
  - (off - sizeof(struct RESTART_TABLE)) % rsize == 0&lt;/p&gt;
&lt;p&gt;passes all existing guards and spins the mount-time thread forever.
Reproduced in UML by hand-forging a 2 M…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-72193</guid>
    </item>
  </channel>
</rss>
