{"id":82260,"date":"2026-07-19T23:46:28","date_gmt":"2026-07-19T20:16:28","guid":{"rendered":"https:\/\/afaghhosting.net\/blog\/cve-2026-12484-unsafe-deserialization-in-keras-layers-torchmodulewrapper-from_config\/"},"modified":"2026-07-19T23:46:28","modified_gmt":"2026-07-19T20:16:28","slug":"cve-2026-12484-unsafe-deserialization-in-keras-layers-torchmodulewrapper-from_config","status":"publish","type":"post","link":"https:\/\/afaghhosting.net\/blog\/cve-2026-12484-unsafe-deserialization-in-keras-layers-torchmodulewrapper-from_config\/","title":{"rendered":"CVE-2026-12484 &#8211; Unsafe Deserialization in keras.layers.TorchModuleWrapper.from_config"},"content":{"rendered":"<p>CVE ID :CVE-2026-12484<\/p>\n<p>  Published : July 19, 2026, 8:16 p.m. | 1\u00a0hour, 25\u00a0minutes ago<\/p>\n<p>  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(&#8230;, 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.<\/p>\n<p>  Severity: 7.8 | HIGH<\/p>\n<p>  Visit the link for more details, such as CVSS details, affected products, timeline, and more&#8230;\u00a0<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CVE ID :CVE-2026-12484 Published : July 19, 2026, 8:16 p.m. | 1\u00a0hour, 25\u00a0minutes ago 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(&#8230;, weights_only=False)` without requiring an explicit unsafe opt-in, such as a `safe_mode=False` parameter. When called outside a `SafeModeScope(True)` &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[],"class_list":["post-82260","post","type-post","status-publish","format-standard","hentry","category-vulnerability"],"_links":{"self":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts\/82260","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/comments?post=82260"}],"version-history":[{"count":0,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts\/82260\/revisions"}],"wp:attachment":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/media?parent=82260"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/categories?post=82260"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/tags?post=82260"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}