@blamejs/exceptd-skills 0.13.82 → 0.13.83

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -143,6 +143,8 @@
143
143
  "maturity": "high",
144
144
  "last_verified": "2026-05-19",
145
145
  "cve_refs": [
146
+ "CVE-2025-1550",
147
+ "CVE-2025-8747",
146
148
  "CVE-2026-22778",
147
149
  "CVE-2026-30615",
148
150
  "CVE-2026-39987",
@@ -1259,6 +1261,8 @@
1259
1261
  "exceptd_skills": [],
1260
1262
  "last_verified": "2026-05-19",
1261
1263
  "cve_refs": [
1264
+ "CVE-2025-1550",
1265
+ "CVE-2025-8747",
1262
1266
  "MAL-2024-PYPI-ULTRALYTICS-XMRIG"
1263
1267
  ],
1264
1268
  "description_full": "An adversary may rely upon specific actions by a user in order to gain execution. Users may inadvertently execute unsafe code introduced via [AI Supply Chain Compromise](/techniques/AML.T0010). Users may be subjected to social engineering to get them to execute malicious code by, for example, opening a malicious document file or link.",
@@ -2784,7 +2788,11 @@
2784
2788
  "ATLAS"
2785
2789
  ],
2786
2790
  "stix_id": "attack-pattern--a5cc5062-f672-510a-8a4f-a8d1aa7f5024",
2787
- "is_subtechnique": true
2791
+ "is_subtechnique": true,
2792
+ "cve_refs": [
2793
+ "CVE-2025-1550",
2794
+ "CVE-2025-8747"
2795
+ ]
2788
2796
  },
2789
2797
  "AML.T0011.001": {
2790
2798
  "id": "AML.T0011.001",
@@ -273,6 +273,7 @@
273
273
  "CVE-2024-50050",
274
274
  "CVE-2025-1094",
275
275
  "CVE-2025-11837",
276
+ "CVE-2025-1550",
276
277
  "CVE-2025-23254",
277
278
  "CVE-2025-30165",
278
279
  "CVE-2025-34291",
@@ -283,6 +284,7 @@
283
284
  "CVE-2025-60455",
284
285
  "CVE-2025-64496",
285
286
  "CVE-2025-68664",
287
+ "CVE-2025-8747",
286
288
  "CVE-2026-0766",
287
289
  "CVE-2026-22252",
288
290
  "CVE-2026-22688",
@@ -1069,6 +1071,8 @@
1069
1071
  "version": "v19",
1070
1072
  "cve_refs": [
1071
1073
  "CVE-2024-3094",
1074
+ "CVE-2025-1550",
1075
+ "CVE-2025-8747",
1072
1076
  "CVE-2026-45321",
1073
1077
  "MAL-2024-PYPI-ULTRALYTICS-XMRIG",
1074
1078
  "MAL-2025-PYPI-COLORAMA-SOLANA-STEALER",
@@ -4234,7 +4238,11 @@
4234
4238
  "Containers"
4235
4239
  ],
4236
4240
  "stix_id": "attack-pattern--8c32eb4d-805f-4fc5-bf60-c4d476c131b5",
4237
- "is_subtechnique": false
4241
+ "is_subtechnique": false,
4242
+ "cve_refs": [
4243
+ "CVE-2025-1550",
4244
+ "CVE-2025-8747"
4245
+ ]
4238
4246
  },
4239
4247
  "T1205": {
4240
4248
  "id": "T1205",
@@ -11821,6 +11821,220 @@
11821
11821
  "_intake_method": "manual-verified-curation",
11822
11822
  "_kev_short_description": "NVIDIA Container Toolkit loads code via an untrusted search path in its init hooks (CWE-426), letting a crafted container escape to the host with elevated permissions (NVIDIAScape). Affects Container Toolkit <= 1.17.7 (fixed 1.17.8) and GPU Operator <= 25.3.0 (fixed 25.3.1)."
11823
11823
  },
