Description
HDF5 through 2.2.0 contains an uncontrolled recursion vulnerability in H5B__iterate_helper() in src/H5B.c. When iterating a version 1 B-tree, the function does not verify that a child node’s level matches the expected level. That check is performed only in H5B__cache_deserialize() when a node is first loaded into the metadata cache. A crafted HDF5 file whose B-tree child pointer refers back to a node already in the cache, such as a node that points to itself, bypasses the check and causes unbounded recursion, leading to stack exhaustion and a crash. This can be triggered by calling H5Gget_info() or H5Gget_num_objs() on a group in the crafted file, which reaches H5B_iterate() through H5G__obj_info() and H5G__stab_count(). An attacker who can get a user or application to open a malicious file can cause a denial of service.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| The HDF Group | HDF5 | <2.3.0 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | hdf5 | No fix yet | — |
| Debian 13 | hdf5 | No fix yet | — |
| Debian 12 | hdf5 | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | hdf5 | No fix yet | — |
| Ubuntu 26.04 LTS | hdf5 | No fix yet | — |
| Ubuntu 24.04 LTS | hdf5 | No fix yet | — |
| Ubuntu 22.04 LTS | hdf5 | No fix yet | — |
Show 4 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Pro 20.04 LTS | hdf5 | No fix yet | — |
| Ubuntu Pro 18.04 LTS | hdf5 | No fix yet | — |
| Ubuntu Pro 16.04 LTS | hdf5 | No fix yet | — |
| Ubuntu Pro 14.04 LTS | hdf5 | No fix yet | — |
Azure Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Azure Linux 3 | hdf5 | No fix yet | — |