<?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 23:43:30 +0000</lastBuildDate>
    <item>
      <title>CVE-2024-49867 — btrfs: wait for fixup workers before stopping cleaner kthread during umount</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2024-49867</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;btrfs: wait for fixup workers before stopping cleaner kthread during umount&lt;/p&gt;
&lt;p&gt;During unmount, at close_ctree(), we have the following steps in this order:&lt;/p&gt;
&lt;p&gt;1) Park the cleaner kthread - this doesn&amp;#39;t destroy the kthread, it basically
   halts its execution (wake ups against it work but do nothing);&lt;/p&gt;
&lt;p&gt;2) We stop the cleaner kthread - this results in freeing the respective
   struct task_struct;&lt;/p&gt;
&lt;p&gt;3) We call btrfs_stop_all_workers() which waits for any jobs running in all
   the work queues and then free the work queues.&lt;/p&gt;
&lt;p&gt;Syzbot reported a case where a fixup worker resulted in a crash when doing
a delayed iput on its inode while attempting to wake up the cleaner at
btrfs_add_delayed_iput(), because the task_struct of the cleaner kthread
was already freed. This can happen during unmount because we don&amp;#39;t wait
for any fixup workers still running before we call kthread_stop() against
the cleaner kthread, which stops and free all its resources.&lt;/p&gt;
&lt;p&gt;Fix this by waiting for any fixup workers at close_ctree() before we call
kthread_stop() against the cleaner and run pending delayed iputs.&lt;/p&gt;
&lt;p&gt;The stack traces reported by syzbot were the following:&lt;/p&gt;
&lt;p&gt;BUG: KASAN: slab-use-after-free in __lock_acquire+0x77/0x2050 kernel/locking/lockdep.c:5065
  Read of size 8 at addr ffff8880272a8a18 by task kworker/u8:3/52&lt;/p&gt;
&lt;p&gt;CPU: 1 UID: 0 PID: 52 Comm: kworker/u8:3 Not tainted 6.12.0-rc1-syzkaller #0
  Hardware name: Google Google Compute Engi…&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;btrfs: wait for fixup workers before stopping cleaner kthread during umount&lt;/p&gt;
&lt;p&gt;During unmount, at close_ctree(), we have the following steps in this order:&lt;/p&gt;
&lt;p&gt;1) Park the cleaner kthread - this doesn&amp;#39;t destroy the kthread, it basically
   halts its execution (wake ups against it work but do nothing);&lt;/p&gt;
&lt;p&gt;2) We stop the cleaner kthread - this results in freeing the respective
   struct task_struct;&lt;/p&gt;
&lt;p&gt;3) We call btrfs_stop_all_workers() which waits for any jobs running in all
   the work queues and then free the work queues.&lt;/p&gt;
&lt;p&gt;Syzbot reported a case where a fixup worker resulted in a crash when doing
a delayed iput on its inode while attempting to wake up the cleaner at
btrfs_add_delayed_iput(), because the task_struct of the cleaner kthread
was already freed. This can happen during unmount because we don&amp;#39;t wait
for any fixup workers still running before we call kthread_stop() against
the cleaner kthread, which stops and free all its resources.&lt;/p&gt;
&lt;p&gt;Fix this by waiting for any fixup workers at close_ctree() before we call
kthread_stop() against the cleaner and run pending delayed iputs.&lt;/p&gt;
&lt;p&gt;The stack traces reported by syzbot were the following:&lt;/p&gt;
&lt;p&gt;BUG: KASAN: slab-use-after-free in __lock_acquire+0x77/0x2050 kernel/locking/lockdep.c:5065
  Read of size 8 at addr ffff8880272a8a18 by task kworker/u8:3/52&lt;/p&gt;
&lt;p&gt;CPU: 1 UID: 0 PID: 52 Comm: kworker/u8:3 Not tainted 6.12.0-rc1-syzkaller #0
  Hardware name: Google Google Compute Engi…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2024-49867</guid>
    </item>
  </channel>
</rss>
