@blamejs/exceptd-skills 0.13.106 → 0.13.108
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.
- package/CHANGELOG.md +8 -0
- package/data/_indexes/_meta.json +9 -9
- package/data/_indexes/activity-feed.json +2 -2
- package/data/_indexes/catalog-summaries.json +2 -2
- package/data/_indexes/chains.json +1280 -0
- package/data/atlas-ttps.json +8 -0
- package/data/attack-techniques.json +13 -1
- package/data/cve-catalog.json +419 -1
- package/data/cwe-catalog.json +4 -0
- package/data/framework-control-gaps.json +37 -1
- package/data/zeroday-lessons.json +200 -0
- package/manifest.json +44 -44
- package/package.json +2 -2
- package/sbom.cdx.json +25 -25
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
"opened_date": "2026-01-01",
|
|
36
36
|
"evidence_cves": [
|
|
37
37
|
"CVE-2022-1471",
|
|
38
|
+
"CVE-2022-36551",
|
|
38
39
|
"CVE-2023-43654",
|
|
39
40
|
"CVE-2023-48022",
|
|
40
41
|
"CVE-2023-51449",
|
|
@@ -57,6 +58,8 @@
|
|
|
57
58
|
"CVE-2024-27132",
|
|
58
59
|
"CVE-2024-2912",
|
|
59
60
|
"CVE-2024-37032",
|
|
61
|
+
"CVE-2024-37052",
|
|
62
|
+
"CVE-2024-37060",
|
|
60
63
|
"CVE-2024-39722",
|
|
61
64
|
"CVE-2024-42478",
|
|
62
65
|
"CVE-2024-42479",
|
|
@@ -68,6 +71,7 @@
|
|
|
68
71
|
"CVE-2025-1753",
|
|
69
72
|
"CVE-2025-23254",
|
|
70
73
|
"CVE-2025-23266",
|
|
74
|
+
"CVE-2025-25297",
|
|
71
75
|
"CVE-2025-27520",
|
|
72
76
|
"CVE-2025-30165",
|
|
73
77
|
"CVE-2025-30202",
|
|
@@ -1236,9 +1240,11 @@
|
|
|
1236
1240
|
"status": "open",
|
|
1237
1241
|
"opened_date": "2026-05-17",
|
|
1238
1242
|
"evidence_cves": [
|
|
1243
|
+
"CVE-2022-36551",
|
|
1239
1244
|
"CVE-2024-0132",
|
|
1240
1245
|
"CVE-2024-21626",
|
|
1241
|
-
"CVE-2025-23266"
|
|
1246
|
+
"CVE-2025-23266",
|
|
1247
|
+
"CVE-2025-25297"
|
|
1242
1248
|
],
|
|
1243
1249
|
"atlas_refs": [],
|
|
1244
1250
|
"attack_refs": [
|
|
@@ -1276,6 +1282,8 @@
|
|
|
1276
1282
|
"CVE-2024-24590",
|
|
1277
1283
|
"CVE-2024-24591",
|
|
1278
1284
|
"CVE-2024-2912",
|
|
1285
|
+
"CVE-2024-37052",
|
|
1286
|
+
"CVE-2024-37060",
|
|
1279
1287
|
"CVE-2024-5565",
|
|
1280
1288
|
"CVE-2025-0133",
|
|
1281
1289
|
"CVE-2025-1094",
|
|
@@ -2257,6 +2265,7 @@
|
|
|
2257
2265
|
"status": "open",
|
|
2258
2266
|
"opened_date": "2026-05-01",
|
|
2259
2267
|
"evidence_cves": [
|
|
2268
|
+
"CVE-2022-36551",
|
|
2260
2269
|
"CVE-2023-48022",
|
|
2261
2270
|
"CVE-2023-51449",
|
|
2262
2271
|
"CVE-2023-6038",
|
|
@@ -2268,6 +2277,7 @@
|
|
|
2268
2277
|
"CVE-2024-42478",
|
|
2269
2278
|
"CVE-2024-42479",
|
|
2270
2279
|
"CVE-2025-23266",
|
|
2280
|
+
"CVE-2025-25297",
|
|
2271
2281
|
"CVE-2025-30202",
|
|
2272
2282
|
"CVE-2025-32444",
|
|
2273
2283
|
"CVE-2025-53767",
|
|
@@ -2339,6 +2349,7 @@
|
|
|
2339
2349
|
"status": "open",
|
|
2340
2350
|
"opened_date": "2026-05-13",
|
|
2341
2351
|
"evidence_cves": [
|
|
2352
|
+
"CVE-2022-36551",
|
|
2342
2353
|
"CVE-2023-44467",
|
|
2343
2354
|
"CVE-2024-0129",
|
|
2344
2355
|
"CVE-2024-11392",
|
|
@@ -2352,6 +2363,8 @@
|
|
|
2352
2363
|
"CVE-2024-27132",
|
|
2353
2364
|
"CVE-2024-2912",
|
|
2354
2365
|
"CVE-2024-37032",
|
|
2366
|
+
"CVE-2024-37052",
|
|
2367
|
+
"CVE-2024-37060",
|
|
2355
2368
|
"CVE-2024-39722",
|
|
2356
2369
|
"CVE-2024-50050",
|
|
2357
2370
|
"CVE-2024-5565",
|
|
@@ -2360,6 +2373,7 @@
|
|
|
2360
2373
|
"CVE-2025-1550",
|
|
2361
2374
|
"CVE-2025-1753",
|
|
2362
2375
|
"CVE-2025-23254",
|
|
2376
|
+
"CVE-2025-25297",
|
|
2363
2377
|
"CVE-2025-27520",
|
|
2364
2378
|
"CVE-2025-30165",
|
|
2365
2379
|
"CVE-2025-32434",
|
|
@@ -2534,6 +2548,8 @@
|
|
|
2534
2548
|
"CVE-2024-27199",
|
|
2535
2549
|
"CVE-2024-27443",
|
|
2536
2550
|
"CVE-2024-37032",
|
|
2551
|
+
"CVE-2024-37052",
|
|
2552
|
+
"CVE-2024-37060",
|
|
2537
2553
|
"CVE-2024-37079",
|
|
2538
2554
|
"CVE-2024-39722",
|
|
2539
2555
|
"CVE-2024-42009",
|
|
@@ -2857,6 +2873,8 @@
|
|
|
2857
2873
|
"CVE-2024-24590",
|
|
2858
2874
|
"CVE-2024-24591",
|
|
2859
2875
|
"CVE-2024-3094",
|
|
2876
|
+
"CVE-2024-37052",
|
|
2877
|
+
"CVE-2024-37060",
|
|
2860
2878
|
"MAL-2026-SHAI-HULUD-OSS"
|
|
2861
2879
|
],
|
|
2862
2880
|
"atlas_refs": [
|
|
@@ -5042,6 +5060,7 @@
|
|
|
5042
5060
|
"opened_date": "2026-05-15",
|
|
5043
5061
|
"evidence_cves": [
|
|
5044
5062
|
"CVE-2022-1471",
|
|
5063
|
+
"CVE-2022-36551",
|
|
5045
5064
|
"CVE-2023-43654",
|
|
5046
5065
|
"CVE-2023-44467",
|
|
5047
5066
|
"CVE-2023-48022",
|
|
@@ -5067,6 +5086,8 @@
|
|
|
5067
5086
|
"CVE-2024-27132",
|
|
5068
5087
|
"CVE-2024-2912",
|
|
5069
5088
|
"CVE-2024-37032",
|
|
5089
|
+
"CVE-2024-37052",
|
|
5090
|
+
"CVE-2024-37060",
|
|
5070
5091
|
"CVE-2024-39722",
|
|
5071
5092
|
"CVE-2024-42478",
|
|
5072
5093
|
"CVE-2024-42479",
|
|
@@ -5078,6 +5099,7 @@
|
|
|
5078
5099
|
"CVE-2025-1753",
|
|
5079
5100
|
"CVE-2025-23254",
|
|
5080
5101
|
"CVE-2025-23266",
|
|
5102
|
+
"CVE-2025-25297",
|
|
5081
5103
|
"CVE-2025-27520",
|
|
5082
5104
|
"CVE-2025-30165",
|
|
5083
5105
|
"CVE-2025-30202",
|
|
@@ -5155,8 +5177,10 @@
|
|
|
5155
5177
|
"status": "open",
|
|
5156
5178
|
"opened_date": "2026-05-15",
|
|
5157
5179
|
"evidence_cves": [
|
|
5180
|
+
"CVE-2022-36551",
|
|
5158
5181
|
"CVE-2023-6038",
|
|
5159
5182
|
"CVE-2024-1709",
|
|
5183
|
+
"CVE-2025-25297",
|
|
5160
5184
|
"CVE-2025-3248",
|
|
5161
5185
|
"CVE-2026-33017",
|
|
5162
5186
|
"CVE-2026-39987",
|
|
@@ -5613,6 +5637,7 @@
|
|
|
5613
5637
|
"status": "open",
|
|
5614
5638
|
"opened_date": "2026-05-17",
|
|
5615
5639
|
"evidence_cves": [
|
|
5640
|
+
"CVE-2022-36551",
|
|
5616
5641
|
"CVE-2023-44467",
|
|
5617
5642
|
"CVE-2023-51449",
|
|
5618
5643
|
"CVE-2023-6016",
|
|
@@ -5634,6 +5659,8 @@
|
|
|
5634
5659
|
"CVE-2024-27132",
|
|
5635
5660
|
"CVE-2024-2912",
|
|
5636
5661
|
"CVE-2024-37032",
|
|
5662
|
+
"CVE-2024-37052",
|
|
5663
|
+
"CVE-2024-37060",
|
|
5637
5664
|
"CVE-2024-39722",
|
|
5638
5665
|
"CVE-2024-42478",
|
|
5639
5666
|
"CVE-2024-42479",
|
|
@@ -5643,6 +5670,7 @@
|
|
|
5643
5670
|
"CVE-2025-1753",
|
|
5644
5671
|
"CVE-2025-23254",
|
|
5645
5672
|
"CVE-2025-23266",
|
|
5673
|
+
"CVE-2025-25297",
|
|
5646
5674
|
"CVE-2025-27520",
|
|
5647
5675
|
"CVE-2025-30165",
|
|
5648
5676
|
"CVE-2025-30202",
|
|
@@ -5711,6 +5739,7 @@
|
|
|
5711
5739
|
"opened_date": "2026-05-17",
|
|
5712
5740
|
"evidence_cves": [
|
|
5713
5741
|
"CVE-2022-1471",
|
|
5742
|
+
"CVE-2022-36551",
|
|
5714
5743
|
"CVE-2023-43654",
|
|
5715
5744
|
"CVE-2023-44467",
|
|
5716
5745
|
"CVE-2023-48022",
|
|
@@ -5736,6 +5765,8 @@
|
|
|
5736
5765
|
"CVE-2024-27132",
|
|
5737
5766
|
"CVE-2024-2912",
|
|
5738
5767
|
"CVE-2024-37032",
|
|
5768
|
+
"CVE-2024-37052",
|
|
5769
|
+
"CVE-2024-37060",
|
|
5739
5770
|
"CVE-2024-39722",
|
|
5740
5771
|
"CVE-2024-42478",
|
|
5741
5772
|
"CVE-2024-42479",
|
|
@@ -5747,6 +5778,7 @@
|
|
|
5747
5778
|
"CVE-2025-1753",
|
|
5748
5779
|
"CVE-2025-23254",
|
|
5749
5780
|
"CVE-2025-23266",
|
|
5781
|
+
"CVE-2025-25297",
|
|
5750
5782
|
"CVE-2025-27520",
|
|
5751
5783
|
"CVE-2025-30165",
|
|
5752
5784
|
"CVE-2025-30202",
|
|
@@ -5855,6 +5887,8 @@
|
|
|
5855
5887
|
"CVE-2024-24590",
|
|
5856
5888
|
"CVE-2024-24591",
|
|
5857
5889
|
"CVE-2024-3154",
|
|
5890
|
+
"CVE-2024-37052",
|
|
5891
|
+
"CVE-2024-37060",
|
|
5858
5892
|
"MAL-2026-NODE-IPC-STEALER",
|
|
5859
5893
|
"MAL-2026-RUBYGEMS-BUFFERZONECORP-SLEEPER",
|
|
5860
5894
|
"MAL-2026-SHAI-HULUD-OSS",
|
|
@@ -6190,7 +6224,9 @@
|
|
|
6190
6224
|
"status": "open",
|
|
6191
6225
|
"opened_date": "2026-05-18",
|
|
6192
6226
|
"evidence_cves": [
|
|
6227
|
+
"CVE-2022-36551",
|
|
6193
6228
|
"CVE-2024-21762",
|
|
6229
|
+
"CVE-2025-25297",
|
|
6194
6230
|
"CVE-2026-20182"
|
|
6195
6231
|
],
|
|
6196
6232
|
"atlas_refs": [],
|
|
@@ -4511,6 +4511,206 @@
|
|
|
4511
4511
|
"_auto_imported": false,
|
|
4512
4512
|
"_intake_method": "manual-verified-curation"
|
|
4513
4513
|
},
|
|
4514
|
+
"CVE-2024-37052": {
|
|
4515
|
+
"name": "MLflow scikit-learn Model Deserialization Remote Code Execution",
|
|
4516
|
+
"lesson_date": "2026-05-25",
|
|
4517
|
+
"attack_vector": {
|
|
4518
|
+
"description": "A maliciously crafted scikit-learn model stored in MLflow (1.1.0-2.14.1) runs arbitrary code when a user loads or interacts with it, because the model object is reconstructed through unsafe deserialization.",
|
|
4519
|
+
"privileges_required": "low-to-none (upload to a registry the victim uses; victim must load/run the artifact - UI:R)",
|
|
4520
|
+
"complexity": "low",
|
|
4521
|
+
"ai_factor": "The abused surface is MLflow, an MLOps / model-registry platform. The lesson: an MLflow model artifact or Recipe is executable code - loading an untrusted one is code execution, so there is no patch, only provenance verification and sandboxed loading. One of the Protect AI / HiddenLayer model-flavor deserialization findings."
|
|
4522
|
+
},
|
|
4523
|
+
"framework_coverage": {
|
|
4524
|
+
"NIST-800-53-SI-2": {
|
|
4525
|
+
"covered": true,
|
|
4526
|
+
"adequate": false,
|
|
4527
|
+
"gap": "Flaw remediation cannot patch this - loading an untrusted model is inherently code execution; the control is artifact provenance + sandboxing."
|
|
4528
|
+
},
|
|
4529
|
+
"NIST-800-53-SI-10": {
|
|
4530
|
+
"covered": true,
|
|
4531
|
+
"adequate": false,
|
|
4532
|
+
"gap": "No input validation distinguishes a benign model artifact from a deserialization payload before MLflow loads it."
|
|
4533
|
+
},
|
|
4534
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
4535
|
+
"covered": false,
|
|
4536
|
+
"adequate": false,
|
|
4537
|
+
"gap": "No framework treats an MLflow model artifact / Recipe as untrusted executable code requiring provenance verification and sandboxed loading."
|
|
4538
|
+
}
|
|
4539
|
+
},
|
|
4540
|
+
"compliance_exposure_score": {
|
|
4541
|
+
"percent_audit_passing_orgs_still_exposed": 82,
|
|
4542
|
+
"basis": "MLflow model registries are shared across teams on trusted-collaborator assumptions; model artifacts are loaded without provenance verification or sandboxing, and no patch exists because the format is inherently executable.",
|
|
4543
|
+
"theater_pattern": "untrusted_model_artifact_as_code"
|
|
4544
|
+
},
|
|
4545
|
+
"ai_discovered_zeroday": false,
|
|
4546
|
+
"ai_discovery_source": "human_researcher",
|
|
4547
|
+
"ai_assist_factor": "none",
|
|
4548
|
+
"new_control_requirements": [
|
|
4549
|
+
{
|
|
4550
|
+
"id": "NEW-CTRL-091",
|
|
4551
|
+
"name": "UNTRUSTED-MODEL-ARTIFACT-LOADING",
|
|
4552
|
+
"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.",
|
|
4553
|
+
"evidence": "https://nvd.nist.gov/vuln/detail/CVE-2025-1550",
|
|
4554
|
+
"gap_closes": [
|
|
4555
|
+
"NIST-800-53-SI-2",
|
|
4556
|
+
"NIST-800-53-SI-10",
|
|
4557
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
4558
|
+
]
|
|
4559
|
+
}
|
|
4560
|
+
],
|
|
4561
|
+
"_auto_imported": false,
|
|
4562
|
+
"_intake_method": "manual-verified-curation"
|
|
4563
|
+
},
|
|
4564
|
+
"CVE-2025-25297": {
|
|
4565
|
+
"name": "Label Studio S3 Storage Endpoint Server-Side Request Forgery",
|
|
4566
|
+
"lesson_date": "2026-05-25",
|
|
4567
|
+
"attack_vector": {
|
|
4568
|
+
"description": "Label Studio's S3 cloud-storage integration accepts a custom endpoint URL without validation, so an attacker points it at internal services or cloud metadata and the server issues the request, leaking data via the responses.",
|
|
4569
|
+
"privileges_required": "low (an account; self-registration is on by default in the data-import case)",
|
|
4570
|
+
"complexity": "low",
|
|
4571
|
+
"ai_factor": "The abused surface is Label Studio, a data-labeling / annotation platform central to ML data pipelines. The lesson: an ML data platform's server-side fetches (import URLs, storage endpoints) are an egress that must validate and allowlist destinations, or they become an SSRF pivot into internal networks and cloud metadata."
|
|
4572
|
+
},
|
|
4573
|
+
"framework_coverage": {
|
|
4574
|
+
"NIST-800-53-SC-7": {
|
|
4575
|
+
"covered": true,
|
|
4576
|
+
"adequate": false,
|
|
4577
|
+
"gap": "Boundary protection does not treat the ML data platform's server-side fetch as an egress that can reach internal services."
|
|
4578
|
+
},
|
|
4579
|
+
"NIST-800-53-SI-10": {
|
|
4580
|
+
"covered": true,
|
|
4581
|
+
"adequate": false,
|
|
4582
|
+
"gap": "No input validation is applied to the user-supplied URL/endpoint before the server fetches it."
|
|
4583
|
+
},
|
|
4584
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
4585
|
+
"covered": false,
|
|
4586
|
+
"adequate": false,
|
|
4587
|
+
"gap": "No framework treats an ML data-pipeline platform's import/storage URL fetch as an egress that must validate and allowlist destinations."
|
|
4588
|
+
}
|
|
4589
|
+
},
|
|
4590
|
+
"compliance_exposure_score": {
|
|
4591
|
+
"percent_audit_passing_orgs_still_exposed": 80,
|
|
4592
|
+
"basis": "ML data-labeling platforms are deployed inside trusted networks and import from arbitrary URLs/storage endpoints by design; their server-side fetches are not destination-validated.",
|
|
4593
|
+
"theater_pattern": "ai_data_pipeline_ssrf_trust"
|
|
4594
|
+
},
|
|
4595
|
+
"ai_discovered_zeroday": false,
|
|
4596
|
+
"ai_discovery_source": "human_researcher",
|
|
4597
|
+
"ai_assist_factor": "none",
|
|
4598
|
+
"new_control_requirements": [
|
|
4599
|
+
{
|
|
4600
|
+
"id": "NEW-CTRL-105",
|
|
4601
|
+
"name": "AI-DATA-PIPELINE-IMPORT-SSRF-PROTECTION",
|
|
4602
|
+
"description": "An AI data-pipeline platform that fetches from caller-supplied URLs or endpoints (data import, cloud-storage endpoint configuration, webhook/annotation sources) must validate and allowlist the destination before issuing the request: reject private, link-local, and cloud-metadata addresses (169.254.169.254), reject file:// and non-HTTP schemes, and resolve+pin the host to prevent DNS-rebinding. Restrict who can configure server-side fetches and disable self-registration if not required. The distinguishing test: configure the import/storage URL to an internal or cloud-metadata address on a staging instance and confirm the server refuses the fetch - a platform that issues the request and returns the response is exploitable for SSRF / internal pivot, regardless of authentication posture.",
|
|
4603
|
+
"evidence": "https://github.com/advisories/GHSA-m238-fmcw-wh58",
|
|
4604
|
+
"gap_closes": [
|
|
4605
|
+
"NIST-800-53-SC-7",
|
|
4606
|
+
"NIST-800-53-SI-10",
|
|
4607
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
4608
|
+
]
|
|
4609
|
+
}
|
|
4610
|
+
],
|
|
4611
|
+
"_auto_imported": false,
|
|
4612
|
+
"_intake_method": "manual-verified-curation"
|
|
4613
|
+
},
|
|
4614
|
+
"CVE-2022-36551": {
|
|
4615
|
+
"name": "Label Studio Data Import Server-Side Request Forgery",
|
|
4616
|
+
"lesson_date": "2026-05-25",
|
|
4617
|
+
"attack_vector": {
|
|
4618
|
+
"description": "Label Studio's Data Import module fetches a user-supplied URL with no destination restriction; with self-registration on by default, any remote attacker supplies internal or file:// URLs and the server reads arbitrary files / reaches internal services.",
|
|
4619
|
+
"privileges_required": "low (an account; self-registration is on by default in the data-import case)",
|
|
4620
|
+
"complexity": "low",
|
|
4621
|
+
"ai_factor": "The abused surface is Label Studio, a data-labeling / annotation platform central to ML data pipelines. The lesson: an ML data platform's server-side fetches (import URLs, storage endpoints) are an egress that must validate and allowlist destinations, or they become an SSRF pivot into internal networks and cloud metadata."
|
|
4622
|
+
},
|
|
4623
|
+
"framework_coverage": {
|
|
4624
|
+
"NIST-800-53-SC-7": {
|
|
4625
|
+
"covered": true,
|
|
4626
|
+
"adequate": false,
|
|
4627
|
+
"gap": "Boundary protection does not treat the ML data platform's server-side fetch as an egress that can reach internal services."
|
|
4628
|
+
},
|
|
4629
|
+
"NIST-800-53-SI-10": {
|
|
4630
|
+
"covered": true,
|
|
4631
|
+
"adequate": false,
|
|
4632
|
+
"gap": "No input validation is applied to the user-supplied URL/endpoint before the server fetches it."
|
|
4633
|
+
},
|
|
4634
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
4635
|
+
"covered": false,
|
|
4636
|
+
"adequate": false,
|
|
4637
|
+
"gap": "No framework treats an ML data-pipeline platform's import/storage URL fetch as an egress that must validate and allowlist destinations."
|
|
4638
|
+
}
|
|
4639
|
+
},
|
|
4640
|
+
"compliance_exposure_score": {
|
|
4641
|
+
"percent_audit_passing_orgs_still_exposed": 78,
|
|
4642
|
+
"basis": "ML data-labeling platforms are deployed inside trusted networks and import from arbitrary URLs/storage endpoints by design; their server-side fetches are not destination-validated.",
|
|
4643
|
+
"theater_pattern": "ai_data_pipeline_ssrf_trust"
|
|
4644
|
+
},
|
|
4645
|
+
"ai_discovered_zeroday": false,
|
|
4646
|
+
"ai_discovery_source": "human_researcher",
|
|
4647
|
+
"ai_assist_factor": "none",
|
|
4648
|
+
"new_control_requirements": [
|
|
4649
|
+
{
|
|
4650
|
+
"id": "NEW-CTRL-105",
|
|
4651
|
+
"name": "AI-DATA-PIPELINE-IMPORT-SSRF-PROTECTION",
|
|
4652
|
+
"description": "An AI data-pipeline platform that fetches from caller-supplied URLs or endpoints (data import, cloud-storage endpoint configuration, webhook/annotation sources) must validate and allowlist the destination before issuing the request: reject private, link-local, and cloud-metadata addresses (169.254.169.254), reject file:// and non-HTTP schemes, and resolve+pin the host to prevent DNS-rebinding. Restrict who can configure server-side fetches and disable self-registration if not required. The distinguishing test: configure the import/storage URL to an internal or cloud-metadata address on a staging instance and confirm the server refuses the fetch - a platform that issues the request and returns the response is exploitable for SSRF / internal pivot, regardless of authentication posture.",
|
|
4653
|
+
"evidence": "https://github.com/advisories/GHSA-pc6f-259w-w3j6",
|
|
4654
|
+
"gap_closes": [
|
|
4655
|
+
"NIST-800-53-SC-7",
|
|
4656
|
+
"NIST-800-53-SI-10",
|
|
4657
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
4658
|
+
]
|
|
4659
|
+
}
|
|
4660
|
+
],
|
|
4661
|
+
"_auto_imported": false,
|
|
4662
|
+
"_intake_method": "manual-verified-curation"
|
|
4663
|
+
},
|
|
4664
|
+
"CVE-2024-37060": {
|
|
4665
|
+
"name": "MLflow Recipe Deserialization Remote Code Execution",
|
|
4666
|
+
"lesson_date": "2026-05-25",
|
|
4667
|
+
"attack_vector": {
|
|
4668
|
+
"description": "A maliciously crafted MLflow Recipe (1.27.0-2.14.1) runs arbitrary code when executed, because it is reconstructed through unsafe deserialization.",
|
|
4669
|
+
"privileges_required": "low-to-none (upload to a registry the victim uses; victim must load/run the artifact - UI:R)",
|
|
4670
|
+
"complexity": "low",
|
|
4671
|
+
"ai_factor": "The abused surface is MLflow, an MLOps / model-registry platform. The lesson: an MLflow model artifact or Recipe is executable code - loading an untrusted one is code execution, so there is no patch, only provenance verification and sandboxed loading. One of the Protect AI / HiddenLayer model-flavor deserialization findings."
|
|
4672
|
+
},
|
|
4673
|
+
"framework_coverage": {
|
|
4674
|
+
"NIST-800-53-SI-2": {
|
|
4675
|
+
"covered": true,
|
|
4676
|
+
"adequate": false,
|
|
4677
|
+
"gap": "Flaw remediation cannot patch this - loading an untrusted model is inherently code execution; the control is artifact provenance + sandboxing."
|
|
4678
|
+
},
|
|
4679
|
+
"NIST-800-53-SI-10": {
|
|
4680
|
+
"covered": true,
|
|
4681
|
+
"adequate": false,
|
|
4682
|
+
"gap": "No input validation distinguishes a benign model artifact from a deserialization payload before MLflow loads it."
|
|
4683
|
+
},
|
|
4684
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
4685
|
+
"covered": false,
|
|
4686
|
+
"adequate": false,
|
|
4687
|
+
"gap": "No framework treats an MLflow model artifact / Recipe as untrusted executable code requiring provenance verification and sandboxed loading."
|
|
4688
|
+
}
|
|
4689
|
+
},
|
|
4690
|
+
"compliance_exposure_score": {
|
|
4691
|
+
"percent_audit_passing_orgs_still_exposed": 82,
|
|
4692
|
+
"basis": "MLflow model registries are shared across teams on trusted-collaborator assumptions; model artifacts are loaded without provenance verification or sandboxing, and no patch exists because the format is inherently executable.",
|
|
4693
|
+
"theater_pattern": "untrusted_model_artifact_as_code"
|
|
4694
|
+
},
|
|
4695
|
+
"ai_discovered_zeroday": false,
|
|
4696
|
+
"ai_discovery_source": "human_researcher",
|
|
4697
|
+
"ai_assist_factor": "none",
|
|
4698
|
+
"new_control_requirements": [
|
|
4699
|
+
{
|
|
4700
|
+
"id": "NEW-CTRL-091",
|
|
4701
|
+
"name": "UNTRUSTED-MODEL-ARTIFACT-LOADING",
|
|
4702
|
+
"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.",
|
|
4703
|
+
"evidence": "https://nvd.nist.gov/vuln/detail/CVE-2025-1550",
|
|
4704
|
+
"gap_closes": [
|
|
4705
|
+
"NIST-800-53-SI-2",
|
|
4706
|
+
"NIST-800-53-SI-10",
|
|
4707
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
4708
|
+
]
|
|
4709
|
+
}
|
|
4710
|
+
],
|
|
4711
|
+
"_auto_imported": false,
|
|
4712
|
+
"_intake_method": "manual-verified-curation"
|
|
4713
|
+
},
|
|
4514
4714
|
"CVE-2025-27520": {
|
|
4515
4715
|
"name": "BentoML serde.py Insecure Deserialization Unauthenticated Remote Code Execution",
|
|
4516
4716
|
"lesson_date": "2026-05-25",
|