11824
+ "CVE-2025-1550": {
11825
+ "name": "Keras .keras Model Deserialization Arbitrary Code Execution",
11826
+ "type": "RCE",
11827
+ "cvss_score": 9.8,
11828
+ "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
11829
+ "cvss_note": "NVD CVSS v3.1 base 9.8 (CRITICAL). Arbitrary code execution at model-load time via unrestricted importlib use in the .keras format parser — no Lambda layer or custom object required, and loading (not calling) the model triggers it.",
11830
+ "cisa_kev": false,
11831
+ "poc_available": true,
11832
+ "poc_description": "Public exploit / research exists (Huntr writeups; Exploit-DB EDB-52359 for the Keras model RCE): a crafted .keras model archive executes code when loaded.",
11833
+ "ai_discovered": false,
11834
+ "ai_discovery_source": "human_researcher",
11835
+ "ai_discovery_notes": "Disclosed via Keras security advisories / Huntr. The abused surface is the ML model file format — the canonical AI supply-chain risk where an untrusted model artifact is executable code.",
11836
+ "ai_assisted_weaponization": false,
11837
+ "ai_assisted_notes": "No AI-assisted weaponization; unsafe deserialization of ML model artifacts.",
11838
+ "active_exploitation": "none",
11839
+ "active_exploitation_notes": "Advisory / research disclosure with a coordinated fix; no confirmed in-the-wild exploitation reported as of curation.",
11840
+ "affected": "Keras 3.0.0 through 3.7.x (fixed in 3.8.0, which introduced the safe_mode mitigation).",
11841
+ "affected_versions": [
11842
+ "Keras >= 3.0.0, < 3.8.0"
11843
+ ],
11844
+ "vector": "Keras's .keras model-format parser uses importlib.import_module on names taken from the model archive, so a crafted .keras file executes arbitrary Python modules/functions when the model is loaded (CWE-94) — without Lambda layers or custom objects, at parse time. An attacker who can get a victim to load an untrusted model achieves code execution.",
11845
+ "complexity": "low",
11846
+ "complexity_notes": "NVD AC:L. AV:N — loading the model (not calling it) triggers execution.",
11847
+ "patch_available": true,
11848
+ "patch_required_reboot": false,
11849
+ "live_patch_available": false,
11850
+ "live_patch_tools": [],
11851
+ "live_patch_notes": "Remediation is upgrading Keras to 3.8.0 or later; no host reboot.",
11852
+ "vendor_update_paths": [
11853
+ "Upgrade Keras to 3.8.0 or later and never load .keras models from untrusted sources. Note safe_mode alone is insufficient (see CVE-2025-8747)."
11854
+ ],
11855
+ "framework_control_gaps": {
11856
+ "NIST-800-53-SI-2": "Flaw-remediation cadence does not track ML frameworks' model-loading paths as managed, RCE-bearing software, nor that a first fix (safe_mode) was bypassable.",
11857
+ "NIST-800-53-SI-10": "Input-validation control is not applied to ML model artifacts, which are treated as data despite being executable at load time.",
11858
+ "ISO-27001-2022-A.8.8": "Vulnerability management rarely enumerates the model-deserialization path as a code-execution surface.",
11859
+ "NIS2-Art21-patch-management": "Article 21 measures do not reach ML model loading as a privileged execution control plane.",
11860
+ "DORA-Art-9": "ICT protection measures do not model untrusted-model-artifact loading as an ICT-risk event.",
11861
+ "UK-CAF-B4": "System Security objective has no objective for treating model artifacts as untrusted code.",
11862
+ "AU-ISM-1546": "Patch-application control does not single out ML frameworks' model-loading paths.",
11863
+ "ALL-AI-PIPELINE-INTEGRITY": "No framework treats an ML model file as untrusted executable input; loading one from an untrusted source is RCE, and safe_mode proved necessary-but-insufficient."
11864
+ },
11865
+ "atlas_refs": [
11866
+ "AML.T0010",
11867
+ "AML.T0011",
11868
+ "AML.T0011.000"
11869
+ ],
11870
+ "attack_refs": [
11871
+ "T1204",
11872
+ "T1059",
11873
+ "T1195.002"
11874
+ ],
11875
+ "rwep_score": 31,
11876
+ "rwep_factors": {
11877
+ "cisa_kev": 0,
11878
+ "poc_available": 20,
11879
+ "ai_factor": 0,
11880
+ "active_exploitation": 0,
11881
+ "blast_radius": 26,
11882
+ "patch_available": -15,
11883
+ "live_patch_available": 0,
11884
+ "reboot_required": 0
11885
+ },
11886
+ "rwep_notes": "Standard (RWEP 31, \"patch within 30 days\" band per lib/scoring.js timeline). Not KEV, no confirmed in-the-wild exploitation, patched at/after disclosure (Hard Rule #3). poc_available=20 + blast_radius=26 (Keras/TensorFlow are among the most widely used ML frameworks) minus patch 15.",
11887
+ "epss_score": null,
11888
+ "epss_date": "2026-05-25",
11889
+ "epss_note": "EPSS not pulled for this entry; retrieve via FIRST EPSS API in a future refresh.",
11890
+ "epss_source": "https://api.first.org/data/v1/epss?cve=CVE-2025-1550",
11891
+ "cwe_refs": [
11892
+ "CWE-94"
11893
+ ],
11894
+ "iocs": {
11895
+ "behavioral": [
11896
+ "Python module imports or subprocess execution occurring during keras.models.load_model / Model.load_model of an externally sourced .keras file.",
11897
+ "A .keras archive whose config references importlib targets or built-in module arguments that resolve to code execution.",
11898
+ "Loading model artifacts pulled from a model hub or user upload without provenance verification.",
11899
+ "Keras at an affected version (Keras >= 3.0.0, < 3.8.0) loading untrusted models — the exposed precondition."
11900
+ ],
11901
+ "_ioc_source_note": "Behavioral signatures derived from the primary public exploit for CVE-2025-1550 — Exploit-DB EDB-52359 (https://www.exploit-db.com/exploits/52359) and the PoC write-up at https://github.com/io-no/CVE-Reports/issues/2 — plus the Huntr technical analysis (https://blog.huntr.com/inside-cve-2025-1550-remote-code-execution-via-keras-models) and NVD CVE-2025-1550 (CWE-94). The importlib-driven load-time execution is the indicator anchor."
11902
+ },
11903
+ "source_verified": "2026-05-25",
11904
+ "verification_sources": [
11905
+ "https://nvd.nist.gov/vuln/detail/CVE-2025-1550",
11906
+ "https://github.com/keras-team/keras/security/advisories",
11907
+ "https://www.exploit-db.com/exploits/52359",
11908
+ "https://github.com/io-no/CVE-Reports/issues/2"
11909
+ ],
11910
+ "vendor_advisories": [
11911
+ {
11912
+ "vendor": "GitHub Security Advisory",
11913
+ "advisory_id": "CVE-2025-1550",
11914
+ "url": "https://github.com/keras-team/keras/security/advisories",
11915
+ "severity": "critical",
11916
+ "published_date": "2025-03-11"
11917
+ },
11918
+ {
11919
+ "vendor": "NVD",
11920
+ "advisory_id": "CVE-2025-1550",
11921
+ "url": "https://nvd.nist.gov/vuln/detail/CVE-2025-1550",
11922
+ "severity": "critical",
11923
+ "published_date": "2025-03-11"
11924
+ }
11925
+ ],
11926
+ "last_updated": "2026-05-25",
11927
+ "discovery_attribution_note": "Manually curated from NVD (CWE-94; NIST CVSS 9.8) + the Keras security advisory / Huntr research. Member of the ML model-deserialization family — untrusted model artifact equals executable code; CVE-2025-8747 shows the first fix was bypassable.",
11928
+ "_auto_imported": false,
11929
+ "_intake_method": "manual-verified-curation",
11930
+ "_kev_short_description": "Keras's .keras model parser runs arbitrary Python via importlib at load time (CWE-94), so loading an untrusted model is RCE; fixed in 3.8.0 (added safe_mode)."
11931
+ },
11932
+ "CVE-2025-8747": {
11933
+ "name": "Keras safe_mode Bypass Model Deserialization Code Execution",
11934
+ "type": "RCE",
11935
+ "cvss_score": 7.8,
11936
+ "cvss_vector": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
11937
+ "cvss_note": "NVD CVSS v3.1 base 7.8 (HIGH). A bypass of the safe_mode mitigation introduced for CVE-2025-1550: even with safe_mode enabled, a crafted .keras archive passed to Model.load_model can execute code by abusing arguments to built-in Keras modules (CWE-502).",
11938
+ "cisa_kev": false,
11939
+ "poc_available": true,
11940
+ "poc_description": "Public exploit / research exists (Huntr writeups; Exploit-DB EDB-52359 for the Keras model RCE): a crafted .keras model archive executes code when loaded, bypassing the safe_mode mitigation.",
11941
+ "ai_discovered": false,
11942
+ "ai_discovery_source": "human_researcher",
11943
+ "ai_discovery_notes": "Disclosed via Keras security advisories / Huntr. The abused surface is the ML model file format — the canonical AI supply-chain risk where an untrusted model artifact is executable code.",
11944
+ "ai_assisted_weaponization": false,
11945
+ "ai_assisted_notes": "No AI-assisted weaponization; unsafe deserialization of ML model artifacts.",
11946
+ "active_exploitation": "none",
11947
+ "active_exploitation_notes": "Advisory / research disclosure with a coordinated fix; no confirmed in-the-wild exploitation reported as of curation.",
11948
+ "affected": "Keras 3.0.0 through 3.10.0 (the safe_mode mitigation from 3.8.0 is bypassable through 3.10.0).",
11949
+ "affected_versions": [
11950
+ "Keras >= 3.0.0, <= 3.10.0"
11951
+ ],
11952
+ "vector": "The safe_mode mitigation added for CVE-2025-1550 is incomplete: Model.load_model still deserializes untrusted .keras archives in a way that lets crafted arguments to built-in Keras modules execute code (CWE-502), even when safe_mode is enabled. Loading an untrusted model is therefore still RCE.",
11953
+ "complexity": "low",
11954
+ "complexity_notes": "NVD AC:L. AV:L / UI:R — requires a victim to load the crafted model.",
11955
+ "patch_available": true,
11956
+ "patch_required_reboot": false,
11957
+ "live_patch_available": false,
11958
+ "live_patch_tools": [],
11959
+ "live_patch_notes": "Remediation is upgrading Keras past 3.10.0 to the release that fixes the safe_mode bypass; no host reboot.",
11960
+ "vendor_update_paths": [
11961
+ "Upgrade Keras past 3.10.0 (to the release that fixes the safe_mode bypass) and treat safe_mode as necessary-but-insufficient: never load .keras models from untrusted sources."
11962
+ ],
11963
+ "framework_control_gaps": {
11964
+ "NIST-800-53-SI-2": "Flaw-remediation cadence does not track ML frameworks' model-loading paths as managed, RCE-bearing software, nor that a first fix (safe_mode) was bypassable.",
11965
+ "NIST-800-53-SI-10": "Input-validation control is not applied to ML model artifacts, which are treated as data despite being executable at load time.",
11966
+ "ISO-27001-2022-A.8.8": "Vulnerability management rarely enumerates the model-deserialization path as a code-execution surface.",
11967
+ "NIS2-Art21-patch-management": "Article 21 measures do not reach ML model loading as a privileged execution control plane.",
11968
+ "DORA-Art-9": "ICT protection measures do not model untrusted-model-artifact loading as an ICT-risk event.",
11969
+ "UK-CAF-B4": "System Security objective has no objective for treating model artifacts as untrusted code.",
11970
+ "AU-ISM-1546": "Patch-application control does not single out ML frameworks' model-loading paths.",
11971
+ "ALL-AI-PIPELINE-INTEGRITY": "No framework treats an ML model file as untrusted executable input; loading one from an untrusted source is RCE, and safe_mode proved necessary-but-insufficient."
11972
+ },
11973
+ "atlas_refs": [
11974
+ "AML.T0010",
11975
+ "AML.T0011",
11976
+ "AML.T0011.000"
11977
+ ],
11978
+ "attack_refs": [
11979
+ "T1204",
11980
+ "T1059",
11981
+ "T1195.002"
11982
+ ],
11983
+ "rwep_score": 31,
11984
+ "rwep_factors": {
11985
+ "cisa_kev": 0,
11986
+ "poc_available": 20,
11987
+ "ai_factor": 0,
11988
+ "active_exploitation": 0,
11989
+ "blast_radius": 26,
11990
+ "patch_available": -15,
11991
+ "live_patch_available": 0,
11992
+ "reboot_required": 0
11993
+ },
11994
+ "rwep_notes": "Standard (RWEP 31, \"patch within 30 days\" band per lib/scoring.js timeline). Not KEV, no confirmed in-the-wild exploitation, patched at/after disclosure (Hard Rule #3). poc_available=20 + blast_radius=26 (Keras/TensorFlow are among the most widely used ML frameworks) minus patch 15.",
11995
+ "epss_score": null,
11996
+ "epss_date": "2026-05-25",
11997
+ "epss_note": "EPSS not pulled for this entry; retrieve via FIRST EPSS API in a future refresh.",
11998
+ "epss_source": "https://api.first.org/data/v1/epss?cve=CVE-2025-8747",
11999
+ "cwe_refs": [
12000
+ "CWE-502"
12001
+ ],
12002
+ "iocs": {
12003
+ "behavioral": [
12004
+ "Python module imports or subprocess execution occurring during keras.models.load_model / Model.load_model of an externally sourced .keras file.",
12005
+ "A .keras archive whose config references importlib targets or built-in module arguments that resolve to code execution.",
12006
+ "Loading model artifacts pulled from a model hub or user upload without provenance verification.",
12007
+ "Keras at an affected version (Keras >= 3.0.0, <= 3.10.0) loading untrusted models — the exposed precondition."
12008
+ ],
12009
+ "_ioc_source_note": "Behavioral signatures derived from the primary advisory for the CVE-2025-8747 safe_mode bypass — GitHub Security Advisory GHSA-c9rc-mg46-23w3 (https://github.com/advisories/GHSA-c9rc-mg46-23w3), which documents the bypass technique and PoC — plus NVD CVE-2025-8747 (CWE-502) and the Huntr Keras-deserialization research (https://blog.huntr.com/hunting-vulnerabilities-in-keras-model-deserialization). The safe_mode-enabled Model.load_model code execution via built-in module arguments is the indicator anchor."
12010
+ },
12011
+ "source_verified": "2026-05-25",
12012
+ "verification_sources": [
12013
+ "https://nvd.nist.gov/vuln/detail/CVE-2025-8747",
12014
+ "https://github.com/advisories/GHSA-c9rc-mg46-23w3"
12015
+ ],
12016
+ "vendor_advisories": [
12017
+ {
12018
+ "vendor": "GitHub Security Advisory",
12019
+ "advisory_id": "CVE-2025-8747",
12020
+ "url": "https://github.com/advisories/GHSA-c9rc-mg46-23w3",
12021
+ "severity": "high",
12022
+ "published_date": "2025-08-11"
12023
+ },
12024
+ {
12025
+ "vendor": "NVD",
12026
+ "advisory_id": "CVE-2025-8747",
12027
+ "url": "https://nvd.nist.gov/vuln/detail/CVE-2025-8747",
12028
+ "severity": "high",
12029
+ "published_date": "2025-08-11"
12030
+ }
12031
+ ],
12032
+ "last_updated": "2026-05-25",
12033
+ "discovery_attribution_note": "Manually curated from NVD (CWE-502; NIST CVSS 7.8) + the Keras security advisory / Huntr research. Member of the ML model-deserialization family — untrusted model artifact equals executable code; CVE-2025-8747 shows the first fix was bypassable.",
12034
+ "_auto_imported": false,
12035
+ "_intake_method": "manual-verified-curation",
12036
+ "_kev_short_description": "Keras safe_mode (added for CVE-2025-1550) is bypassable through 3.10.0: a crafted .keras archive executes code via built-in module arguments even with safe_mode on (CWE-502). The first fix was incomplete."
12037
+ },
11824
12038
  "CVE-2026-41091": {
11825
12039
  "name": "Microsoft Defender (Malware Protection Engine) Link-Following LPE to SYSTEM",
11826
12040
  "type": "LPE",
@@ -369,6 +369,7 @@
369
369
  "CVE-2022-48503",
370
370
  "CVE-2024-56145",
371
371
  "CVE-2025-11837",
372
+ "CVE-2025-1550",
372
373
  "CVE-2025-32432",
373
374
  "CVE-2025-37164",
374
375
  "CVE-2025-43200",
@@ -1317,6 +1318,7 @@
1317
1318
  "CVE-2025-59287",
1318
1319
  "CVE-2025-60455",
1319
1320
  "CVE-2025-68664",
1321
+ "CVE-2025-8747",
1320
1322
  "CVE-2026-20131",
1321
1323
  "CVE-2026-20963"
1322
1324
  ],
