CVE-2026-19028 Overview
CVE-2026-19028 is a size_t integer underflow vulnerability in the HDF5 library through version 2.3.0. The flaw resides in the H5Z__filter_fletcher32 function within H5Zfletcher32.c. The function computes the checksum data length by subtracting the 4-byte trailing checksum size from the input buffer size, without first verifying the buffer contains at least 4 bytes. When a Fletcher32-filtered chunk is smaller than 4 bytes, the subtraction underflows and produces a very large value. Downstream code in H5_checksum_fletcher32 then performs a massively out-of-bounds read, crashing the process.
Critical Impact
A crafted HDF5 file processed by tools such as h5ls or h5dump triggers an application crash through an out-of-bounds read, denying service to users and automated data pipelines.
Affected Products
- HDF5 library through version 2.3.0
- Utilities linked against vulnerable HDF5 builds, including h5ls and h5dump
- Applications invoking H5Dread on untrusted Fletcher32-filtered datasets
Discovery Timeline
- 2026-08-06 - CVE-2026-19028 published to NVD
- 2026-08-06 - Last updated in NVD database
Technical Details for CVE-2026-19028
Vulnerability Analysis
The defect is classified under CWE-125, Out-of-Bounds Read. The Fletcher32 filter is a checksum filter in HDF5 that validates chunked dataset integrity. On read, H5Z__filter_fletcher32 receives a buffer containing the chunk payload followed by a 4-byte checksum trailer. The function calculates the payload length by subtracting 4 from the buffer size. Because the buffer size is an unsigned size_t, subtracting 4 from a value smaller than 4 wraps around to a value near SIZE_MAX. The library then passes this enormous length to H5_checksum_fletcher32, which iterates far beyond the allocated buffer and dereferences unmapped memory.
Root Cause
The root cause is missing input validation on the compressed chunk size prior to the arithmetic operation. The code path assumes any Fletcher32-filtered block contains at minimum the trailing checksum, but that invariant is not enforced against attacker-controlled file contents. HDF5 file structures let attackers set arbitrary chunk sizes in metadata, so a crafted file can present a chunk of 0 to 3 bytes.
Attack Vector
Exploitation requires an attacker to deliver a malicious HDF5 file to a victim who then opens it with a vulnerable tool or library binding. Any workflow that invokes H5Dread on the crafted dataset triggers the underflow. Command-line utilities h5ls and h5dump are documented vectors. The attack is local and requires user interaction to open the file, but no privileges. The vulnerability produces a denial of service through process termination and does not directly enable code execution.
A synthetic proof-of-concept is not published in the referenced material. The HDFGroup Issue #6488, Issue #6490, and Pull Request #6497 discussions document the flaw and the corresponding fix.
Detection Methods for CVE-2026-19028
Indicators of Compromise
- Unexpected crashes of h5ls, h5dump, or Python bindings such as h5py when processing externally supplied HDF5 files.
- Segmentation faults originating in H5_checksum_fletcher32 or H5Z__filter_fletcher32 frames within core dumps.
- HDF5 files with Fletcher32 filter metadata but chunk sizes recorded as fewer than 4 bytes.
Detection Strategies
- Statically inspect ingested HDF5 files for chunks with the Fletcher32 filter flag set and payload sizes below 4 bytes.
- Monitor process crash telemetry on data ingestion hosts for repeated faults in HDF5 shared objects such as libhdf5.so.
- Include HDF5 version banners in software inventory scans to flag hosts running builds at or before 2.3.0.
Monitoring Recommendations
- Alert on abnormal termination of scientific data pipeline jobs that parse HDF5 inputs from external sources.
- Log invocations of h5ls and h5dump in shared analyst environments and correlate with source file provenance.
- Track file-integrity signals on directories that receive third-party HDF5 datasets.
How to Mitigate CVE-2026-19028
Immediate Actions Required
- Restrict use of h5ls, h5dump, and custom HDF5 readers to trusted files until a patched build is deployed.
- Sandbox HDF5 parsing jobs so that a crash cannot cascade to the host or dependent services.
- Enumerate applications and language bindings that link the HDF5 library and identify which ship version 2.3.0 or earlier.
Patch Information
The HDF Group has merged the fix through Pull Request #6497, which adds a size check before the subtraction in H5Z__filter_fletcher32. Upgrade to the first tagged HDF5 release that incorporates this pull request. Rebuild and redistribute any statically linked applications that embed the library.
Workarounds
- Disable the Fletcher32 filter on datasets sourced from untrusted parties before invoking H5Dread.
- Validate incoming HDF5 files with a size and metadata pre-check that rejects Fletcher32 chunks smaller than 4 bytes.
- Run HDF5 tooling under a resource-limited, non-privileged account with core-dump isolation to contain crashes.
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

