← Back to CVE Explorer

CVE-2026-12484

Full vulnerability record from the local CVENow database.

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.

Severity
HIGH
CVSS score
7.8 (v3.0)
Vulnerability status
Awaiting Analysis
Source identifier
Published
2026-07-19 20:16:28.800000
Last modified
2026-10-24 20:10:00.137000
View original CVE JSON
{
  "id": "CVE-2026-12484",
  "sourceIdentifier": "[email protected]",
  "published": "2026-07-19T20:16:28.800",
  "lastModified": "2026-10-24T20:10:00.137",
  "vulnStatus": "Awaiting Analysis",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "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."
    },
    {
      "lang": "es",
      "value": "Una vulnerabilidad en keras-team/keras versión 3.15.0 permite la deserialización insegura de datos pickle de PyTorch controlados por el atacante a través del método público ’keras.layers.TorchModuleWrapper.from_config’. Este método invoca ’torch.load(..., weights_only=False)’ sin requerir una activación explícita de modo inseguro, como un parámetro ’safe_mode=False’. Cuando se llama fuera de un contexto ’SafeModeScope(True)’, la ausencia de un estado de modo seguro ambiental permite la deserialización insegura por defecto. Este problema puede llevar a la ejecución de código arbitrario si se procesan configuraciones de capas de Keras no confiables utilizando este método. La vulnerabilidad surge porque el método no impone prácticas de deserialización segura a menos que esté explícitamente protegido por el modo seguro de Keras."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "keras-team",
          "product": "keras-team/keras",
          "versions": [
            {
              "version": "unspecified",
              "lessThanOrEqual": "latest",
              "versionType": "custom",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV30": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.0",
          "vectorString": "CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
          "baseScore": 7.8,
          "baseSeverity": "HIGH",
          "attackVector": "LOCAL",
          "attackComplexity": "LOW",
          "privilegesRequired": "NONE",
          "userInteraction": "REQUIRED",
          "scope": "UNCHANGED",
          "confidentialityImpact": "HIGH",
          "integrityImpact": "HIGH",
          "availabilityImpact": "HIGH"
        },
        "exploitabilityScore": 1.8,
        "impactScore": 5.9
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-07-20T13:45:26.059176Z",
          "id": "CVE-2026-12484",
          "options": [
            {
              "exploitation": "poc"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "total"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-502"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://huntr.com/bounties/ab14df49-13b5-4442-b754-3189430bfa28",
      "source": "[email protected]"
    },
    {
      "url": "https://huntr.com/bounties/ab14df49-13b5-4442-b754-3189430bfa28",
      "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
    }
  ]
}