Description
A vulnerability in keras-team/keras version 3.15.0 allows unsafe deserialization of attacker-controlled PyTorch pickle data through the public `keras.layers.TorchModuleWrapper.from_config` method. This method invokes `torch.load(..., weights_only=False)` without requiring an explicit unsafe opt-in, such as a `safe_mode=False` parameter. When called outside a `SafeModeScope(True)` context, the absence of an ambient safe mode state permits unsafe deserialization by default. This issue can lead to arbitrary code execution if untrusted Keras layer configurations are processed using this method. The vulnerability arises because the method does not enforce safe deserialization practices unless explicitly guarded by Keras safe mode.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| keras-team | keras-team/keras | unspecified – ≤ latest | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 11 | keras | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 20.04 LTS | keras | No fix yet | — |
| Ubuntu 18.04 LTS | keras | No fix yet | — |
Azure Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Azure Linux 3 | keras | No fix yet | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| PyPI | keras | < 3.12.3 | 3.12.3 | GHSA-v2w2-w228-c444 |
| PyPI | keras | >= 3.13.0, < 3.15.0 | 3.15.0 | GHSA-v2w2-w228-c444 |
| PyPI | keras | < 3.12.3 · >= 3.13.0, < 3.15.0 | 3.12.3, 3.15.0 | PYSEC-2026-3634 |