CVE-2026-80656: hfsplus: Add a sanity check for btree node size

Published Aug 28, 2026
·
Updated

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 nodesize value of 1 caused the recoff argument passed to hfsbnodereadu16() (within hfsbnodefind()) 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 hfsbnodedesc. 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 hfsplusbnodefind+0x141c/0x1600 fs/hfsplus/bnode.c:584 hfsplusbnodefind+0x141c/0x1600 fs/hfsplus/bnode.c:584 hfsplusbtreeopen+0x169a/0x1e40 fs/hfsplus/btree.c:382 hfsplusfillsuper+0x111f/0x2770 fs/hfsplus/super.c:553 gettreebdevflags+0x6e6/0x920 fs/super.c:1694 gettreebdev+0x38/0x50 fs/super.c:1717 hfsplusgettree+0x35/0x40 fs/hfsplus/super.c:709 vfsgettree+0xb3/0x5d0 fs/super.c:1754 fcmount fs/namespace.c:1193 [inline]

Affected Software

1 affected component
Linux Linux kernel

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Linux kernel (hfsplus) to a version that resolves this vulnerability.

    Patch hfsplus: Add a sanity check for btree node size
  2. Configuration

    Apply the kernel fix for HFS+ that adds a sanity check for btree node size (as per technical specification: power of two, 512..32768 inclusive) and initializes/guards the rec_off/offset path so mounting corrupted images (e.g., node_size=1) does not trigger the uninit-value bug.

    HFS+ filesystem (fs/hfsplus/bnode.c within hfsplus_bnode_find()) btree node size sanity check = Require node_size to be a power of two between 512 and 32768 (inclusive) and ensure rec_off/offset is initialized before use

Event History

Aug 28, 2026
CVE Published
via MITRE·06:49 AM
Data Sourced
via MITRE·06:49 AM
Description

Frequently Asked Questions

1

What must an attacker provide to trigger the issue?

An attacker needs to provide a corrupted HFS+ filesystem image with an invalid B-tree node_size value, such as 1, and have the system attempt to mount it. The flaw is reached while loading the HFS+ catalog during mounting.

2

Which HFS+ images are rejected by the fix?

The fix enforces the HFS+ specification requirement that B-tree node sizes be powers of two from 512 through 32,768 bytes, inclusive. Node sizes smaller than the B-tree node descriptor are also invalid.

3

How can I tell whether a system encountered this issue?

Affected execution may produce a KMSAN uninitialized-value report in hfsplus_bnode_find, with call paths through hfsplus_btree_open and hfsplus_fill_super during a mount attempt. The triggering filesystem image has a corrupted HFS+ B-tree node_size field.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203