CVE-2025-68774 json
hfsplus: fix missing hfs_bnode_get() in __hfs_bnode_create
published 2026-01-13 9 mo ago modified 2026-08-05 3 mo ago also EUVD-2026-2337
- cvss
- 7.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.6%
- EPSS 0.6% chance of exploitation in 30 days, percentile 48%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
hfsplus: fix missing hfs_bnode_get() in __hfs_bnode_create
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.
Thread A: hfsplus_write_inode() -> hfsplus_write_system_inode() -> hfs_btree_write() -> hfs_bnode_find(tree, 0) -> __hfs_bnode_create(tree, 0)
Thread B: hfsplus_create_cat() -> hfs_brec_insert() -> hfs_bnode_split() -> hfs_bmap_alloc() -> hfs_bnode_find(tree, 0) -> __hfs_bnode_create(tree, 0)
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.
```
node2 = hfs_bnode_findhash(tree, cnid); if (!node2) { <- Thread A hash = hfs_bnode_hash(cnid); node->next_hash = tree->node_hash[hash]; tree->node_hash[hash] = node; tree->node_hash_cnt++; } else { <- Thread B spin_unlock(&tree->hash_lock); kfree(node); wait_event(node2->lock_wq, !test_bit(HFS_BNODE_NEW, &node2->flags)); return node2; } ```
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:
BUG_ON(!atomic_read(&node->refcnt))
In this scenario, Thread B in fact finds the node in the hash table rather than creating a new one, and thus must take a reference.
Fix this by calling hfs_bnode_get() when reusing a bnode newly created by another thread to ensure the refcount is updated correctly.
A similar bug was fixed in HFS long ago in commit a9dc087fd3c4 ("fix missing hfs_bnode_get() in __hfs_bnode_create") but the same issue remained in HFS+ until now.
Patch / fix
- Linux Linux 5.10.248, 5.15.198, 6.1.160, 6.6.120, 6.12.64, 6.18.3, 6.19
- linux Debian 12 6.1.162-1
- linux Debian 13 6.12.69-1
- linux Debian 14 6.18.3-1
debian advisories DEBIAN-CVE-2025-68774
- linux Ubuntu 22.04 LTS 5.15.0-173.183
- linux Ubuntu 24.04 LTS 6.8.0-110.110
- linux Ubuntu 25.10 6.17.0-22.22
- linux-aws Ubuntu 22.04 LTS 5.15.0-1103.110
- linux-aws Ubuntu 24.04 LTS 6.8.0-1052.55
- linux-aws Ubuntu 25.10 6.17.0-1012.12
- linux-gcp Ubuntu 22.04 LTS 5.15.0-1103.112
- linux-gcp Ubuntu 24.04 LTS 6.8.0-1054.57
ubuntu advisories UBUNTU-CVE-2025-68774
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel-syms SLES LTSS Extended Security 12 SP5, SLES 12 SP5-LTSS 4.12.14-122.293.1
- kernel-source SLES LTSS Extended Security 12 SP5, SLES 12 SP5-LTSS 4.12.14-122.293.1
- kernel-default SLES LTSS Extended Security 12 SP5, SLES 12 SP5-LTSS, SLE Live Patching 12 SP5 4.12.14-122.293.1
- kgraft-patch-SLE12-SP5_Update_77 SLE Live Patching 12 SP5 1-8.3.1
suse advisories SUSE-SU-2026:0473-1
- git.kernel.org/stable/c/3b0fc7af50b896d0f3d104e70787ba1973bc0b56 commit
- git.kernel.org/stable/c/39e149d58ef4d7883cbf87448d39d51292fd342d commit
- git.kernel.org/stable/c/b68dc4134b18a3922cd33439ec614aad4172bc86 commit
- git.kernel.org/stable/c/b9d1c6bb5f19460074ce9862cb80be86b5fb0a50 commit
- git.kernel.org/stable/c/457f795e7abd7770de10216d7f9994a3f12a56d6 commit
- git.kernel.org/stable/c/5882e7c8cdbb5e254a69628b780acff89c78071e commit
- git.kernel.org/stable/c/152af114287851583cf7e0abc10129941f19466a commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2025-68774 updated cvss 5.5
kernel: hfsplus: fix missing hfs_bnode_get() in __hfs_bnode_create
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 moreaffected: workaround, no fix planned “To mitigate this issue, prevent the hfsplus module from being loaded. See https://access.redhat.com/solutions/41278 for instructions.”
-
Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 more Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 more Red Hat Enterprise Linux 10 kernelnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
0.59% chance of exploitation in the next 30 days, higher than 48% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
Affected products
- Linux Linux
Classification
- Technology feeds
References
- git.kernel.org /stable/c/3b0fc7af50b896d0f3d104e70787ba1973bc0b56
- git.kernel.org /stable/c/39e149d58ef4d7883cbf87448d39d51292fd342d
- git.kernel.org /stable/c/b68dc4134b18a3922cd33439ec614aad4172bc86
- git.kernel.org /stable/c/b9d1c6bb5f19460074ce9862cb80be86b5fb0a50
- git.kernel.org /stable/c/457f795e7abd7770de10216d7f9994a3f12a56d6
- git.kernel.org /stable/c/5882e7c8cdbb5e254a69628b780acff89c78071e
- git.kernel.org /stable/c/152af114287851583cf7e0abc10129941f19466a
Sources
- CVE List CVE-2025-68774
- NVD CVE-2025-68774
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.