This CVE targets the HDF5 N-Bit filter's decompress path (H5Z__nbitdecompress*). The vulnerability: the filter accepts a declared decompressed element count as a parameter but never validates it against the actual compressed chunk size passed during H5Dread. That mismatch creates an out-of-bounds read opportunity in the decompress loop.

The patch likely adds in-loop bounds checks — and that's useful as defense-in-depth, but it treats the symptom, not the disease. The real architectural failure is that the N-Bit filter accepts (elements × sizeof(type)) as a user-supplied parameter that can diverge from what the chunk actually contains. The chunk's B-tree metadata already encodes element counts per chunk; the filter should be reading that value, not trusting an external parameter.

Here's what matters for remediation: the in-loop guards protect h5repack and any tool that reads-then-rewrites untrusted HDF5 files, which is the actual attack surface. An H5Dwrite-only validation fix would only protect new files created post-patch — it does nothing against malicious files already in circulation. Every h5repack invocation against a pre-patch file is a potential trigger.

The deeper fix involves making the declared element count derivable from chunk metadata rather than supplied as separate parameter. This would close the class of bug across all HDF5 filters (shuffle, fletcher32, szip) that rely on the same parameter-passing mechanism. For now, prioritize systems that process untrusted HDF5 files through h5repack or similar read-rewrite tools — that's where the live exploit path exists regardless of write-time validation.