Keras is vulnerable to Deserialization of Untrusted Data
### Arbitrary Code Execution in Keras Keras versions prior to 3.11.0 allow for arbitrary code execution when loading a crafted `.keras` model archive, even when `safe_mode=True`. The issue arises because the archive’s `config.json` is parsed before layer deserialization. This can invoke `keras.config.enable_unsafe_deserialization()`, effectively disabling safe mode from within the loading process itself. An attacker can place this call first in the archive and then include a `Lambda` layer whose function is deserialized from a pickle, leading to the execution of attacker-controlled Python code as soon as a victim loads the model file. Exploitation requires a user to open an untrusted model; no additional privileges are needed. The fix in version 3.11.0 enforces safe-mode semantics *before* reading any user-controlled configuration and prevents the toggling of unsafe deserialization via the config file. **Affected versions:** < 3.11.0 **Patched version:** 3.11.0 It is recommended to upgrade to version 3.11.0 or later and to avoid opening untrusted model files.
beschreibt (1)
Zugehörige CVEs.
| ID | Schweregrad | ausnutzbar | ||
|---|---|---|---|---|
| CVE-2025-9906US | high7.3 | — | ||
The Keras Model.load_model method can be exploited to achieve arbitrary code execution, even with safe_mode=True.
One can create a specially crafted .keras model archive that, whe… | ||||
Referenzen
Externe Belege — Patches, Meldungen, Analysen.
- https://github.com/keras-team/kerasPACKAGE
- https://github.com/keras-team/keras/commit/713172ab56b864e59e2aa79b1a51b0e728bba858WEB
- https://github.com/keras-team/keras/pull/21429WEB
- https://github.com/keras-team/keras/releases/tag/v3.11.0WEB
- https://github.com/pypa/advisory-database/tree/main/vulns/keras/PYSEC-2025-76.yamlWEB
- https://nvd.nist.gov/vuln/detail/CVE-2025-9906ADVISORY
- https://osv.dev/vulnerability/CVE-2025-9906WEB
Advisories wie diese benennen die exponierten Produkte, die Angreifer auf Ihrer Angriffsfläche ins Visier nehmen. Sehen Sie mit einem kostenlosen Passiv-Scan, was exponiert ist.
Kostenloser Scan