@blamejs/exceptd-skills 0.13.102 → 0.13.104
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 +2921 -1344
- package/data/atlas-ttps.json +7 -0
- package/data/attack-techniques.json +14 -1
- package/data/cve-catalog.json +438 -98
- package/data/cwe-catalog.json +4 -0
- package/data/framework-control-gaps.json +43 -6
- package/data/zeroday-lessons.json +200 -32
- package/manifest.json +44 -44
- package/package.json +2 -2
- package/sbom.cdx.json +25 -25
|
@@ -50,6 +50,8 @@
|
|
|
50
50
|
"CVE-2024-1561",
|
|
51
51
|
"CVE-2024-21575",
|
|
52
52
|
"CVE-2024-21576",
|
|
53
|
+
"CVE-2024-24590",
|
|
54
|
+
"CVE-2024-24591",
|
|
53
55
|
"CVE-2024-27132",
|
|
54
56
|
"CVE-2024-37032",
|
|
55
57
|
"CVE-2024-39722",
|
|
@@ -67,6 +69,7 @@
|
|
|
67
69
|
"CVE-2025-30202",
|
|
68
70
|
"CVE-2025-32434",
|
|
69
71
|
"CVE-2025-32444",
|
|
72
|
+
"CVE-2025-3248",
|
|
70
73
|
"CVE-2025-33236",
|
|
71
74
|
"CVE-2025-34291",
|
|
72
75
|
"CVE-2025-49596",
|
|
@@ -90,6 +93,7 @@
|
|
|
90
93
|
"CVE-2026-30617",
|
|
91
94
|
"CVE-2026-30624",
|
|
92
95
|
"CVE-2026-30625",
|
|
96
|
+
"CVE-2026-33017",
|
|
93
97
|
"CVE-2026-34159",
|
|
94
98
|
"CVE-2026-40933",
|
|
95
99
|
"CVE-2026-45829"
|
|
@@ -1264,11 +1268,15 @@
|
|
|
1264
1268
|
"evidence_cves": [
|
|
1265
1269
|
"CVE-2023-43472",
|
|
1266
1270
|
"CVE-2024-12366",
|
|
1271
|
+
"CVE-2024-24590",
|
|
1272
|
+
"CVE-2024-24591",
|
|
1267
1273
|
"CVE-2024-5565",
|
|
1268
1274
|
"CVE-2025-0133",
|
|
1269
1275
|
"CVE-2025-1094",
|
|
1276
|
+
"CVE-2025-3248",
|
|
1270
1277
|
"CVE-2025-6965",
|
|
1271
|
-
"CVE-2026-30623"
|
|
1278
|
+
"CVE-2026-30623",
|
|
1279
|
+
"CVE-2026-33017"
|
|
1272
1280
|
],
|
|
1273
1281
|
"atlas_refs": [
|
|
1274
1282
|
"AML.T0051",
|
|
@@ -1637,7 +1645,6 @@
|
|
|
1637
1645
|
"CVE-2026-31431",
|
|
1638
1646
|
"CVE-2026-31635",
|
|
1639
1647
|
"CVE-2026-32201",
|
|
1640
|
-
"CVE-2026-33017",
|
|
1641
1648
|
"CVE-2026-33634",
|
|
1642
1649
|
"CVE-2026-34159",
|
|
1643
1650
|
"CVE-2026-34197",
|
|
@@ -2095,11 +2102,15 @@
|
|
|
2095
2102
|
"evidence_cves": [
|
|
2096
2103
|
"BUG-2026-NIGHTMARE-ECLIPSE-GREENPLASMA",
|
|
2097
2104
|
"CVE-2024-12366",
|
|
2105
|
+
"CVE-2024-24590",
|
|
2106
|
+
"CVE-2024-24591",
|
|
2098
2107
|
"CVE-2024-3154",
|
|
2099
2108
|
"CVE-2024-5565",
|
|
2109
|
+
"CVE-2025-3248",
|
|
2100
2110
|
"CVE-2025-49844",
|
|
2101
2111
|
"CVE-2025-53773",
|
|
2102
|
-
"CVE-2026-30615"
|
|
2112
|
+
"CVE-2026-30615",
|
|
2113
|
+
"CVE-2026-33017"
|
|
2103
2114
|
],
|
|
2104
2115
|
"atlas_refs": [
|
|
2105
2116
|
"AML.T0010"
|
|
@@ -2325,6 +2336,8 @@
|
|
|
2325
2336
|
"CVE-2024-12366",
|
|
2326
2337
|
"CVE-2024-13059",
|
|
2327
2338
|
"CVE-2024-21513",
|
|
2339
|
+
"CVE-2024-24590",
|
|
2340
|
+
"CVE-2024-24591",
|
|
2328
2341
|
"CVE-2024-27132",
|
|
2329
2342
|
"CVE-2024-37032",
|
|
2330
2343
|
"CVE-2024-39722",
|
|
@@ -2730,7 +2743,6 @@
|
|
|
2730
2743
|
"CVE-2026-31635",
|
|
2731
2744
|
"CVE-2026-32201",
|
|
2732
2745
|
"CVE-2026-32202",
|
|
2733
|
-
"CVE-2026-33017",
|
|
2734
2746
|
"CVE-2026-33634",
|
|
2735
2747
|
"CVE-2026-33825",
|
|
2736
2748
|
"CVE-2026-34159",
|
|
@@ -2789,8 +2801,10 @@
|
|
|
2789
2801
|
"CVE-2024-12366",
|
|
2790
2802
|
"CVE-2024-5565",
|
|
2791
2803
|
"CVE-2025-11837",
|
|
2804
|
+
"CVE-2025-3248",
|
|
2792
2805
|
"CVE-2026-22778",
|
|
2793
2806
|
"CVE-2026-32202",
|
|
2807
|
+
"CVE-2026-33017",
|
|
2794
2808
|
"CVE-2026-33825"
|
|
2795
2809
|
],
|
|
2796
2810
|
"atlas_refs": [
|
|
@@ -2824,6 +2838,8 @@
|
|
|
2824
2838
|
"status": "open",
|
|
2825
2839
|
"opened_date": "2026-05-17",
|
|
2826
2840
|
"evidence_cves": [
|
|
2841
|
+
"CVE-2024-24590",
|
|
2842
|
+
"CVE-2024-24591",
|
|
2827
2843
|
"CVE-2024-3094",
|
|
2828
2844
|
"MAL-2026-SHAI-HULUD-OSS"
|
|
2829
2845
|
],
|
|
@@ -5026,6 +5042,8 @@
|
|
|
5026
5042
|
"CVE-2024-21575",
|
|
5027
5043
|
"CVE-2024-21576",
|
|
5028
5044
|
"CVE-2024-21762",
|
|
5045
|
+
"CVE-2024-24590",
|
|
5046
|
+
"CVE-2024-24591",
|
|
5029
5047
|
"CVE-2024-27132",
|
|
5030
5048
|
"CVE-2024-37032",
|
|
5031
5049
|
"CVE-2024-39722",
|
|
@@ -5043,6 +5061,7 @@
|
|
|
5043
5061
|
"CVE-2025-30202",
|
|
5044
5062
|
"CVE-2025-32434",
|
|
5045
5063
|
"CVE-2025-32444",
|
|
5064
|
+
"CVE-2025-3248",
|
|
5046
5065
|
"CVE-2025-33236",
|
|
5047
5066
|
"CVE-2025-34291",
|
|
5048
5067
|
"CVE-2025-49596",
|
|
@@ -5069,6 +5088,7 @@
|
|
|
5069
5088
|
"CVE-2026-30617",
|
|
5070
5089
|
"CVE-2026-30624",
|
|
5071
5090
|
"CVE-2026-30625",
|
|
5091
|
+
"CVE-2026-33017",
|
|
5072
5092
|
"CVE-2026-34159",
|
|
5073
5093
|
"CVE-2026-34926",
|
|
5074
5094
|
"CVE-2026-40933",
|
|
@@ -5114,6 +5134,8 @@
|
|
|
5114
5134
|
"opened_date": "2026-05-15",
|
|
5115
5135
|
"evidence_cves": [
|
|
5116
5136
|
"CVE-2024-1709",
|
|
5137
|
+
"CVE-2025-3248",
|
|
5138
|
+
"CVE-2026-33017",
|
|
5117
5139
|
"CVE-2026-39987",
|
|
5118
5140
|
"CVE-2026-7482"
|
|
5119
5141
|
],
|
|
@@ -5363,7 +5385,6 @@
|
|
|
5363
5385
|
"CVE-2026-24858",
|
|
5364
5386
|
"CVE-2026-25108",
|
|
5365
5387
|
"CVE-2026-32201",
|
|
5366
|
-
"CVE-2026-33017",
|
|
5367
5388
|
"CVE-2026-33634",
|
|
5368
5389
|
"CVE-2026-33825",
|
|
5369
5390
|
"CVE-2026-34197",
|
|
@@ -5406,6 +5427,8 @@
|
|
|
5406
5427
|
"status": "open",
|
|
5407
5428
|
"opened_date": "2026-05-15",
|
|
5408
5429
|
"evidence_cves": [
|
|
5430
|
+
"CVE-2025-3248",
|
|
5431
|
+
"CVE-2026-33017",
|
|
5409
5432
|
"CVE-2026-6973"
|
|
5410
5433
|
],
|
|
5411
5434
|
"atlas_refs": [],
|
|
@@ -5579,6 +5602,8 @@
|
|
|
5579
5602
|
"CVE-2024-21575",
|
|
5580
5603
|
"CVE-2024-21576",
|
|
5581
5604
|
"CVE-2024-21762",
|
|
5605
|
+
"CVE-2024-24590",
|
|
5606
|
+
"CVE-2024-24591",
|
|
5582
5607
|
"CVE-2024-27132",
|
|
5583
5608
|
"CVE-2024-37032",
|
|
5584
5609
|
"CVE-2024-39722",
|
|
@@ -5594,6 +5619,7 @@
|
|
|
5594
5619
|
"CVE-2025-30202",
|
|
5595
5620
|
"CVE-2025-32434",
|
|
5596
5621
|
"CVE-2025-32444",
|
|
5622
|
+
"CVE-2025-3248",
|
|
5597
5623
|
"CVE-2025-33236",
|
|
5598
5624
|
"CVE-2025-34291",
|
|
5599
5625
|
"CVE-2025-49596",
|
|
@@ -5614,6 +5640,7 @@
|
|
|
5614
5640
|
"CVE-2026-30617",
|
|
5615
5641
|
"CVE-2026-30624",
|
|
5616
5642
|
"CVE-2026-30625",
|
|
5643
|
+
"CVE-2026-33017",
|
|
5617
5644
|
"CVE-2026-34159",
|
|
5618
5645
|
"CVE-2026-34926",
|
|
5619
5646
|
"CVE-2026-40933",
|
|
@@ -5673,6 +5700,8 @@
|
|
|
5673
5700
|
"CVE-2024-21575",
|
|
5674
5701
|
"CVE-2024-21576",
|
|
5675
5702
|
"CVE-2024-21762",
|
|
5703
|
+
"CVE-2024-24590",
|
|
5704
|
+
"CVE-2024-24591",
|
|
5676
5705
|
"CVE-2024-27132",
|
|
5677
5706
|
"CVE-2024-37032",
|
|
5678
5707
|
"CVE-2024-39722",
|
|
@@ -5690,6 +5719,7 @@
|
|
|
5690
5719
|
"CVE-2025-30202",
|
|
5691
5720
|
"CVE-2025-32434",
|
|
5692
5721
|
"CVE-2025-32444",
|
|
5722
|
+
"CVE-2025-3248",
|
|
5693
5723
|
"CVE-2025-33236",
|
|
5694
5724
|
"CVE-2025-34291",
|
|
5695
5725
|
"CVE-2025-49596",
|
|
@@ -5714,6 +5744,7 @@
|
|
|
5714
5744
|
"CVE-2026-30617",
|
|
5715
5745
|
"CVE-2026-30624",
|
|
5716
5746
|
"CVE-2026-30625",
|
|
5747
|
+
"CVE-2026-33017",
|
|
5717
5748
|
"CVE-2026-34159",
|
|
5718
5749
|
"CVE-2026-34926",
|
|
5719
5750
|
"CVE-2026-40933",
|
|
@@ -5788,6 +5819,8 @@
|
|
|
5788
5819
|
"status": "open",
|
|
5789
5820
|
"opened_date": "2026-05-17",
|
|
5790
5821
|
"evidence_cves": [
|
|
5822
|
+
"CVE-2024-24590",
|
|
5823
|
+
"CVE-2024-24591",
|
|
5791
5824
|
"CVE-2024-3154",
|
|
5792
5825
|
"MAL-2026-NODE-IPC-STEALER",
|
|
5793
5826
|
"MAL-2026-RUBYGEMS-BUFFERZONECORP-SLEEPER",
|
|
@@ -5926,9 +5959,11 @@
|
|
|
5926
5959
|
"evidence_cves": [
|
|
5927
5960
|
"CVE-2020-10148",
|
|
5928
5961
|
"CVE-2023-48022",
|
|
5962
|
+
"CVE-2025-3248",
|
|
5929
5963
|
"CVE-2025-55241",
|
|
5930
5964
|
"CVE-2026-24206",
|
|
5931
|
-
"CVE-2026-24207"
|
|
5965
|
+
"CVE-2026-24207",
|
|
5966
|
+
"CVE-2026-33017"
|
|
5932
5967
|
],
|
|
5933
5968
|
"atlas_refs": [],
|
|
5934
5969
|
"attack_refs": [
|
|
@@ -6001,12 +6036,14 @@
|
|
|
6001
6036
|
"CVE-2024-1709",
|
|
6002
6037
|
"CVE-2024-4889",
|
|
6003
6038
|
"CVE-2024-6587",
|
|
6039
|
+
"CVE-2025-3248",
|
|
6004
6040
|
"CVE-2025-64513",
|
|
6005
6041
|
"CVE-2025-67818",
|
|
6006
6042
|
"CVE-2026-20182",
|
|
6007
6043
|
"CVE-2026-24206",
|
|
6008
6044
|
"CVE-2026-24207",
|
|
6009
6045
|
"CVE-2026-26190",
|
|
6046
|
+
"CVE-2026-33017",
|
|
6010
6047
|
"CVE-2026-45829"
|
|
6011
6048
|
],
|
|
6012
6049
|
"atlas_refs": [],
|
|
@@ -4311,6 +4311,206 @@
|
|
|
4311
4311
|
"_auto_imported": false,
|
|
4312
4312
|
"_intake_method": "manual-verified-curation"
|
|
4313
4313
|
},
|
|
4314
|
+
"CVE-2025-3248": {
|
|
4315
|
+
"name": "Langflow /api/v1/validate/code Unauthenticated Code Injection (CISA KEV)",
|
|
4316
|
+
"lesson_date": "2026-05-25",
|
|
4317
|
+
"attack_vector": {
|
|
4318
|
+
"description": "Langflow before 1.3.0 runs attacker-supplied Python submitted to the unauthenticated /api/v1/validate/code endpoint, so a single crafted request gives remote code execution; CISA KEV-listed (actively exploited).",
|
|
4319
|
+
"privileges_required": "none (unauthenticated, single request)",
|
|
4320
|
+
"complexity": "low",
|
|
4321
|
+
"ai_factor": "The abused surface is a widely deployed visual LLM app/agent builder. The lesson: an LLM app builder's flow endpoints are code-execution surfaces, so every one must authenticate and sandbox - and the fix must cover the whole class of endpoints, not the single route that was reported (the Langflow pattern recurred on a new endpoint after the first KEV-listed fix)."
|
|
4322
|
+
},
|
|
4323
|
+
"framework_coverage": {
|
|
4324
|
+
"NIST-800-53-AC-3": {
|
|
4325
|
+
"covered": true,
|
|
4326
|
+
"adequate": false,
|
|
4327
|
+
"gap": "Access enforcement is absent on a code-execution endpoint - the validate-code path is reachable without authentication."
|
|
4328
|
+
},
|
|
4329
|
+
"NIST-800-53-SI-3": {
|
|
4330
|
+
"covered": true,
|
|
4331
|
+
"adequate": false,
|
|
4332
|
+
"gap": "Malicious-code protection does not treat the LLM app builder's validate-code endpoint as an attacker-reachable execution channel."
|
|
4333
|
+
},
|
|
4334
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
4335
|
+
"covered": false,
|
|
4336
|
+
"adequate": false,
|
|
4337
|
+
"gap": "No framework treats a visual LLM app builder's code endpoints as privileged execution surfaces that must authenticate and sandbox."
|
|
4338
|
+
}
|
|
4339
|
+
},
|
|
4340
|
+
"compliance_exposure_score": {
|
|
4341
|
+
"percent_audit_passing_orgs_still_exposed": 88,
|
|
4342
|
+
"basis": "LLM app builders are stood up for rapid prototyping on trusted-network assumptions and exposed without authentication; their flow endpoints are not treated as code-execution surfaces.",
|
|
4343
|
+
"theater_pattern": "ai_app_builder_unauth_exec"
|
|
4344
|
+
},
|
|
4345
|
+
"ai_discovered_zeroday": false,
|
|
4346
|
+
"ai_discovery_source": "human_researcher",
|
|
4347
|
+
"ai_assist_factor": "none",
|
|
4348
|
+
"new_control_requirements": [
|
|
4349
|
+
{
|
|
4350
|
+
"id": "NEW-CTRL-103",
|
|
4351
|
+
"name": "AI-APP-BUILDER-EXECUTION-ENDPOINT-AUTH-AND-SANDBOX",
|
|
4352
|
+
"description": "A visual LLM app/agent builder (Langflow, Flowise, and similar) must authenticate every endpoint that can reach a code-execution path - validate-code, flow-build, flow-run, public-flow endpoints - and must never run flow-supplied or request-supplied code through a compile-and-run / dynamic-evaluation path with host privileges. Place the builder behind authenticated access control, never expose it to untrusted networks, and sandbox any code the platform executes on a user's behalf (no filesystem/network/process access beyond the flow's intent). The distinguishing test: send an unauthenticated request to each flow validate/build/run endpoint on a staging instance with a payload that attempts a non-flow action (a shell or network call) and confirm it is refused before any code runs - paper 'AI platform' policies that leave a public endpoint wired to a code-execution sink still permit unauthenticated RCE.",
|
|
4353
|
+
"evidence": "https://www.vulncheck.com/blog/langflow-rce",
|
|
4354
|
+
"gap_closes": [
|
|
4355
|
+
"NIST-800-53-AC-3",
|
|
4356
|
+
"NIST-800-53-SI-3",
|
|
4357
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
4358
|
+
]
|
|
4359
|
+
}
|
|
4360
|
+
],
|
|
4361
|
+
"_auto_imported": false,
|
|
4362
|
+
"_intake_method": "manual-verified-curation"
|
|
4363
|
+
},
|
|
4364
|
+
"CVE-2024-24590": {
|
|
4365
|
+
"name": "ClearML Client SDK Artifact Deserialization Remote Code Execution",
|
|
4366
|
+
"lesson_date": "2026-05-25",
|
|
4367
|
+
"attack_vector": {
|
|
4368
|
+
"description": "ClearML's client SDK reconstructs stored experiment artifacts through an unsafe object-deserialization routine on retrieval, so a maliciously uploaded artifact runs arbitrary code on the retrieving user's system.",
|
|
4369
|
+
"privileges_required": "low-to-none (upload access to a shared project; victim must retrieve the artifact - UI:R)",
|
|
4370
|
+
"complexity": "low",
|
|
4371
|
+
"ai_factor": "The abused surface is the MLOps / experiment-tracking layer that moves artifacts and datasets between data scientists. The lesson: an MLOps platform is a supply-chain channel - uploaded artifacts are untrusted code/file payloads and must never be auto-deserialized or extracted without containment."
|
|
4372
|
+
},
|
|
4373
|
+
"framework_coverage": {
|
|
4374
|
+
"NIST-800-53-SI-10": {
|
|
4375
|
+
"covered": true,
|
|
4376
|
+
"adequate": false,
|
|
4377
|
+
"gap": "No input validation is applied to an uploaded artifact before the MLOps SDK deserializes it."
|
|
4378
|
+
},
|
|
4379
|
+
"NIST-800-53-SR-3": {
|
|
4380
|
+
"covered": true,
|
|
4381
|
+
"adequate": false,
|
|
4382
|
+
"gap": "Supply-chain controls do not treat MLOps experiment artifacts as untrusted third-party content moving between collaborators."
|
|
4383
|
+
},
|
|
4384
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
4385
|
+
"covered": false,
|
|
4386
|
+
"adequate": false,
|
|
4387
|
+
"gap": "No framework treats an MLOps platform's uploaded artifacts as an untrusted code-delivery surface."
|
|
4388
|
+
}
|
|
4389
|
+
},
|
|
4390
|
+
"compliance_exposure_score": {
|
|
4391
|
+
"percent_audit_passing_orgs_still_exposed": 80,
|
|
4392
|
+
"basis": "MLOps platforms are deployed for collaboration on trusted-team assumptions; their artifact/dataset retrieval paths are not treated as untrusted-content boundaries.",
|
|
4393
|
+
"theater_pattern": "mlops_artifact_trust"
|
|
4394
|
+
},
|
|
4395
|
+
"ai_discovered_zeroday": false,
|
|
4396
|
+
"ai_discovery_source": "human_researcher",
|
|
4397
|
+
"ai_assist_factor": "none",
|
|
4398
|
+
"new_control_requirements": [
|
|
4399
|
+
{
|
|
4400
|
+
"id": "NEW-CTRL-104",
|
|
4401
|
+
"name": "MLOPS-EXPERIMENT-ARTIFACT-TRUST-BOUNDARY",
|
|
4402
|
+
"description": "An MLOps / experiment-tracking platform (ClearML, and the class: Weights & Biases, MLflow artifact stores, model registries) must treat every uploaded artifact and dataset as untrusted third-party content, because these platforms move artifacts between collaborators automatically. On retrieval the client SDK must NOT reconstruct artifacts through an unsafe object-deserialization routine (use a safe loader / explicit schema, or sandbox the deserialization), and must constrain dataset extraction to a contained directory (reject absolute and ../ traversal entries). Run the SDK least-privilege and only pull from trusted projects. The distinguishing test: upload an artifact carrying a deserialization-gadget payload and a dataset with a ../ entry to a staging project, retrieve them from a separate client, and confirm neither runs code nor writes outside the cache directory - a 'secured MLOps' posture that still auto-deserializes or extracts uploaded content without containment is exposed.",
|
|
4403
|
+
"evidence": "https://hiddenlayer.com/innovation-hub/not-so-clear-how-mlops-solutions-can-muddy-the-waters-of-your-supply-chain/",
|
|
4404
|
+
"gap_closes": [
|
|
4405
|
+
"NIST-800-53-SI-10",
|
|
4406
|
+
"NIST-800-53-CM-7",
|
|
4407
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
4408
|
+
]
|
|
4409
|
+
}
|
|
4410
|
+
],
|
|
4411
|
+
"_auto_imported": false,
|
|
4412
|
+
"_intake_method": "manual-verified-curation"
|
|
4413
|
+
},
|
|
4414
|
+
"CVE-2024-24591": {
|
|
4415
|
+
"name": "ClearML Client SDK Dataset Path Traversal Arbitrary File Write",
|
|
4416
|
+
"lesson_date": "2026-05-25",
|
|
4417
|
+
"attack_vector": {
|
|
4418
|
+
"description": "ClearML's client SDK writes dataset entries without path containment on retrieval, so a maliciously uploaded dataset with absolute / ../ entries writes files to arbitrary locations on the retrieving user's system (escalating to code execution by overwriting startup/config files).",
|
|
4419
|
+
"privileges_required": "low-to-none (upload access to a shared project; victim must retrieve the artifact - UI:R)",
|
|
4420
|
+
"complexity": "low",
|
|
4421
|
+
"ai_factor": "The abused surface is the MLOps / experiment-tracking layer that moves artifacts and datasets between data scientists. The lesson: an MLOps platform is a supply-chain channel - uploaded artifacts are untrusted code/file payloads and must never be auto-deserialized or extracted without containment."
|
|
4422
|
+
},
|
|
4423
|
+
"framework_coverage": {
|
|
4424
|
+
"NIST-800-53-SI-10": {
|
|
4425
|
+
"covered": true,
|
|
4426
|
+
"adequate": false,
|
|
4427
|
+
"gap": "No path validation is applied to dataset entries before the MLOps SDK extracts them."
|
|
4428
|
+
},
|
|
4429
|
+
"NIST-800-53-CM-7": {
|
|
4430
|
+
"covered": true,
|
|
4431
|
+
"adequate": false,
|
|
4432
|
+
"gap": "Least-functionality is not enforced: dataset extraction writes entries without containing them to the cache directory."
|
|
4433
|
+
},
|
|
4434
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
4435
|
+
"covered": false,
|
|
4436
|
+
"adequate": false,
|
|
4437
|
+
"gap": "No framework treats an MLOps platform's uploaded datasets as an untrusted file-write surface."
|
|
4438
|
+
}
|
|
4439
|
+
},
|
|
4440
|
+
"compliance_exposure_score": {
|
|
4441
|
+
"percent_audit_passing_orgs_still_exposed": 78,
|
|
4442
|
+
"basis": "MLOps platforms are deployed for collaboration on trusted-team assumptions; their artifact/dataset retrieval paths are not treated as untrusted-content boundaries.",
|
|
4443
|
+
"theater_pattern": "mlops_artifact_trust"
|
|
4444
|
+
},
|
|
4445
|
+
"ai_discovered_zeroday": false,
|
|
4446
|
+
"ai_discovery_source": "human_researcher",
|
|
4447
|
+
"ai_assist_factor": "none",
|
|
4448
|
+
"new_control_requirements": [
|
|
4449
|
+
{
|
|
4450
|
+
"id": "NEW-CTRL-104",
|
|
4451
|
+
"name": "MLOPS-EXPERIMENT-ARTIFACT-TRUST-BOUNDARY",
|
|
4452
|
+
"description": "An MLOps / experiment-tracking platform (ClearML, and the class: Weights & Biases, MLflow artifact stores, model registries) must treat every uploaded artifact and dataset as untrusted third-party content, because these platforms move artifacts between collaborators automatically. On retrieval the client SDK must NOT reconstruct artifacts through an unsafe object-deserialization routine (use a safe loader / explicit schema, or sandbox the deserialization), and must constrain dataset extraction to a contained directory (reject absolute and ../ traversal entries). Run the SDK least-privilege and only pull from trusted projects. The distinguishing test: upload an artifact carrying a deserialization-gadget payload and a dataset with a ../ entry to a staging project, retrieve them from a separate client, and confirm neither runs code nor writes outside the cache directory - a 'secured MLOps' posture that still auto-deserializes or extracts uploaded content without containment is exposed.",
|
|
4453
|
+
"evidence": "https://hiddenlayer.com/innovation-hub/not-so-clear-how-mlops-solutions-can-muddy-the-waters-of-your-supply-chain/",
|
|
4454
|
+
"gap_closes": [
|
|
4455
|
+
"NIST-800-53-SI-10",
|
|
4456
|
+
"NIST-800-53-CM-7",
|
|
4457
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
4458
|
+
]
|
|
4459
|
+
}
|
|
4460
|
+
],
|
|
4461
|
+
"_auto_imported": false,
|
|
4462
|
+
"_intake_method": "manual-verified-curation"
|
|
4463
|
+
},
|
|
4464
|
+
"CVE-2026-33017": {
|
|
4465
|
+
"name": "Langflow Public Flow-Build Endpoint Unauthenticated Remote Code Execution",
|
|
4466
|
+
"lesson_date": "2026-05-25",
|
|
4467
|
+
"attack_vector": {
|
|
4468
|
+
"description": "After the CVE-2025-3248 fix, Langflow's public flow execution surface remained exploitable: the unauthenticated /api/v1/build_public_tmp/{flow_id}/flow endpoint runs flow-supplied Python through an unsandboxed dynamic-execution sink, giving remote code execution again; fixed in 1.9.0.",
|
|
4469
|
+
"privileges_required": "none (unauthenticated public endpoint)",
|
|
4470
|
+
"complexity": "low",
|
|
4471
|
+
"ai_factor": "The abused surface is a widely deployed visual LLM app/agent builder. The lesson: an LLM app builder's flow endpoints are code-execution surfaces, so every one must authenticate and sandbox - and the fix must cover the whole class of endpoints, not the single route that was reported (the Langflow pattern recurred on a new endpoint after the first KEV-listed fix)."
|
|
4472
|
+
},
|
|
4473
|
+
"framework_coverage": {
|
|
4474
|
+
"NIST-800-53-AC-3": {
|
|
4475
|
+
"covered": true,
|
|
4476
|
+
"adequate": false,
|
|
4477
|
+
"gap": "A second public flow endpoint reaches a code-execution sink without authentication - the access-control gap recurred on a new route after the first fix."
|
|
4478
|
+
},
|
|
4479
|
+
"NIST-800-53-CM-7": {
|
|
4480
|
+
"covered": true,
|
|
4481
|
+
"adequate": false,
|
|
4482
|
+
"gap": "Least-functionality is not enforced: a public endpoint runs flow-supplied code through a dynamic-execution sink without sandboxing."
|
|
4483
|
+
},
|
|
4484
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
4485
|
+
"covered": false,
|
|
4486
|
+
"adequate": false,
|
|
4487
|
+
"gap": "No framework requires enumerating EVERY flow validate/build/run endpoint of an LLM app builder as an execution surface - so the same class recurred on a new endpoint."
|
|
4488
|
+
}
|
|
4489
|
+
},
|
|
4490
|
+
"compliance_exposure_score": {
|
|
4491
|
+
"percent_audit_passing_orgs_still_exposed": 86,
|
|
4492
|
+
"basis": "LLM app builders are stood up for rapid prototyping on trusted-network assumptions and exposed without authentication; their flow endpoints are not treated as code-execution surfaces.",
|
|
4493
|
+
"theater_pattern": "ai_app_builder_unauth_exec"
|
|
4494
|
+
},
|
|
4495
|
+
"ai_discovered_zeroday": false,
|
|
4496
|
+
"ai_discovery_source": "human_researcher",
|
|
4497
|
+
"ai_assist_factor": "none",
|
|
4498
|
+
"new_control_requirements": [
|
|
4499
|
+
{
|
|
4500
|
+
"id": "NEW-CTRL-103",
|
|
4501
|
+
"name": "AI-APP-BUILDER-EXECUTION-ENDPOINT-AUTH-AND-SANDBOX",
|
|
4502
|
+
"description": "A visual LLM app/agent builder (Langflow, Flowise, and similar) must authenticate every endpoint that can reach a code-execution path - validate-code, flow-build, flow-run, public-flow endpoints - and must never run flow-supplied or request-supplied code through a compile-and-run / dynamic-evaluation path with host privileges. Place the builder behind authenticated access control, never expose it to untrusted networks, and sandbox any code the platform executes on a user's behalf (no filesystem/network/process access beyond the flow's intent). The distinguishing test: send an unauthenticated request to each flow validate/build/run endpoint on a staging instance with a payload that attempts a non-flow action (a shell or network call) and confirm it is refused before any code runs - paper 'AI platform' policies that leave a public endpoint wired to a code-execution sink still permit unauthenticated RCE.",
|
|
4503
|
+
"evidence": "https://github.com/advisories/GHSA-vwmf-pq79-vjvx",
|
|
4504
|
+
"gap_closes": [
|
|
4505
|
+
"NIST-800-53-AC-3",
|
|
4506
|
+
"NIST-800-53-SI-3",
|
|
4507
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
4508
|
+
]
|
|
4509
|
+
}
|
|
4510
|
+
],
|
|
4511
|
+
"_auto_imported": false,
|
|
4512
|
+
"_intake_method": "manual-verified-curation"
|
|
4513
|
+
},
|
|
4314
4514
|
"CVE-2024-12366": {
|
|
4315
4515
|
"name": "PandasAI Prompt Injection to Remote Code Execution",
|
|
4316
4516
|
"lesson_date": "2026-05-25",
|
|
@@ -6601,38 +6801,6 @@
|
|
|
6601
6801
|
"_auto_imported": true,
|
|
6602
6802
|
"_intake_method": "v0.13.17-bulk-cisa-kev-import"
|
|
6603
6803
|
},
|
|
6604
|
-
"CVE-2026-33017": {
|
|
6605
|
-
"name": "Langflow Code Injection Vulnerability",
|
|
6606
|
-
"lesson_date": "2026-05-18",
|
|
6607
|
-
"attack_vector": {
|
|
6608
|
-
"description": "Langflow contains a code injection vulnerability that could allow building public flows without requiring authentication.",
|
|
6609
|
-
"privileges_required": "network attacker (no authentication required)",
|
|
6610
|
-
"complexity": "moderate (bulk-import default)",
|
|
6611
|
-
"ai_factor": "Bulk-imported — AI-discovery provenance not surfaced in KEV. Detection method that surfaces this class: ADVISORIES_SOURCE (12 primary-source feeds) + CISA-KEV poller. Refine when researcher writeup publishes."
|
|
6612
|
-
},
|
|
6613
|
-
"framework_coverage": {
|
|
6614
|
-
"NIST-800-53-SI-2": {
|
|
6615
|
-
"covered": true,
|
|
6616
|
-
"adequate": false,
|
|
6617
|
-
"gap": "30-day SLA inadequate for KEV-listed actively-exploited CVE; KEV due date is the operational clock."
|
|
6618
|
-
},
|
|
6619
|
-
"ISO-27001-2022-A.8.8": {
|
|
6620
|
-
"covered": true,
|
|
6621
|
-
"adequate": false,
|
|
6622
|
-
"gap": "Standard does not differentiate routinely-disclosed CVE from KEV-listed actively-exploited CVE."
|
|
6623
|
-
}
|
|
6624
|
-
},
|
|
6625
|
-
"compliance_exposure_score": {
|
|
6626
|
-
"percent_audit_passing_orgs_still_exposed": 55,
|
|
6627
|
-
"basis": "KEV-listed but not yet ransomware-attributed; exposure concentrated in orgs whose patch SLA defaults to NIST 30 days.",
|
|
6628
|
-
"theater_pattern": "patch_management"
|
|
6629
|
-
},
|
|
6630
|
-
"ai_discovered_zeroday": false,
|
|
6631
|
-
"ai_discovery_source": "unknown",
|
|
6632
|
-
"ai_assist_factor": "none",
|
|
6633
|
-
"_auto_imported": true,
|
|
6634
|
-
"_intake_method": "v0.13.17-bulk-cisa-kev-import"
|
|
6635
|
-
},
|
|
6636
6804
|
"CVE-2026-25592": {
|
|
6637
6805
|
"name": "Microsoft Semantic Kernel SessionsPythonPlugin Path Traversal — Prompt-Injection to Host RCE",
|
|
6638
6806
|
"lesson_date": "2026-05-25",
|