Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft HDF5 file with malformed external link
-
DeliveryVictim opens an object through the link
-
ExploitDefault traversal callback runs strlen() on unterminated udata
-
ExecutionUnbounded read past heap buffer end
-
ImpactCrash (DoS) or adjacent heap bytes folded into target path
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires a crafted HDF5 file containing an external link (H5L_TYPE_EXTERNAL) whose stored user data is either not NULL-terminated or too short to hold both the target file name and object path strings. The flaw lives in the default external-link traversal callback H5L__extern_traverse() and needs no special configuration - it is reachable in default operation. It triggers only when that specific malformed link is actually traversed, for example when the application opens an object through the link (H5Oopen/traversal). Limiting factors: attack vector is local (the crafted file must be delivered to and processed by the victim), and user/application interaction is required to open the file and traverse the link (UI:P); there is no remote network trigger and no authentication bypass. Affects HDF5 through 2.2.0. |
| Impact | This is a moderate, non-emergency issue, and the signals are internally consistent. The CVSS 4.0 vector (6.9) uses AV:L with UI:P, meaning there is no remote network trigger - a local user or application must open and traverse a crafted HDF5 file, matching the description. PR:N reflects that no authentication is needed once the file is processed, but the user-interaction requirement is the real brake on exploitation. The input provides no EPSS score, no CISA KEV listing, and no public exploit; the only reference is the upstream fix (HDFGroup PR #6708), not a PoC, so there is no public exploit identified at time of analysis. The vuln.today decision label is 'this_month' - routine prioritized patching, not act_now/emergency. Primary impact is denial of service via an unbounded heap over-read (VA:H); the confidentiality impact is limited and indirect (VC:L) - adjacent heap bytes may be pulled into the file name or object path the library then tries to open, which is not a direct read-back of memory to the attacker, so treat the information-disclosure angle as plausible leakage rather than reliable data exfiltration. Net: a real but low-urgency bug most relevant where HDF5 processes untrusted files. |
| Exploit ScenarioDerived | An attacker supplies a crafted HDF5 file (e.g., a shared dataset, model file, or upload) containing an external link whose user data is not NULL-terminated or is too short to hold both the file name and object path strings. When a victim user or application opens an object through that link, H5L__extern_traverse() calls strlen() past the end of the udata heap buffer, crashing the application or incorporating adjacent heap contents into the path it attempts to open. No public exploit identified at time of analysis; the trigger path is confirmed by the upstream fix diff and its regression test. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 03, 2026
HDF5 through 2.2.0 reads past the end of the heap buffer holding an external link's user data when that link is traversed, because the default traversal callback H5L__extern_traverse() located the target file name and object path with strlen() without ever validating the payload against its recorded size. The flaw is reachable in default operation and requires a crafted HDF5 file whose external link data is not NULL-terminated or is too short to hold both strings; it triggers when a user or application opens an object through that link (CVSS 4.0 6.9, AV:L/PR:N/UI:P, availability high, confidentiality low). No public exploit code was identified at time of analysis and there is no KEV entry; the practical outcome is a crash/denial of service, with the additional possibility that adjacent heap bytes get folded into the file name or object path the library then attempts to open, and the upstream fix is the pull request referenced below (no released patched version independently confirmed).
RemediationAI
Apply the upstream fix from PR #6708 (https://github.com/HDFGroup/hdf5/pull/6708), which adds size validation to H5L__extern_traverse() - rejecting payloads of two bytes or fewer, requiring a terminal NUL at the end of the stored data, and verifying that a complete object path remains after the file name - and ships a regression test for malformed external links. The fix is currently tracked as an upstream pull request and CHANGELOG entry rather than a confirmed tagged release, so no patched version number can be cited here and consumers should confirm the release that contains this commit before relying on it; no vendor workaround is documented in the supplied sources, and the vendor's CHANGELOG presents the validation as the remedy. Until a build containing the fix is deployed, the only exposure-reducing control consistent with the evidence is to avoid traversing external links in files from untrusted or unverified sources, since the over-read only occurs when the malformed link is actually traversed; that restriction costs functionality for legitimate external-link workflows and does not protect applications that must open arbitrary user-supplied HDF5 files. Track HDFGroup release notes for the version that formally incorporates PR #6708; classification of this item places it within the current month's patch window rather than an emergency response.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
HDF5 (Hierarchical Data Format) external links are stored as H5L_TYPE_EXTERNAL link user data whose payload is a version/flags byte followed by two NULL-terminated strings - the target file name and the object path inside that file. H5L__extern_traverse() in src/H5Lexternal.c is the library's default traversal callback for that link class, and in affected versions it received the payload length as a parameter marked H5_ATTR_UNUSED, so it never consulted the stored size: it walked the bytes with strlen(), then computed the object-path pointer as p + fname_len + 1 relative to that untrusted result. With a truncated or unterminated payload the strlen() scan is unbounded and continues until an arbitrary zero byte is encountered, and the derived object-path pointer can land outside the udata allocation entirely, so adjacent heap contents may be interpreted as part of the external file name or object path. This is CWE-125 (out-of-bounds read), not a write primitive; the supplied assessment rates availability impact high with limited confidentiality impact, consistent with garbage-derived file/path values feeding a subsequent open attempt. The fix in PR #6708 stops marking udata_size as unused, rejects payloads of two bytes or fewer, requires the final stored byte to be '\0', and requires (fname_len + 1) to be strictly less than (udata_size - 1) before the object path is derived - the same validation already applied in H5Lunpack_elink_val() - with a new external_link_malformed() regression test in test/links.c. The precise low-level trigger beyond the presence of a malformed external link payload is not described further in the available sources.
Know when Hdf5 gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N
Local crafted-file vector (AV:L) requiring the victim to open and traverse the link (UI:R); no auth (PR:N); over-read crashes the app (A:H) and may leak adjacent heap into a path (C:L), with no integrity impact.
Primary rating from Vendor (HDFG).
CVSS VectorVendor: HDFG
Lifecycle Timeline
2DescriptionCVE.org
HDF5 through 2.2.0 contains a heap buffer over-read vulnerability in H5L__extern_traverse() in src/H5Lexternal.c, the default traversal callback for external links. The callback locates the target file name and object path within the link’s user data using strlen() without validating the buffer against its stored size (udata_size, which was marked unused). A crafted HDF5 file containing an external link whose data is not NULL-terminated, or is too short to hold both strings, causes strlen() to read past the end of the udata heap buffer, and the derived object path pointer may also point outside the buffer. The overrun is unbounded and continues until a zero byte is found. The flaw is triggered when the malicious link is traversed, for example when opening an object through it. An attacker who can get a user or application to access a crafted file can cause a denial of service, and adjacent heap contents may be incorporated into the external file name or object path the library attempts to open.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
An issue was discovered in the HDF HDF5 1.8.20 library. Rated critical severity (CVSS 9.8), this vulnerability is remote
An issue was discovered in the HDF HDF5 1.8.20 library. Rated critical severity (CVSS 9.8), this vulnerability is remote
An issue was discovered in the HDF HDF5 1.8.20 library. Rated critical severity (CVSS 9.8), this vulnerability is remote
An issue was discovered in the HDF HDF5 1.8.20 library. Rated critical severity (CVSS 9.8), this vulnerability is remote
An issue was discovered in the HDF HDF5 1.8.20 library. Rated critical severity (CVSS 9.8), this vulnerability is remote
An issue was discovered in the HDF HDF5 1.8.20 library. Rated critical severity (CVSS 9.8), this vulnerability is remote
An issue was discovered in the HDF HDF5 1.8.20 library. Rated critical severity (CVSS 9.8), this vulnerability is remote
An issue was discovered in the HDF HDF5 1.8.20 library. Rated critical severity (CVSS 9.8), this vulnerability is remote
An issue was discovered in the HDF HDF5 1.8.20 library. Rated critical severity (CVSS 9.8), this vulnerability is remote
An issue was discovered in the HDF HDF5 1.8.20 library. Rated critical severity (CVSS 9.8), this vulnerability is remote
In HDF5 1.10.1, there is an out of bounds write vulnerability in the function H5G__ent_decode_vec in H5Gcache.c in libhd
hdf5 v1.14.6 was discovered to contain a heap buffer overflow via the H5VM_memcpyvv function. Rated high severity (CVSS
EUVD-2026-116012
NVD
CVE.org
Vulnrichment
GitHub
Exploit-DB