@@ -37,6 +37,7 @@
37
37
  "CVE-2023-48022",
38
38
  "CVE-2024-0132",
39
39
  "CVE-2024-50050",
40
+ "CVE-2025-1550",
40
41
  "CVE-2025-23254",
41
42
  "CVE-2025-23266",
42
43
  "CVE-2025-30165",
@@ -45,6 +46,7 @@
45
46
  "CVE-2025-54136",
46
47
  "CVE-2025-60455",
47
48
  "CVE-2025-64496",
49
+ "CVE-2025-8747",
48
50
  "CVE-2026-0766",
49
51
  "CVE-2026-22252",
50
52
  "CVE-2026-22688",
@@ -1385,6 +1387,7 @@
1385
1387
  "CVE-2025-14174",
1386
1388
  "CVE-2025-14611",
1387
1389
  "CVE-2025-14733",
1390
+ "CVE-2025-1550",
1388
1391
  "CVE-2025-15556",
1389
1392
  "CVE-2025-20281",
1390
1393
  "CVE-2025-20333",
@@ -1511,6 +1514,7 @@
1511
1514
  "CVE-2025-7775",
1512
1515
  "CVE-2025-8088",
1513
1516
  "CVE-2025-8110",
1517
+ "CVE-2025-8747",
1514
1518
  "CVE-2025-8875",
