CVE-2026-12481
Reported by @huntr_ai · Published July 3, 2026
A vulnerability in keras-team/keras version 3.14.0 allows for arbitrary code execution due to improper handling of deserialization in the `Lambda` layer. Specifically, the `_raise_for_lambda_deserialization()` function fails to enforce the safe-mode guard when `safe_mode` is set to `None`, which is the default value when `from_config()` is called outside of a `SafeModeScope` context. This logic error conflates `None` (unset/default-deny) with `False` (explicitly disabled), bypassing the guard and allowing attacker-controlled `marshal` bytecode to be deserialized. Affected call sites include `keras.layers.deserialize(config)`, `keras.models.clone_model(model)`, and any direct invocation of `Lambda.from_config(config)` without an enclosing `SafeModeScope(True)`. This vulnerability can be exploited to achieve arbitrary OS-level code execution in the context of the server or user process.
Risk Scores
Affected Products
| Vendor | Product | Versions |
|---|---|---|
| keras-team | keras-team/keras | unspecified |
| keras-team | keras-team/keras | * |
| PyPI | keras | 0, 3.13.0 |
Timeline
- Jul 3, 2026 CVE Published
- Jul 4, 2026 EPSS Score
- Jul 4, 2026 Coalition ESS Score
- Jul 6, 2026 Security Advisory
- Aug 7, 2026 EPSS Score
- Aug 24, 2026 EPSS Score
- Aug 26, 2026 EPSS Score
- Aug 28, 2026 EPSS Score
- Aug 30, 2026 EPSS Score
- Sep 3, 2026 EPSS Score
- Sep 5, 2026 EPSS Score
- Sep 6, 2026 EPSS Score
References
- https://nvd.nist.gov/vuln/detail/CVE-2026-12481 advisory
- https://github.com/advisories/GHSA-5gwj-m78q-7pq3 advisory
- https://github.com/keras-team/keras/pull/23048 patch
- https://github.com/keras-team/keras/pull/23165 patch
- https://github.com/keras-team/keras/commit/55888d3becbdbb45dc16a55b489900f911e2dde5 patch
- https://github.com/keras-team/keras/commit/d338a45204bdc787c8b3c4a9b82c1911cd52dedf patch
- https://github.com/keras-team/keras/releases/tag/v3.12.3 url
- https://github.com/keras-team/keras/releases/tag/v3.15.0 url