<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-09-29T14:32:29.580413+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/cve-2025-39759</id>
    <title>CVE-2025-39759 — btrfs: qgroup: fix race between quota disable and quota rescan ioctl</title>
    <updated>2026-09-29T14:32:29.582336+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Linux, Siemens SIMATIC CN 4100</p>
<p>In the Linux kernel, the following vulnerability has been resolved:</p>
<p>btrfs: qgroup: fix race between quota disable and quota rescan ioctl</p>
<p>There's a race between a task disabling quotas and another running the
rescan ioctl that can result in a use-after-free of qgroup records from
the fs_info-&gt;qgroup_tree rbtree.</p>
<p>This happens as follows:</p>
<p>1) Task A enters btrfs_ioctl_quota_rescan() -&gt; btrfs_qgroup_rescan();</p>
<p>2) Task B enters btrfs_quota_disable() and calls
   btrfs_qgroup_wait_for_completion(), which does nothing because at that
   point fs_info-&gt;qgroup_rescan_running is false (it wasn't set yet by
   task A);</p>
<p>3) Task B calls btrfs_free_qgroup_config() which starts freeing qgroups
   from fs_info-&gt;qgroup_tree without taking the lock fs_info-&gt;qgroup_lock;</p>
<p>4) Task A enters qgroup_rescan_zero_tracking() which starts iterating
   the fs_info-&gt;qgroup_tree tree while holding fs_info-&gt;qgroup_lock,
   but task B is freeing qgroup records from that tree without holding
   the lock, resulting in a use-after-free.</p>
<p>Fix this by taking fs_info-&gt;qgroup_lock at btrfs_free_qgroup_config().
Also at btrfs_qgroup_rescan() don't start the rescan worker if quotas
were already disabled.</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/cve-2025-39759"/>
  </entry>
</feed>
