<?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-29T16:00:20.796303+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-68774</id>
    <title>CVE-2025-68774 — hfsplus: fix missing hfs_bnode_get() in __hfs_bnode_create</title>
    <updated>2026-09-29T16:00:21.865275+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>hfsplus: fix missing hfs_bnode_get() in __hfs_bnode_create</p>
<p>When sync() and link() are called concurrently, both threads may
enter hfs_bnode_find() without finding the node in the hash table
and proceed to create it.</p>
<p>Thread A:
  hfsplus_write_inode()
    -&gt; hfsplus_write_system_inode()
      -&gt; hfs_btree_write()
        -&gt; hfs_bnode_find(tree, 0)
          -&gt; __hfs_bnode_create(tree, 0)</p>
<p>Thread B:
  hfsplus_create_cat()
    -&gt; hfs_brec_insert()
      -&gt; hfs_bnode_split()
        -&gt; hfs_bmap_alloc()
          -&gt; hfs_bnode_find(tree, 0)
            -&gt; __hfs_bnode_create(tree, 0)</p>
<p>In this case, thread A creates the bnode, sets refcnt=1, and hashes it.
Thread B also tries to create the same bnode, notices it has already
been inserted, drops its own instance, and uses the hashed one without
getting the node.</p>
<p>```</p>
<p>node2 = hfs_bnode_findhash(tree, cnid);
	if (!node2) {                                 &lt;- Thread A
		hash = hfs_bnode_hash(cnid);
		node-&gt;next_hash = tree-&gt;node_hash[hash];
		tree-&gt;node_hash[hash] = node;
		tree-&gt;node_hash_cnt++;
	} else {                                      &lt;- Thread B
		spin_unlock(&amp;tree-&gt;hash_lock);
		kfree(node);
		wait_event(node2-&gt;lock_wq,
			!test_bit(HFS_BNODE_NEW, &amp;node2-&gt;flags));
		return node2;
	}
```</p>
<p>However, hfs_bnode_find() requires each call to take a reference.
Here both threads end up setting refcnt=1. When they later put the node,
this triggers:</p>
<p>BUG_ON(!atomic_re…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/cve-2025-68774"/>
  </entry>
</feed>