1515
1519
  "CVE-2025-8876",
1516
1520
  "CVE-2025-9242",
@@ -1763,6 +1767,7 @@
1763
1767
  "CVE-2025-10585",
1764
1768
  "CVE-2025-1094",
1765
1769
  "CVE-2025-14174",
1770
+ "CVE-2025-1550",
1766
1771
  "CVE-2025-23254",
1767
1772
  "CVE-2025-23266",
1768
1773
  "CVE-2025-30165",
@@ -1773,6 +1778,7 @@
1773
1778
  "CVE-2025-54136",
1774
1779
  "CVE-2025-60455",
1775
1780
  "CVE-2025-64496",
1781
+ "CVE-2025-8747",
1776
1782
  "CVE-2026-0766",
1777
1783
  "CVE-2026-22252",
1778
1784
  "CVE-2026-22688",
@@ -2192,11 +2198,13 @@
2192
2198
  "CVE-2024-50050",
2193
2199
  "CVE-2025-0133",
2194
2200
  "CVE-2025-1094",
2201
+ "CVE-2025-1550",
2195
2202
  "CVE-2025-23254",
2196
2203
  "CVE-2025-30165",
2197
2204
  "CVE-2025-60455",
2198
2205
  "CVE-2025-64496",
2199
2206
  "CVE-2025-6965",
