---
id: CVE-2026-120689
title: Uncontrolled Recursion in HDF5 H5B__iterate_helper() via Crafted File
summary: >-
  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 i…
severity: medium
cvss: 4.3
cvssVector: 'CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:U'
cvssSource: cna
vendor: The HDF Group
product: HDF5
affected:
  - HDF5 <2.3.0
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-11-02T19:52:19.579381Z'
published: '2026-11-02'
updated: '2026-11-02'
sourceUpdated: '2026-11-02T19:52:35.578Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-120689'
references:
  - url: 'https://github.com/HDFGroup/hdf5/issues/6403'
tags:
  - cve.org
epss: 0.00176
epssPercentile: 0.07176
ingestedAt: '2026-11-05T19:30:42.813Z'
---

## Overview

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

- `HDF5 <2.3.0`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
