CVE-2026-120758
NULL Pointer Dereference in H5HL_unprotect via Corrupted File
HDF5 through 2.2.0 contains a NULL pointer dereference vulnerability in H5HL_unprotect() in src/H5HL.c. H5HL_protect() pins a single metadata cache entry for a local heap, either the heap prefix or the separate data block, and H5HL_unprotect() unpins it on the final unprotect. When the metadata cache destroys a corrupted local heap entry, H5HL__prfx_dest() unlinks it from the heap by setting heap->prfx or heap->dblk to NULL. A crafted HDF5 file can therefore reach H5HL_unprotect() with no cached object to unpin, and the function passes the NULL pointer to H5AC_unpin_entry(). This causes an assertion failure in debug builds and a NULL pointer dereference and crash in release builds. An attacker who can get a user or application to open and traverse a malicious file can cause a denial of service.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Passive
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
5.4
NULL Pointer Dereference in H5HL_unprotect via Corrupted File
HDF5 through 2.2.0 contains a NULL pointer dereference vulnerability in H5HL_unprotect() in src/H5HL.c. H5HL_protect() pins a single metadata cache entry for a local heap, either the heap prefix or the separate data block, and H5HL_unprotect() unpins it on the final unprotect. When the metadata cache destroys a corrupted local heap entry, H5HL__prfx_dest() unlinks it from the heap by setting heap->prfx or heap->dblk to NULL. A crafted HDF5 file can therefore reach H5HL_unprotect() with no cached object to unpin, and the function passes the NULL pointer to H5AC_unpin_entry(). This causes an assertion failure in debug builds and a NULL pointer dereference and crash in release builds. An attacker who can get a user or application to open and traverse a malicious file can cause a denial of service.
- Record
CVE-2026-120758- CVSS 4.0
- 5.4 Medium
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:P - Weakness
- CWE-476
- Updated
- 2026-11-03
EUVDEUVD-2026-116017
5.4
HDF5 through 2.2.0 contains a NULL pointer dereference vulnerability in H5HL_unprotect() in src/H5HL.c. H5HL_protect() pins a single metadata cache entry for a local heap, either the heap prefix or the separate data block, and H5HL_unprotect() unpins it on the final unprotect. When the metadata cache destroys a corrupted local heap entry, H5HL__prfx_dest() unlinks it from the heap by setting heap->prfx or heap->dblk to NULL. A crafted HDF5 file can therefore reach H5HL_unprotect() with no cached object to unpin, and the function passes the NULL pointer to H5AC_unpin_entry(). This causes an assertion failure in debug builds and a NULL pointer dereference and crash in release builds. An attacker who can get a user or application to open and traverse a malicious file can cause a denial of service.
- Record
EUVD-2026-116017- CVSS 4.0
- 5.4 Medium
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:P - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-49fv-ggjg-jcjc
5.4
HDF5 through 2.2.0 contains a NULL pointer dereference vulnerability in H5HL_unprotect() in src...
HDF5 through 2.2.0 contains a NULL pointer dereference vulnerability in H5HL_unprotect() in src/H5HL.c. H5HL_protect() pins a single metadata cache entry for a local heap, either the heap prefix or the separate data block, and H5HL_unprotect() unpins it on the final unprotect. When the metadata cache destroys a corrupted local heap entry, H5HL__prfx_dest() unlinks it from the heap by setting heap->prfx or heap->dblk to NULL. A crafted HDF5 file can therefore reach H5HL_unprotect() with no cached object to unpin, and the function passes the NULL pointer to H5AC_unpin_entry(). This causes an assertion failure in debug builds and a NULL pointer dereference and crash in release builds. An attacker who can get a user or application to open and traverse a malicious file can cause a denial of service.
- Record
GHSA-49fv-ggjg-jcjc- CVSS 4.0
- 5.4 Medium
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:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H - Weakness
- CWE-476
- Updated
- 2026-11-03
NVD
5.4
HDF5 through 2.2.0 contains a NULL pointer dereference vulnerability in H5HL_unprotect() in src/H5HL.c. H5HL_protect() pins a single metadata cache entry for a local heap, either the heap prefix or the separate data block, and H5HL_unprotect() unpins it on the final unprotect. When the metadata cache destroys a corrupted local heap entry, H5HL__prfx_dest() unlinks it from the heap by setting heap->prfx or heap->dblk to NULL. A crafted HDF5 file can therefore reach H5HL_unprotect() with no cached object to unpin, and the function passes the NULL pointer to H5AC_unpin_entry(). This causes an assertion failure in debug builds and a NULL pointer dereference and crash in release builds. An attacker who can get a user or application to open and traverse a malicious file can cause a denial of service.
- Record
CVE-2026-120758- CVSS 4.0
- 5.4 Medium
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:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H - Weakness
- CWE-476
- Updated
- 2026-11-04
OSV
5.4
NULL Pointer Dereference in H5HL_unprotect via Corrupted File
HDF5 through 2.2.0 contains a NULL pointer dereference vulnerability in H5HL_unprotect() in src/H5HL.c. H5HL_protect() pins a single metadata cache entry for a local heap, either the heap prefix or the separate data block, and H5HL_unprotect() unpins it on the final unprotect. When the metadata cache destroys a corrupted local heap entry, H5HL__prfx_dest() unlinks it from the heap by setting heap->prfx or heap->dblk to NULL. A crafted HDF5 file can therefore reach H5HL_unprotect() with no cached object to unpin, and the function passes the NULL pointer to H5AC_unpin_entry(). This causes an assertion failure in debug builds and a NULL pointer dereference and crash in release builds. An attacker who can get a user or application to open and traverse a malicious file can cause a denial of service.
- Record
CVE-2026-120758- CVSS 4.0
- 5.4 Medium
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:P - Weakness
- CWE-476
- Updated
- 2026-11-05
OSVDEBIAN-CVE-2026-120758
5.5
HDF5 through 2.2.0 contains a NULL pointer dereference vulnerability in H5HL_unprotect() in src/H5HL.c. H5HL_protect() pins a single metadata cache entry for a local heap, either the heap prefix or the separate data block, and H5HL_unprotect() unpins it on the final unprotect. When the metadata cache destroys a corrupted local heap entry, H5HL__prfx_dest() unlinks it from the heap by setting heap->prfx or heap->dblk to NULL. A crafted HDF5 file can therefore reach H5HL_unprotect() with no cached object to unpin, and the function passes the NULL pointer to H5AC_unpin_entry(). This causes an assertion failure in debug builds and a NULL pointer dereference and crash in release builds. An attacker who can get a user or application to open and traverse a malicious file can cause a denial of service.
- Record
DEBIAN-CVE-2026-120758- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H - Updated
- 2026-11-04
OSVUBUNTU-CVE-2026-120758
5.4
HDF5 through 2.2.0 contains a NULL pointer dereference vulnerability in H5HL_unprotect() in src/H5HL.c. H5HL_protect() pins a single metadata cache entry for a local heap, either the heap prefix or the separate data block, and H5HL_unprotect() unpins it on the final unprotect. When the metadata cache destroys a corrupted local heap entry, H5HL__prfx_dest() unlinks it from the heap by setting heap->prfx or heap->dblk to NULL. A crafted HDF5 file can therefore reach H5HL_unprotect() with no cached object to unpin, and the function passes the NULL pointer to H5AC_unpin_entry(). This causes an assertion failure in debug builds and a NULL pointer dereference and crash in release builds. An attacker who can get a user or application to open and traverse a malicious file can cause a denial of service.
- Record
UBUNTU-CVE-2026-120758- CVSS 4.0
- 5.4 Medium
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:P - CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H - Updated
- 2026-11-05
OSVAZL-112640 No score
CVE-2026-120758 affecting package hdf5 1.14.6-6
HDF5 through 2.2.0 contains a NULL pointer dereference vulnerability in H5HL_unprotect() in src/H5HL.c. H5HL_protect() pins a single metadata cache entry for a local heap, either the heap prefix or the separate data block, and H5HL_unprotect() unpins it on the final unprotect. When the metadata cache destroys a corrupted local heap entry, H5HL__prfx_dest() unlinks it from the heap by setting heap->prfx or heap->dblk to NULL. A crafted HDF5 file can therefore reach H5HL_unprotect() with no cached object to unpin, and the function passes the NULL pointer to H5AC_unpin_entry(). This causes an assertion failure in debug builds and a NULL pointer dereference and crash in release builds. An attacker who can get a user or application to open and traverse a malicious file can cause a denial of service.
- Record
AZL-112640- Updated
- 2026-11-05
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
hdf5Azure Linux:3 |
through 1.14.6-6 | None known |
hdf5Debian:12 |
All versions, plus listed versions 1.10.10+repack-11.10.10+repack-21.10.10+repack-31.10.10+repack-3.11.10.10+repack-3.2 Show 45 moreShow less1.10.10+repack-3.2+ports1.10.10+repack-3.31.10.10+repack-41.10.10+repack-51.10.8+repack1-11.12.0+repack-1~exp11.12.0+repack-1~exp21.12.2+repack-1~exp11.14.3+repack-1~exp11.14.3+repack1-1~exp21.14.3+repack1-1~exp31.14.4.3+repack-1~exp11.14.4.3+repack-1~exp21.14.4.3+repack-1~exp31.14.5+repack-11.14.5+repack-1~exp11.14.5+repack-1~exp21.14.5+repack-1~exp31.14.5+repack-1~exp41.14.5+repack-1~exp51.14.5+repack-1~exp61.14.5+repack-21.14.5+repack-31.14.5+repack-3.11.14.5+repack-3~exp11.14.5+repack-3~exp21.14.5+repack-3~exp31.14.5+repack-3~exp41.14.5+repack-41.14.5+repack-4~exp11.14.5+repack-4~exp21.14.5+repack-5~exp21.14.5+repack-5~exp31.14.6+repack-11.14.6+repack-1~exp11.14.6+repack-1~exp101.14.6+repack-1~exp111.14.6+repack-1~exp121.14.6+repack-1~exp131.14.6+repack-1~exp141.14.6+repack-1~exp151.14.6+repack-1~exp161.14.6+repack-1~exp171.14.6+repack-1~exp181.14.6+repack-1~exp19 |
None known |
hdf5Debian:13 |
All versions, plus listed versions 1.14.5+repack-31.14.5+repack-3.11.14.5+repack-41.14.5+repack-4~exp11.14.5+repack-4~exp2 Show 42 moreShow less1.14.5+repack-5~exp21.14.5+repack-5~exp31.14.6+repack-11.14.6+repack-1~exp11.14.6+repack-1~exp101.14.6+repack-1~exp111.14.6+repack-1~exp121.14.6+repack-1~exp131.14.6+repack-1~exp141.14.6+repack-1~exp151.14.6+repack-1~exp161.14.6+repack-1~exp171.14.6+repack-1~exp181.14.6+repack-1~exp191.14.6+repack-1~exp21.14.6+repack-1~exp201.14.6+repack-1~exp211.14.6+repack-1~exp31.14.6+repack-1~exp41.14.6+repack-1~exp51.14.6+repack-1~exp61.14.6+repack-1~exp71.14.6+repack-1~exp81.14.6+repack-1~exp91.14.6+repack-21.14.6+repack-3~exp12.1.0+repack-12.1.0+repack-1~exp102.1.0+repack-1~exp112.1.0+repack-1~exp32.1.0+repack-1~exp42.1.0+repack-1~exp52.1.0+repack-1~exp62.1.0+repack-1~exp72.1.0+repack-1~exp82.1.0+repack-1~exp92.2.0+repack-12.2.0+repack-22.2.0+repack-32.2.0+repack-42.2.0+repack-52.2.0+repack-6 |
None known |
hdf5Debian:14 |
All versions, plus listed versions 1.14.5+repack-31.14.5+repack-3.11.14.5+repack-41.14.5+repack-4~exp11.14.5+repack-4~exp2 Show 42 moreShow less1.14.5+repack-5~exp21.14.5+repack-5~exp31.14.6+repack-11.14.6+repack-1~exp11.14.6+repack-1~exp101.14.6+repack-1~exp111.14.6+repack-1~exp121.14.6+repack-1~exp131.14.6+repack-1~exp141.14.6+repack-1~exp151.14.6+repack-1~exp161.14.6+repack-1~exp171.14.6+repack-1~exp181.14.6+repack-1~exp191.14.6+repack-1~exp21.14.6+repack-1~exp201.14.6+repack-1~exp211.14.6+repack-1~exp31.14.6+repack-1~exp41.14.6+repack-1~exp51.14.6+repack-1~exp61.14.6+repack-1~exp71.14.6+repack-1~exp81.14.6+repack-1~exp91.14.6+repack-21.14.6+repack-3~exp12.1.0+repack-12.1.0+repack-1~exp102.1.0+repack-1~exp112.1.0+repack-1~exp32.1.0+repack-1~exp42.1.0+repack-1~exp52.1.0+repack-1~exp62.1.0+repack-1~exp72.1.0+repack-1~exp82.1.0+repack-1~exp92.2.0+repack-12.2.0+repack-22.2.0+repack-32.2.0+repack-42.2.0+repack-52.2.0+repack-6 |
None known |
hdf5Ubuntu:Pro:14.04:LTS |
All versions, plus listed versions 1.8.11-3ubuntu11.8.11-5ubuntu11.8.11-5ubuntu21.8.11-5ubuntu61.8.11-5ubuntu71.8.11-5ubuntu7.11.8.11-5ubuntu7.1+esm11.8.11-5ubuntu7.1+esm2 |
None known |
hdf5Ubuntu:Pro:16.04:LTS |
All versions, plus listed versions 1.8.15-patch1+docs-41.8.15-patch1+docs-51.8.16+docs-11.8.16+docs-21.8.16+docs-3 Show 6 moreShow less1.8.16+docs-3ubuntu11.8.16+docs-41.8.16+docs-4ubuntu11.8.16+docs-4ubuntu1.11.8.16+docs-4ubuntu1.1+esm11.8.16+docs-4ubuntu1.1+esm2 |
None known |
hdf5Ubuntu:Pro:18.04:LTS |
All versions, plus listed versions 1.10.0-patch1+docs-41.10.0-patch1+docs-4ubuntu0.1~esm11.10.0-patch1+docs-4ubuntu0.1~esm2 |
None known |
hdf5Ubuntu:Pro:20.04:LTS |
All versions, plus listed versions 1.10.4+repack-101.10.4+repack-111.10.4+repack-11ubuntu11.10.4+repack-11ubuntu1+esm1 |
None known |
hdf5Ubuntu:22.04:LTS |
All versions, plus listed versions 1.10.6+repack-51.10.7+repack-4ubuntu11.10.7+repack-4ubuntu2 |
None known |
hdf5Ubuntu:24.04:LTS |
All versions, plus listed versions 1.10.8+repack1-1ubuntu11.10.10+repack-3ubuntu11.10.10+repack-3.1ubuntu31.10.10+repack-3.1ubuntu4 |
None known |
hdf5Ubuntu:26.10 |
All versions, plus listed versions 1.14.6+repack-22.2.0+repack-42.2.0+repack-5 |
None known |
hdf5Ubuntu:26.04:LTS |
All versions, plus listed versions 1.14.5+repack-3build11.14.5+repack-41.14.6+repack-2 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, aliases, references | OSV | |
| affected, aliases, references | OSV | |
| references | OSV | |
| references | GitHub Advisories, NVD | |
| published | EUVD | |
| published | EUVD, NVD | |
| aliases, references | CVE List, GitHub Advisories, NVD | |
| aliases, products, published | EUVD | |
| first indexed | CVE List |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-120758 is a medium vulnerability (CVSS 5.4) in Hdfgroup Hdf5, published November 3, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.14%, the 3rd percentile. No source names a fixed version.
References
github.com/HDFGroup/hdf5/pull/6377
nvd.nist.gov/vuln/detail/CVE-2026-120758
github.com/advisories/GHSA-49fv-ggjg-jcjc
github.com/CVEProject/cvelistV5/tree/main/cves/2026/120xxx/CVE-2026-120758.json
security-tracker.debian.org/tracker/CVE-2026-120758
ubuntu.com/security/CVE-2026-120758
cve.org/CVERecord?id=CVE-2026-120758
github.com/HDFGroup/hdf5/issues/6403
github.com/HDFGroup/hdf5/commit/91fc37c3325264e67699408e3a190fe4f329bf85
Left out here: 28 versions. The JSON record has them.