2207
+ "CVE-2025-8747",
2200
2208
  "CVE-2026-0766",
2201
2209
  "CVE-2026-39884",
2202
2210
  "CVE-2026-42208",
@@ -2363,6 +2371,7 @@
2363
2371
  "CVE-2025-14174",
2364
2372
  "CVE-2025-14611",
2365
2373
  "CVE-2025-14733",
2374
+ "CVE-2025-1550",
2366
2375
  "CVE-2025-15556",
2367
2376
  "CVE-2025-20281",
2368
2377
  "CVE-2025-20333",
@@ -2494,6 +2503,7 @@
2494
2503
  "CVE-2025-7775",
2495
2504
  "CVE-2025-8088",
2496
2505
  "CVE-2025-8110",
2506
+ "CVE-2025-8747",
2497
2507
  "CVE-2025-8875",
2498
2508
  "CVE-2025-8876",
2499
2509
  "CVE-2025-9242",
@@ -4812,6 +4822,7 @@
4812
4822
  "CVE-2024-0132",
4813
4823
  "CVE-2024-21762",
4814
4824
  "CVE-2024-50050",
4825
+ "CVE-2025-1550",
4815
4826
  "CVE-2025-23254",
4816
4827
  "CVE-2025-23266",
4817
4828
  "CVE-2025-30165",
