ZeroHour

CVE-2026-80656

mass

Missing b-tree node size validation in Linux kernel HFS+ driver (CVE-2026-80656)

CVSS 3.1
7.8 high
EPSS
<1%p2
Published
()
Modified
AI analysis

The Linux kernel's HFS+ file system driver does not validate the B-tree node size stored in a volume's metadata before using it, although the HFS+ specification requires this value to be a power of two between 512 and 32,768 bytes. When a corrupted or maliciously crafted HFS+ image with an invalid node size (for example, a value of 1) is mounted, hfsplus_bnode_read_u16() is reached with an excessively large offset while loading the catalog, causing the kernel to consume uninitialized memory (reported by syzbot as a KMSAN uninit-value bug). An attacker with local access who can cause an untrusted HFS+ volume or disk image to be mounted can trigger the condition; the CVSS 3.1 score of 7.8 (local vector, low privileges, no user interaction, high confidentiality/integrity/availability impact) indicates kernel memory-disclosure or corruption risk that could support privilege escalation. Any Linux system whose kernel includes hfsplus support and that mounts untrusted media — USB drives, SD cards, Mac-formatted disks or disk images — is affected. No public proof-of-concept is known, the CVE is not in CISA KEV, and EPSS estimates only ~0.1% exploitation probability over the next 30 days, so there is no evidence of exploitation in the wild.

What to do: Apply a kernel update from your distribution that includes the hfsplus b-tree node-size sanity check (backported stable patch or fixed mainline release); the disclosure does not name a fixed version, so confirm with your vendor. Until patched, avoid mounting untrusted HFS+ volumes or disk images, restrict unprivileged mounting, or blacklist/unload the hfsplus module if the filesystem is not needed. To check exposure, run lsmod | grep hfsplus or verify CONFIG_HFSPLUS_FS in the kernel configuration.

Affected
Linux Foundation (kernel.org) Linux kernel - hfsplus filesystem driver
Estimated exposure
masstens of millions of Linux systems ship the hfsplus driver in default kernels; practical exposure is limited to hosts that mount untrusted HFS+ volumes or… — Mainstream distributions build the kernel hfsplus module by default and the Linux kernel runs on hundreds of millions of installations, but only systems that actually mount attacker-supplied HFS+ media (e.g., plugging in a Mac-formatted…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

In the Linux kernel, the following vulnerability has been resolved: hfsplus: Add a sanity check for btree node size Syzbot reported an uninit-value bug in [1] with a corrupted HFS+ image, during the file system mounting process, specifically while loading the catalog, a corrupted node_size value of 1 caused the rec_off argument passed to hfs_bnode_read_u16() (within hfs_bnode_find()) to be excessively large. Consequently, the function failed to return a valid value to initialize the off variable, triggering the bug [1]. Every node starts from BTree node descriptor: struct hfs_bnode_desc. So, the size of node cannot be lesser than that. However, technical specification declares that: "The node size (which is expressed in bytes) must be power of two, from 512 through 32,768, inclusive." Add a check for btree node size base on technical specification. [1] BUG: KMSAN: uninit-value in hfsplus_bnode_find+0x141c/0x1600 fs/hfsplus/bnode.c:584 hfsplus_bnode_find+0x141c/0x1600 fs/hfsplus/bnode.c:584 hfsplus_btree_open+0x169a/0x1e40 fs/hfsplus/btree.c:382 hfsplus_fill_super+0x111f/0x2770 fs/hfsplus/super.c:553 get_tree_bdev_flags+0x6e6/0x920 fs/super.c:1694 get_tree_bdev+0x38/0x50 fs/super.c:1717 hfsplus_get_tree+0x35/0x40 fs/hfsplus/super.c:709 vfs_get_tree+0xb3/0x5d0 fs/super.c:1754 fc_mount fs/namespace.c:1193 [inline]

Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

In the news

No ingested article mentions this CVE yet.