GitHub Advisoryadvisory · PyPI
GHSA-48g7-3x6r-xfhp Arbitrary Code Execution via Crafted Keras Config for Model Loading
HIGH
Official page ↗
- Aliases
- CVE-2025-1550
- Ecosystem
- PyPI
- Packages
- keras
- Severity
- High
- CVSS vector
- CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
- Weaknesses
- CWE-94
- Reviewed
- 2025-03-11
Affected packages
• PyPI keras: >= 3.0.0, < 3.9.0 → fixed in 3.9.0
Description
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
Related
Alias · CVE (1)
- CVE-2025-1550 The Keras Model.load_model function permits arbitrary code execution, even with safe_mode=True, through a manually constructed, malicious… vulnerability
Weakness · CWE (1)
- CWE-94 Improper Control of Generation of Code weakness
References
- https://github.com/keras-team/keras/security/advisories/GHSA-48g7-3x6r-xfhp web
- https://nvd.nist.gov/vuln/detail/CVE-2025-1550 advisory
- https://github.com/keras-team/keras/pull/20751 web
- https://github.com/keras-team/keras/commit/e67ac8ffd0c883bec68eb65bb52340c7f9d3a903 web
- https://github.com/keras-team/keras package
- https://github.com/keras-team/keras/releases/tag/v3.9.0 web
- https://github.com/pypa/advisory-database/tree/main/vulns/keras/PYSEC-2025-122.yaml web
- https://towerofhanoi.it/writeups/cve-2025-1550 web