@@ -4820,6 +4831,7 @@
4820
4831
  "CVE-2025-54136",
4821
4832
  "CVE-2025-60455",
4822
4833
  "CVE-2025-64496",
4834
+ "CVE-2025-8747",
4823
4835
  "CVE-2026-0300",
4824
4836
  "CVE-2026-0766",
4825
4837
  "CVE-2026-20182",
@@ -5330,6 +5342,7 @@
5330
5342
  "CVE-2024-0132",
5331
5343
  "CVE-2024-21762",
5332
5344
  "CVE-2024-50050",
5345
+ "CVE-2025-1550",
5333
5346
  "CVE-2025-23254",
5334
5347
  "CVE-2025-23266",
5335
5348
  "CVE-2025-30165",
@@ -5338,6 +5351,7 @@
5338
5351
  "CVE-2025-54136",
5339
5352
  "CVE-2025-60455",
5340
5353
  "CVE-2025-64496",
5354
+ "CVE-2025-8747",
5341
5355
  "CVE-2026-0766",
5342
5356
  "CVE-2026-22252",
5343
5357
  "CVE-2026-22688",
@@ -5389,6 +5403,7 @@
5389
5403
  "CVE-2024-0132",
5390
5404
  "CVE-2024-21762",
5391
5405
  "CVE-2024-50050",
