<?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-29T23:48:38.066160+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-2023-54158</id>
    <title>CVE-2023-54158 — btrfs: don't free qgroup space unless specified</title>
    <updated>2026-09-29T23:48:38.645955+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Linux</p>
<p>In the Linux kernel, the following vulnerability has been resolved:</p>
<p>btrfs: don't free qgroup space unless specified</p>
<p>Boris noticed in his simple quotas testing that he was getting a leak
with Sweet Tea's change to subvol create that stopped doing a
transaction commit.  This was just a side effect of that change.</p>
<p>In the delayed inode code we have an optimization that will free extra
reservations if we think we can pack a dir item into an already modified
leaf.  Previously this wouldn't be triggered in the subvolume create
case because we'd commit the transaction, it was still possible but
much harder to trigger.  It could actually be triggered if we did a
mkdir &amp;&amp; subvol create with qgroups enabled.</p>
<p>This occurs because in btrfs_insert_delayed_dir_index(), which gets
called when we're adding the dir item, we do the following:</p>
<p>btrfs_block_rsv_release(fs_info, trans-&gt;block_rsv, bytes, NULL);</p>
<p>if we're able to skip reserving space.</p>
<p>The problem here is that trans-&gt;block_rsv points at the temporary block
rsv for the subvolume create, which has qgroup reservations in the block
rsv.</p>
<p>This is a problem because btrfs_block_rsv_release() will do the
following:</p>
<p>if (block_rsv-&gt;qgroup_rsv_reserved &gt;= block_rsv-&gt;qgroup_rsv_size) {
	  qgroup_to_release = block_rsv-&gt;qgroup_rsv_reserved -
		  block_rsv-&gt;qgroup_rsv_size;
	  block_rsv-&gt;qgroup_rsv_reserved = block_rsv-&gt;qgroup_rsv_size;
  }</p>
<p>The temporary block rsv just has -&gt;qgroup_rsv_reserved set,
-&gt;qgroup_rsv_size == 0.  The optimiza…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/cve-2023-54158"/>
  </entry>
</feed>
