CVE-2026-46169: hfsplus: fix uninit-value by validating catalog record size
In the Linux kernel, the following vulnerability has been resolved:
hfsplus: fix uninit-value by validating catalog record size
Syzbot reported a KMSAN uninit-value issue in hfsplus_strcasecmp(). The
root cause is that hfs_brec_read() doesn't validate that the on-disk
record size matches the expected size for the record type being read.
When mounting a corrupted filesystem, hfs_brec_read() may read less data
than expected. For example, when reading a catalog thread record, the
debug output showed:
HFSPLUS_BREC_READ: rec_len=520, fd->entrylength=26
HFSPLUS_BREC_READ: WARNING - entrylength (26) < rec_len (520) - PARTIAL READ!
hfs_brec_read() only validates that entrylength is not greater than the
buffer size, but doesn't check if it's less than expected. It successfully
reads 26 bytes into a 520-byte structure and returns success, leaving 494
bytes uninitialized.
This uninitialized data in tmp.thread.nodeName then gets copied by
hfsplus_cat_build_key_uni() and used by hfsplus_strcasecmp(), triggering
the KMSAN warning when the uninitialized bytes are used as array indices
in case_fold().
Fix by introducing hfsplus_brec_read_cat() wrapper that:
1. Calls hfs_brec_read() to read the data
2. Validates the record size based on the type field:
- Fixed size for folder and file records
- Variable size for thread records (depends on string length)
3. Returns -EIO if size doesn't match expected
For thread records, check against HFSPLUS_MIN_THREAD_SZ before reading
nodeName.length to avoid reading uninitialized data at call sites that
don't zero-initialize the entry structure.
Also initialize the tmp variable in hfsplus_find_cat() as defensive
programming to ensure no uninitialized data even if validation is
bypassed.
Security readout for executives and security teams
Plain-English summary
This Linux kernel issue is in HFS+ filesystem handling. A malformed or corrupted HFS+ volume can cause the kernel to use uninitialized memory while mounting or reading catalog records. The provided sources do not state real-world exploitation, business impact, or CVSS severity.
Executive priority
Treat this as a targeted kernel maintenance item, not an emergency, unless the environment processes untrusted filesystems. The absence of CVSS and KEV evidence limits urgency, but kernel filesystem bugs deserve timely patching on exposed systems.
Technical view
hfs_brec_read() accepted catalog records smaller than the expected structure. Partial reads left bytes uninitialized, later copied into HFS+ catalog key handling and consumed by hfsplus_strcasecmp(). The fix adds type-aware catalog record size validation and defensive initialization in hfsplus_find_cat().
Likely exposure
Exposure is most relevant to Linux systems that mount HFS+ filesystems or process untrusted disk images, removable media, or corrupted Apple-format volumes. Systems without HFS+ support or workflows that never mount HFS+ are less likely exposed.
Exploitation context
The bundle cites a syzbot KMSAN finding during corrupted filesystem mounting. CISA KEV is false, and no cited source claims active exploitation or a public exploit. Practical attackability is not established by the provided evidence.
Researcher notes
The record describes incomplete catalog record size validation, especially thread records with variable length. Evidence supports a corrupted-filesystem trigger and KMSAN uninitialized-value report, but not a proven privilege escalation, information disclosure, or denial-of-service impact.
Mitigation direction
Update to a kernel containing the referenced stable hfsplus fixes.
Prioritize hosts that mount user-supplied media or disk images.
Restrict automatic mounting of untrusted HFS+ volumes where feasible.
Check Linux vendor advisories for fixed package versions.
Keep kernel sanitization findings in regression tracking.
Validation and detection
Inventory Linux hosts with HFS+ filesystem support enabled.
Identify services or workflows mounting HFS+ media or images.
Compare running kernel versions against vendor fixed builds.
Confirm relevant stable commits are included in custom kernels.
Review logs for crashes or sanitizer reports in hfsplus code.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2026-46169 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
0CVSS vectors
3Timeline events
0ADP providers
6Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
May 28, 2026, 09:36 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.