5406
+ "CVE-2025-1550",
5392
5407
  "CVE-2025-23254",
5393
5408
  "CVE-2025-23266",
5394
5409
  "CVE-2025-30165",
@@ -5397,6 +5412,7 @@
5397
5412
  "CVE-2025-54136",
5398
5413
  "CVE-2025-60455",
5399
5414
  "CVE-2025-64496",
5415
+ "CVE-2025-8747",
5400
5416
  "CVE-2026-0766",
5401
5417
  "CVE-2026-22252",
5402
5418
  "CVE-2026-22688",
@@ -7083,6 +7083,106 @@
7083
7083
  "_auto_imported": false,
7084
7084
  "_intake_method": "manual-verified-curation"
7085
7085
  },
7086
+ "CVE-2025-1550": {
7087
+ "name": "Keras .keras Model Deserialization Arbitrary Code Execution",
7088
+ "lesson_date": "2026-05-25",
7089
+ "attack_vector": {
7090
+ "description": "Keras's .keras model parser uses importlib on names from the model archive, so a crafted model executes arbitrary Python at load time (CWE-94) — no Lambda layer or custom object, no need to call the model.",
7091
+ "privileges_required": "none beyond getting a victim to load an untrusted .keras model",
7092
+ "complexity": "low",
7093
+ "ai_factor": "The abused surface is the ML model file format itself — the canonical AI supply-chain risk: an untrusted model artifact is executable code at load time. The lesson, sharpened by the CVE-2025-1550 -> CVE-2025-8747 sequence, is that model artifacts must be treated as untrusted code (provenance, scanning, safe formats like safetensors), and a partial mitigation such as safe_mode is necessary-but-insufficient when it can be bypassed."
7094
+ },
7095
+ "framework_coverage": {
7096
+ "NIST-800-53-SI-2": {
7097
+ "covered": true,
7098
+ "adequate": false,
7099
+ "gap": "Does not track ML frameworks' model-loading paths as RCE-bearing, nor that the first fix (safe_mode) was bypassable."
7100
+ },
7101
+ "NIST-800-53-SI-10": {
7102
+ "covered": true,
7103
+ "adequate": false,
7104
+ "gap": "Model artifacts are treated as data, but Keras executes code while parsing them; no validation is applied to the artifact."
7105
+ },
7106
+ "ALL-AI-PIPELINE-INTEGRITY": {
7107
+ "covered": false,
7108
+ "adequate": false,
7109
+ "gap": "No framework treats an ML model file as untrusted executable input; loading one from an untrusted source is RCE."
7110
+ }
7111
+ },
7112
+ "compliance_exposure_score": {
7113
+ "percent_audit_passing_orgs_still_exposed": 72,
7114
+ "basis": "ML pipelines pull models from hubs and user uploads and treat them as data; safe_mode is assumed sufficient despite the documented bypass.",
7115
+ "theater_pattern": "model_artifact_trust"
7116
+ },
7117
+ "ai_discovered_zeroday": false,
7118
+ "ai_discovery_source": "human_researcher",
7119
+ "ai_assist_factor": "none",
7120
+ "new_control_requirements": [
7121
+ {
7122
+ "id": "NEW-CTRL-091",
7123
+ "name": "UNTRUSTED-MODEL-ARTIFACT-LOADING",
7124
+ "description": "Treat ML model artifacts as untrusted code: never load .keras / pickle-based models from untrusted sources, verify provenance, prefer safe formats (e.g. safetensors), and load untrusted models only in a sandboxed, network-isolated, least-privilege environment. Upgrade Keras to the fixed release (>= 3.8.0 for CVE-2025-1550; past 3.10.0 for the CVE-2025-8747 safe_mode bypass) and do not rely on safe_mode alone — it was bypassable. The distinguishing test: load an attacker-crafted .keras archive with safe_mode enabled on a sandboxed instance and confirm no code executes.",
7125
+ "evidence": "https://nvd.nist.gov/vuln/detail/CVE-2025-1550",
7126
+ "gap_closes": [
7127
+ "NIST-800-53-SI-2",
7128
+ "NIST-800-53-SI-10",
7129
+ "ALL-AI-PIPELINE-INTEGRITY"
7130
+ ]
7131
+ }
7132
+ ],
7133
+ "_auto_imported": false,
7134
+ "_intake_method": "manual-verified-curation"
7135
+ },
7136
+ "CVE-2025-8747": {
7137
+ "name": "Keras safe_mode Bypass Model Deserialization Code Execution",
7138
+ "lesson_date": "2026-05-25",
7139
+ "attack_vector": {
7140
+ "description": "The safe_mode mitigation added for CVE-2025-1550 is bypassable through Keras 3.10.0: Model.load_model still lets a crafted .keras archive execute code via arguments to built-in modules (CWE-502), even with safe_mode enabled.",
7141
+ "privileges_required": "none beyond getting a victim to load an untrusted .keras model",
7142
+ "complexity": "low",
7143
+ "ai_factor": "The abused surface is the ML model file format itself — the canonical AI supply-chain risk: an untrusted model artifact is executable code at load time. The lesson, sharpened by the CVE-2025-1550 -> CVE-2025-8747 sequence, is that model artifacts must be treated as untrusted code (provenance, scanning, safe formats like safetensors), and a partial mitigation such as safe_mode is necessary-but-insufficient when it can be bypassed."
7144
+ },
7145
+ "framework_coverage": {
7146
+ "NIST-800-53-SI-2": {
7147
+ "covered": true,
7148
+ "adequate": false,
7149
+ "gap": "Does not track ML frameworks' model-loading paths as RCE-bearing, nor that the first fix (safe_mode) was bypassable."
7150
+ },
7151
+ "NIST-800-53-SI-10": {
7152
+ "covered": true,
7153
+ "adequate": false,
7154
+ "gap": "A mitigation (safe_mode) is asserted as the control, but it is bypassable; the artifact is still deserialized unsafely."
7155
+ },
7156
+ "ALL-AI-PIPELINE-INTEGRITY": {
7157
+ "covered": false,
7158
+ "adequate": false,
7159
+ "gap": "No framework treats an ML model file as untrusted executable input; loading one from an untrusted source is RCE."
7160
+ }
7161
+ },
7162
+ "compliance_exposure_score": {
7163
+ "percent_audit_passing_orgs_still_exposed": 74,
7164
+ "basis": "ML pipelines pull models from hubs and user uploads and treat them as data; safe_mode is assumed sufficient despite the documented bypass.",
7165
+ "theater_pattern": "incomplete_fix_assumed_complete"
7166
+ },
7167
+ "ai_discovered_zeroday": false,
7168
+ "ai_discovery_source": "human_researcher",
7169
+ "ai_assist_factor": "none",
7170
+ "new_control_requirements": [
7171
+ {
7172
+ "id": "NEW-CTRL-091",
7173
+ "name": "UNTRUSTED-MODEL-ARTIFACT-LOADING",
7174
+ "description": "Treat ML model artifacts as untrusted code: never load .keras / pickle-based models from untrusted sources, verify provenance, prefer safe formats (e.g. safetensors), and load untrusted models only in a sandboxed, network-isolated, least-privilege environment. Upgrade Keras to the fixed release (>= 3.8.0 for CVE-2025-1550; past 3.10.0 for the CVE-2025-8747 safe_mode bypass) and do not rely on safe_mode alone — it was bypassable. The distinguishing test: load an attacker-crafted .keras archive with safe_mode enabled on a sandboxed instance and confirm no code executes.",
7175
+ "evidence": "https://github.com/advisories/GHSA-c9rc-mg46-23w3",
7176
+ "gap_closes": [
7177
+ "NIST-800-53-SI-2",
7178
+ "NIST-800-53-SI-10",
7179
+ "ALL-AI-PIPELINE-INTEGRITY"
7180
+ ]
7181
+ }
7182
+ ],
7183
+ "_auto_imported": false,
7184
+ "_intake_method": "manual-verified-curation"
7185
+ },
7086
7186
  "CVE-2025-34291": {
7087
7187
  "name": "Langflow Account Takeover + RCE (CORS / refresh-token chain)",
7088
7188
  "lesson_date": "2026-05-24",