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.
{
"binaries": [
{
"binary_name": "hdf5-helpers",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "hdf5-tools",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-103",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-103-1",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-cpp-103",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-cpp-103-1",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-fortran-102",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-hl-100",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-hl-cpp-100",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-hl-fortran-100",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-java",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-jni",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-mpich-103",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-mpich-103-1",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-mpich-cpp-103-1",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-mpich-fortran-102",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-mpich-hl-100",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-mpich-hl-cpp-100",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-mpich-hl-fortran-100",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-openmpi-103",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-openmpi-103-1",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-openmpi-cpp-103-1",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-openmpi-fortran-102",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-openmpi-hl-100",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-openmpi-hl-cpp-100",
"binary_version": "1.10.7+repack-4ubuntu2"
},
{
"binary_name": "libhdf5-openmpi-hl-fortran-100",
"binary_version": "1.10.7+repack-4ubuntu2"
}
]
}{
"binaries": [
{
"binary_name": "hdf5-helpers",
"binary_version": "1.10.10+repack-3.1ubuntu4"
},
{
"binary_name": "hdf5-tools",
"binary_version": "1.10.10+repack-3.1ubuntu4"
},
{
"binary_name": "libhdf5-103-1t64",
"binary_version": "1.10.10+repack-3.1ubuntu4"
},
{
"binary_name": "libhdf5-cpp-103-1t64",
"binary_version": "1.10.10+repack-3.1ubuntu4"
},
{
"binary_name": "libhdf5-fortran-102t64",
"binary_version": "1.10.10+repack-3.1ubuntu4"
},
{
"binary_name": "libhdf5-hl-100t64",
"binary_version": "1.10.10+repack-3.1ubuntu4"
},
{
"binary_name": "libhdf5-hl-cpp-100t64",
"binary_version": "1.10.10+repack-3.1ubuntu4"
},
{
"binary_name": "libhdf5-hl-fortran-100t64",
"binary_version": "1.10.10+repack-3.1ubuntu4"
},
{
"binary_name": "libhdf5-java",
"binary_version": "1.10.10+repack-3.1ubuntu4"
},
{
"binary_name": "libhdf5-jni",
"binary_version": "1.10.10+repack-3.1ubuntu4"
},
{
"binary_name": "libhdf5-mpich-103-1t64",
"binary_version": "1.10.10+repack-3.1ubuntu4"
},
{
"binary_name": "libhdf5-mpich-cpp-103-1t64",
"binary_version": "1.10.10+repack-3.1ubuntu4"
},
{
"binary_name": "libhdf5-mpich-fortran-102t64",
"binary_version": "1.10.10+repack-3.1ubuntu4"
},
{
"binary_name": "libhdf5-mpich-hl-100t64",
"binary_version": "1.10.10+repack-3.1ubuntu4"
},
{
"binary_name": "libhdf5-mpich-hl-cpp-100t64",
"binary_version": "1.10.10+repack-3.1ubuntu4"
},
{
"binary_name": "libhdf5-mpich-hl-fortran-100t64",
"binary_version": "1.10.10+repack-3.1ubuntu4"
},
{
"binary_name": "libhdf5-openmpi-103-1t64",
"binary_version": "1.10.10+repack-3.1ubuntu4"
},
{
"binary_name": "libhdf5-openmpi-cpp-103-1t64",
"binary_version": "1.10.10+repack-3.1ubuntu4"
},
{
"binary_name": "libhdf5-openmpi-fortran-102t64",
"binary_version": "1.10.10+repack-3.1ubuntu4"
},
{
"binary_name": "libhdf5-openmpi-hl-100t64",
"binary_version": "1.10.10+repack-3.1ubuntu4"
},
{
"binary_name": "libhdf5-openmpi-hl-cpp-100t64",
"binary_version": "1.10.10+repack-3.1ubuntu4"
},
{
"binary_name": "libhdf5-openmpi-hl-fortran-100t64",
"binary_version": "1.10.10+repack-3.1ubuntu4"
}
]
}{
"binaries": [
{
"binary_name": "hdf5-helpers",
"binary_version": "1.14.6+repack-2"
},
{
"binary_name": "hdf5-tools",
"binary_version": "1.14.6+repack-2"
},
{
"binary_name": "libhdf5-310",
"binary_version": "1.14.6+repack-2"
},
{
"binary_name": "libhdf5-cpp-310",
"binary_version": "1.14.6+repack-2"
},
{
"binary_name": "libhdf5-fortran-310",
"binary_version": "1.14.6+repack-2"
},
{
"binary_name": "libhdf5-hl-310",
"binary_version": "1.14.6+repack-2"
},
{
"binary_name": "libhdf5-hl-cpp-310",
"binary_version": "1.14.6+repack-2"
},
{
"binary_name": "libhdf5-hl-fortran-310",
"binary_version": "1.14.6+repack-2"
},
{
"binary_name": "libhdf5-java",
"binary_version": "1.14.6+repack-2"
},
{
"binary_name": "libhdf5-jni",
"binary_version": "1.14.6+repack-2"
},
{
"binary_name": "libhdf5-mpich-310",
"binary_version": "1.14.6+repack-2"
},
{
"binary_name": "libhdf5-mpich-cpp-310",
"binary_version": "1.14.6+repack-2"
},
{
"binary_name": "libhdf5-mpich-fortran-310",
"binary_version": "1.14.6+repack-2"
},
{
"binary_name": "libhdf5-mpich-hl-310",
"binary_version": "1.14.6+repack-2"
},
{
"binary_name": "libhdf5-mpich-hl-cpp-310",
"binary_version": "1.14.6+repack-2"
},
{
"binary_name": "libhdf5-mpich-hl-fortran-310",
"binary_version": "1.14.6+repack-2"
},
{
"binary_name": "libhdf5-openmpi-310",
"binary_version": "1.14.6+repack-2"
},
{
"binary_name": "libhdf5-openmpi-cpp-310",
"binary_version": "1.14.6+repack-2"
},
{
"binary_name": "libhdf5-openmpi-fortran-310",
"binary_version": "1.14.6+repack-2"
},
{
"binary_name": "libhdf5-openmpi-hl-310",
"binary_version": "1.14.6+repack-2"
},
{
"binary_name": "libhdf5-openmpi-hl-cpp-310",
"binary_version": "1.14.6+repack-2"
},
{
"binary_name": "libhdf5-openmpi-hl-fortran-310",
"binary_version": "1.14.6+repack-2"
}
]
}{
"binaries": [
{
"binary_name": "hdf5-helpers",
"binary_version": "2.2.0+repack-5"
},
{
"binary_name": "hdf5-tools",
"binary_version": "2.2.0+repack-5"
},
{
"binary_name": "libhdf5-320",
"binary_version": "2.2.0+repack-5"
},
{
"binary_name": "libhdf5-cpp-320",
"binary_version": "2.2.0+repack-5"
},
{
"binary_name": "libhdf5-fortran-320",
"binary_version": "2.2.0+repack-5"
},
{
"binary_name": "libhdf5-hl-320",
"binary_version": "2.2.0+repack-5"
},
{
"binary_name": "libhdf5-hl-cpp-320",
"binary_version": "2.2.0+repack-5"
},
{
"binary_name": "libhdf5-hl-fortran-320",
"binary_version": "2.2.0+repack-5"
},
{
"binary_name": "libhdf5-java",
"binary_version": "2.2.0+repack-5"
},
{
"binary_name": "libhdf5-jni",
"binary_version": "2.2.0+repack-5"
},
{
"binary_name": "libhdf5-mpich-320",
"binary_version": "2.2.0+repack-5"
},
{
"binary_name": "libhdf5-mpich-cpp-320",
"binary_version": "2.2.0+repack-5"
},
{
"binary_name": "libhdf5-mpich-fortran-320",
"binary_version": "2.2.0+repack-5"
},
{
"binary_name": "libhdf5-mpich-hl-320",
"binary_version": "2.2.0+repack-5"
},
{
"binary_name": "libhdf5-mpich-hl-cpp-320",
"binary_version": "2.2.0+repack-5"
},
{
"binary_name": "libhdf5-mpich-hl-fortran-320",
"binary_version": "2.2.0+repack-5"
},
{
"binary_name": "libhdf5-openmpi-320",
"binary_version": "2.2.0+repack-5"
},
{
"binary_name": "libhdf5-openmpi-cpp-320",
"binary_version": "2.2.0+repack-5"
},
{
"binary_name": "libhdf5-openmpi-fortran-320",
"binary_version": "2.2.0+repack-5"
},
{
"binary_name": "libhdf5-openmpi-hl-320",
"binary_version": "2.2.0+repack-5"
},
{
"binary_name": "libhdf5-openmpi-hl-cpp-320",
"binary_version": "2.2.0+repack-5"
},
{
"binary_name": "libhdf5-openmpi-hl-fortran-320",
"binary_version": "2.2.0+repack-5"
}
]
}{
"binaries": [
{
"binary_name": "hdf5-helpers",
"binary_version": "1.8.11-5ubuntu7.1+esm2"
},
{
"binary_name": "hdf5-tools",
"binary_version": "1.8.11-5ubuntu7.1+esm2"
},
{
"binary_name": "libhdf5-7",
"binary_version": "1.8.11-5ubuntu7.1+esm2"
},
{
"binary_name": "libhdf5-mpich2-7",
"binary_version": "1.8.11-5ubuntu7.1+esm2"
},
{
"binary_name": "libhdf5-openmpi-7",
"binary_version": "1.8.11-5ubuntu7.1+esm2"
}
]
}{
"binaries": [
{
"binary_name": "hdf5-helpers",
"binary_version": "1.8.16+docs-4ubuntu1.1+esm2"
},
{
"binary_name": "hdf5-tools",
"binary_version": "1.8.16+docs-4ubuntu1.1+esm2"
},
{
"binary_name": "libhdf5-10",
"binary_version": "1.8.16+docs-4ubuntu1.1+esm2"
},
{
"binary_name": "libhdf5-cpp-11",
"binary_version": "1.8.16+docs-4ubuntu1.1+esm2"
},
{
"binary_name": "libhdf5-mpich-10",
"binary_version": "1.8.16+docs-4ubuntu1.1+esm2"
},
{
"binary_name": "libhdf5-openmpi-10",
"binary_version": "1.8.16+docs-4ubuntu1.1+esm2"
}
]
}{
"binaries": [
{
"binary_name": "hdf5-helpers",
"binary_version": "1.10.0-patch1+docs-4ubuntu0.1~esm2"
},
{
"binary_name": "hdf5-tools",
"binary_version": "1.10.0-patch1+docs-4ubuntu0.1~esm2"
},
{
"binary_name": "libhdf5-100",
"binary_version": "1.10.0-patch1+docs-4ubuntu0.1~esm2"
},
{
"binary_name": "libhdf5-cpp-100",
"binary_version": "1.10.0-patch1+docs-4ubuntu0.1~esm2"
},
{
"binary_name": "libhdf5-java",
"binary_version": "1.10.0-patch1+docs-4ubuntu0.1~esm2"
},
{
"binary_name": "libhdf5-jni",
"binary_version": "1.10.0-patch1+docs-4ubuntu0.1~esm2"
},
{
"binary_name": "libhdf5-mpich-100",
"binary_version": "1.10.0-patch1+docs-4ubuntu0.1~esm2"
},
{
"binary_name": "libhdf5-openmpi-100",
"binary_version": "1.10.0-patch1+docs-4ubuntu0.1~esm2"
}
]
}{
"binaries": [
{
"binary_name": "hdf5-helpers",
"binary_version": "1.10.4+repack-11ubuntu1+esm1"
},
{
"binary_name": "hdf5-tools",
"binary_version": "1.10.4+repack-11ubuntu1+esm1"
},
{
"binary_name": "libhdf5-103",
"binary_version": "1.10.4+repack-11ubuntu1+esm1"
},
{
"binary_name": "libhdf5-cpp-103",
"binary_version": "1.10.4+repack-11ubuntu1+esm1"
},
{
"binary_name": "libhdf5-java",
"binary_version": "1.10.4+repack-11ubuntu1+esm1"
},
{
"binary_name": "libhdf5-jni",
"binary_version": "1.10.4+repack-11ubuntu1+esm1"
},
{
"binary_name": "libhdf5-mpich-103",
"binary_version": "1.10.4+repack-11ubuntu1+esm1"
},
{
"binary_name": "libhdf5-openmpi-103",
"binary_version": "1.10.4+repack-11ubuntu1+esm1"
}
]
}