Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious HDF5 model with manipulated model_config
-
ExploitDistribute file to target user or pipeline
-
ExecutionVictim calls load_hdf5_graph() on the file
-
ImpactUntrusted deserialization executes attacker payload
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V1 - Encoding and Sanitization Safe deserialization, type allowlists
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires a victim to load an attacker-supplied HDF5 model file through TensorLayer's load_hdf5_graph() with a manipulated model_config argument; no authentication is required (PR:N) but mandatory user interaction (UI:P/R) - the target must obtain and load the malicious model. Exploitation is therefore limited to environments that deserialize untrusted or third-party TensorLayer model files and to versions up to and including 2.2.4; it is NOT reachable against an unattended network-facing service with no file-loading step. |
| Impact | Signals here conflict sharply and skew toward LOW operational priority despite the serious CWE-502 class. The only severity source is VulDB, which rated this CVSS 4.0 2.1 (AV:N/AC:L/AT:N/PR:N/UI:P with only Low VC/VI/VA). That low score contradicts the vulnerability class: deserialization of an untrusted model_config via load_hdf5_graph (CWE-502) in TensorLayer historically means eval-based reconstruction of the model graph, which typically yields arbitrary code execution, not merely low-impact disclosure - so the vendor-of-record impact rating appears understated versus the mechanism. There is NO CISA KEV listing and NO EPSS score in the input, so real-world exploitation frequency cannot be quantified. POC is marked 'publicly available,' but the only 'exploit' reference is a GitHub issue thread (#1169), not verified weaponized code, so publicly available exploit code exists in name though its maturity is unconfirmed (CVSS E:P / 'Proof-of-Concept' corroborates immature exploit status). Critically, exploitation is gated by UI:P/UI:R - a victim must load an attacker-supplied model file - so this is not a remotely reachable service flaw. Net: a low-footprint, now-inactive ML library plus a required user-interaction step plus no KEV/EPSS evidence make this a low real-world priority, even though the underlying class is dangerous for anyone who loads untrusted TensorLayer models. |
| Exploit ScenarioDerived | An attacker publishes or shares a crafted HDF5 model file with a manipulated model_config to a model hub, repository, or directly to a target. When a developer or ML pipeline loads it via TensorLayer's load_hdf5_graph(), the untrusted model_config is deserialized and attacker-controlled logic runs in the victim's process. A public proof-of-concept is referenced via the project's GitHub issue tracker (#1169), though exploit maturity is only proof-of-concept. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 13, 2026
Deserialization of untrusted data in TensorLayer up to 2.2.4 allows local code execution when a victim loads a malicious HDF5 model file via load_hdf5_graph(), requiring user interaction (UI:R) but no privileges (PR:N). Despite high potential impact (C:H/I:H/A:H per our assessed CVSS 3.1 vector), the official CVSS 4.0 score is only 2.1 (low) because it assumes a network vector, and operational priority is LOW since the flaw is not reachable in unattended network services. A publicly available exploit exists; the vendor has not responded to the issue report, and no patch is available.
RemediationAI
No vendor-released patch identified at time of analysis; the project has not responded to the issue report. To mitigate, avoid loading untrusted or third-party HDF5 model files with TensorLayer's load_hdf5_graph(), which breaks the ability to use externally supplied models. If such files must be processed, validate the model_config argument against a strict allowlist and run the deserialization in a sandboxed environment with minimal privileges (e.g., container or seccomp), though sandboxing may degrade performance. Alternatively, disable HDF5 loading if not required, which may remove a feature. Given the public exploit code, prioritize applying any future patch from the maintainers as soon as it is released. Track the GitHub issue at https://github.com/tensorlayer/TensorLayer/issues/1169 for updates.
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
TensorLayer is a deep learning library. The vulnerable function load_hdf5_graph in tensorlayer/files/utils.py loads HDF5 files and deserializes the model_config argument without adequate validation, leading to CWE-502 (Deserialization of Untrusted Data). The CPE cpe:2.3:a:n/a:tensorlayer:*:*:*:*:*:*:*:* confirms all versions up to 2.2.4 are affected. Although the official CVSS 4.0 vector indicates a network attack (AV:N), our independent analysis (CVSS 3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H) shows that exploitation requires an attacker to supply a malicious HDF5 file that a victim must then load, effectively a local vector with mandatory user interaction. The deserialization flaw permits arbitrary code execution with high confidentiality, integrity, and availability impact if the malicious file is processed.
Know when Tensorlayer 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:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
CWE-502 model_config deserialization via load_hdf5_graph typically yields code execution (C/I/A:H), but requires the victim to locally load an attacker-supplied file, hence AV:L and UI:R with PR:N.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
3DescriptionCVE.org
A weakness has been identified in TensorLayer up to 2.2.4. This affects the function load_hdf5_graph of the file tensorlayer/files/utils.py of the component HDF5 Loading. Executing a manipulation of the argument model_config can lead to deserialization. The attack can be executed remotely. The exploit has been made available to the public and could be used for attacks. The project was informed of the problem early through an issue report but has not responded yet.
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
Insecure deserialization occurs when an application converts serialized data (a stream of bytes representing an object's state) back into a living object without proper validation.
EUVD-2026-98267
GHSA-8vxw-f7hc-g4ph
NVD
CVE.org
EPSS
VulDB
Exploit-DB