Arbitrary Code Execution via Crafted Keras Config for Model Loading
### Impact The Keras `Model.load_model` function permits arbitrary code execution, even with `safe_mode=True`, through a manually constructed, malicious `.keras` archive. By altering the `config.json` file within the archive, an attacker can specify arbitrary Python modules and functions, along with their arguments, to be loaded and executed during model loading. ### Patches This problem is fixed starting with version `3.9`. ### Workarounds Only load models from trusted sources and model archives created with Keras. ### References - https://www.cve.org/cverecord?id=CVE-2025-1550 - https://github.com/keras-team/keras/pull/20751
describes (1)
Related CVEs.
| ID | severity | exploitable | ||
|---|---|---|---|---|
| CVE-2025-1550US | critical9.8 | Exploit | ||
The Keras Model.load_model function permits arbitrary code execution, even with safe_mode=True, through a manually constructed, malicious .keras archive. By altering the config.jso… | ||||
references
External citations — patches, advisories, analysis.
- https://github.com/keras-team/kerasPACKAGE
- https://github.com/keras-team/keras/commit/e67ac8ffd0c883bec68eb65bb52340c7f9d3a903WEB
- https://github.com/keras-team/keras/pull/20751WEB
- https://github.com/keras-team/keras/releases/tag/v3.9.0WEB
- https://github.com/keras-team/keras/security/advisories/GHSA-48g7-3x6r-xfhpWEB
- https://github.com/pypa/advisory-database/tree/main/vulns/keras/PYSEC-2025-122.yamlWEB
- https://nvd.nist.gov/vuln/detail/CVE-2025-1550ADVISORY
- https://towerofhanoi.it/writeups/cve-2025-1550WEB
Advisories like this name the exposed products attackers go after on your perimeter. See what is exposed on your perimeter with a free passive scan.
Free scan