@blamejs/exceptd-skills 0.13.86 → 0.13.88
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 +2067 -0
- package/data/atlas-ttps.json +13 -0
- package/data/attack-techniques.json +15 -0
- package/data/cve-catalog.json +534 -0
- package/data/cwe-catalog.json +6 -0
- package/data/framework-control-gaps.json +40 -0
- package/data/zeroday-lessons.json +250 -0
- package/manifest.json +44 -44
- package/package.json +2 -2
- package/sbom.cdx.json +25 -25
package/data/cwe-catalog.json
CHANGED
|
@@ -94,7 +94,9 @@
|
|
|
94
94
|
"CVE-2021-43798",
|
|
95
95
|
"CVE-2023-38950",
|
|
96
96
|
"CVE-2023-43472",
|
|
97
|
+
"CVE-2023-51449",
|
|
97
98
|
"CVE-2024-0769",
|
|
99
|
+
"CVE-2024-1561",
|
|
98
100
|
"CVE-2024-1708",
|
|
99
101
|
"CVE-2024-37032",
|
|
100
102
|
"CVE-2024-39722",
|
|
@@ -1308,6 +1310,9 @@
|
|
|
1308
1310
|
"evidence_cves": [
|
|
1309
1311
|
"CVE-2022-1471",
|
|
1310
1312
|
"CVE-2023-21529",
|
|
1313
|
+
"CVE-2024-11392",
|
|
1314
|
+
"CVE-2024-11393",
|
|
1315
|
+
"CVE-2024-11394",
|
|
1311
1316
|
"CVE-2024-50050",
|
|
1312
1317
|
"CVE-2024-8069",
|
|
1313
1318
|
"CVE-2025-10035",
|
|
@@ -1834,6 +1839,7 @@
|
|
|
1834
1839
|
"CVE-2021-39935",
|
|
1835
1840
|
"CVE-2023-43654",
|
|
1836
1841
|
"CVE-2023-48022",
|
|
1842
|
+
"CVE-2023-51449",
|
|
1837
1843
|
"CVE-2025-61884"
|
|
1838
1844
|
],
|
|
1839
1845
|
"framework_controls_partially_addressing": [
|
|
@@ -37,7 +37,12 @@
|
|
|
37
37
|
"CVE-2022-1471",
|
|
38
38
|
"CVE-2023-43654",
|
|
39
39
|
"CVE-2023-48022",
|
|
40
|
+
"CVE-2023-51449",
|
|
40
41
|
"CVE-2024-0132",
|
|
42
|
+
"CVE-2024-11392",
|
|
43
|
+
"CVE-2024-11393",
|
|
44
|
+
"CVE-2024-11394",
|
|
45
|
+
"CVE-2024-1561",
|
|
41
46
|
"CVE-2024-37032",
|
|
42
47
|
"CVE-2024-39722",
|
|
43
48
|
"CVE-2024-42478",
|
|
@@ -1367,10 +1372,15 @@
|
|
|
1367
1372
|
"CVE-2023-43000",
|
|
1368
1373
|
"CVE-2023-43654",
|
|
1369
1374
|
"CVE-2023-50224",
|
|
1375
|
+
"CVE-2023-51449",
|
|
1370
1376
|
"CVE-2023-52163",
|
|
1371
1377
|
"CVE-2024-0769",
|
|
1372
1378
|
"CVE-2024-11182",
|
|
1379
|
+
"CVE-2024-11392",
|
|
1380
|
+
"CVE-2024-11393",
|
|
1381
|
+
"CVE-2024-11394",
|
|
1373
1382
|
"CVE-2024-12987",
|
|
1383
|
+
"CVE-2024-1561",
|
|
1374
1384
|
"CVE-2024-1708",
|
|
1375
1385
|
"CVE-2024-21762",
|
|
1376
1386
|
"CVE-2024-27199",
|
|
@@ -1778,7 +1788,12 @@
|
|
|
1778
1788
|
"CVE-2022-1471",
|
|
1779
1789
|
"CVE-2023-43654",
|
|
1780
1790
|
"CVE-2023-48022",
|
|
1791
|
+
"CVE-2023-51449",
|
|
1781
1792
|
"CVE-2024-0132",
|
|
1793
|
+
"CVE-2024-11392",
|
|
1794
|
+
"CVE-2024-11393",
|
|
1795
|
+
"CVE-2024-11394",
|
|
1796
|
+
"CVE-2024-1561",
|
|
1782
1797
|
"CVE-2024-37032",
|
|
1783
1798
|
"CVE-2024-39722",
|
|
1784
1799
|
"CVE-2024-42478",
|
|
@@ -2145,7 +2160,9 @@
|
|
|
2145
2160
|
"opened_date": "2026-05-01",
|
|
2146
2161
|
"evidence_cves": [
|
|
2147
2162
|
"CVE-2023-48022",
|
|
2163
|
+
"CVE-2023-51449",
|
|
2148
2164
|
"CVE-2024-0132",
|
|
2165
|
+
"CVE-2024-1561",
|
|
2149
2166
|
"CVE-2024-40635",
|
|
2150
2167
|
"CVE-2024-42478",
|
|
2151
2168
|
"CVE-2024-42479",
|
|
@@ -2219,6 +2236,9 @@
|
|
|
2219
2236
|
"status": "open",
|
|
2220
2237
|
"opened_date": "2026-05-13",
|
|
2221
2238
|
"evidence_cves": [
|
|
2239
|
+
"CVE-2024-11392",
|
|
2240
|
+
"CVE-2024-11393",
|
|
2241
|
+
"CVE-2024-11394",
|
|
2222
2242
|
"CVE-2024-37032",
|
|
2223
2243
|
"CVE-2024-39722",
|
|
2224
2244
|
"CVE-2024-50050",
|
|
@@ -2368,11 +2388,16 @@
|
|
|
2368
2388
|
"CVE-2023-43000",
|
|
2369
2389
|
"CVE-2023-43654",
|
|
2370
2390
|
"CVE-2023-50224",
|
|
2391
|
+
"CVE-2023-51449",
|
|
2371
2392
|
"CVE-2023-52163",
|
|
2372
2393
|
"CVE-2024-0132",
|
|
2373
2394
|
"CVE-2024-0769",
|
|
2374
2395
|
"CVE-2024-11182",
|
|
2396
|
+
"CVE-2024-11392",
|
|
2397
|
+
"CVE-2024-11393",
|
|
2398
|
+
"CVE-2024-11394",
|
|
2375
2399
|
"CVE-2024-12987",
|
|
2400
|
+
"CVE-2024-1561",
|
|
2376
2401
|
"CVE-2024-1708",
|
|
2377
2402
|
"CVE-2024-21762",
|
|
2378
2403
|
"CVE-2024-27199",
|
|
@@ -4856,7 +4881,12 @@
|
|
|
4856
4881
|
"CVE-2022-1471",
|
|
4857
4882
|
"CVE-2023-43654",
|
|
4858
4883
|
"CVE-2023-48022",
|
|
4884
|
+
"CVE-2023-51449",
|
|
4859
4885
|
"CVE-2024-0132",
|
|
4886
|
+
"CVE-2024-11392",
|
|
4887
|
+
"CVE-2024-11393",
|
|
4888
|
+
"CVE-2024-11394",
|
|
4889
|
+
"CVE-2024-1561",
|
|
4860
4890
|
"CVE-2024-21762",
|
|
4861
4891
|
"CVE-2024-37032",
|
|
4862
4892
|
"CVE-2024-39722",
|
|
@@ -5381,7 +5411,12 @@
|
|
|
5381
5411
|
"status": "open",
|
|
5382
5412
|
"opened_date": "2026-05-17",
|
|
5383
5413
|
"evidence_cves": [
|
|
5414
|
+
"CVE-2023-51449",
|
|
5384
5415
|
"CVE-2024-0132",
|
|
5416
|
+
"CVE-2024-11392",
|
|
5417
|
+
"CVE-2024-11393",
|
|
5418
|
+
"CVE-2024-11394",
|
|
5419
|
+
"CVE-2024-1561",
|
|
5385
5420
|
"CVE-2024-21762",
|
|
5386
5421
|
"CVE-2024-37032",
|
|
5387
5422
|
"CVE-2024-39722",
|
|
@@ -5449,7 +5484,12 @@
|
|
|
5449
5484
|
"CVE-2022-1471",
|
|
5450
5485
|
"CVE-2023-43654",
|
|
5451
5486
|
"CVE-2023-48022",
|
|
5487
|
+
"CVE-2023-51449",
|
|
5452
5488
|
"CVE-2024-0132",
|
|
5489
|
+
"CVE-2024-11392",
|
|
5490
|
+
"CVE-2024-11393",
|
|
5491
|
+
"CVE-2024-11394",
|
|
5492
|
+
"CVE-2024-1561",
|
|
5453
5493
|
"CVE-2024-21762",
|
|
5454
5494
|
"CVE-2024-37032",
|
|
5455
5495
|
"CVE-2024-39722",
|
|
@@ -7433,6 +7433,256 @@
|
|
|
7433
7433
|
"_auto_imported": false,
|
|
7434
7434
|
"_intake_method": "manual-verified-curation"
|
|
7435
7435
|
},
|
|
7436
|
+
"CVE-2024-1561": {
|
|
7437
|
+
"name": "Gradio /component_server Local File Read (Hugging Face Spaces Secret Theft)",
|
|
7438
|
+
"lesson_date": "2026-05-25",
|
|
7439
|
+
"attack_vector": {
|
|
7440
|
+
"description": "Gradio CWE-22 file read via the /component_server method-invocation endpoint: an unauthenticated request to a publicly reachable Gradio app reads arbitrary host files, including the secrets/tokens mounted into Hugging Face Spaces.",
|
|
7441
|
+
"privileges_required": "none (NVD PR:N) — unauthenticated against a public Gradio app",
|
|
7442
|
+
"complexity": "low (NVD AC:L)",
|
|
7443
|
+
"ai_factor": "The abused surface is the ML demo/UI framework behind Hugging Face Spaces and countless public ML demos. The lesson: an ML app framework's file-serving and component routes are access-control surfaces — they must enforce directory containment and not expose arbitrary method invocation, and apps holding secrets must not be reachable by untrusted clients. Horizon3.ai demonstrated mass secret theft from HF Spaces."
|
|
7444
|
+
},
|
|
7445
|
+
"framework_coverage": {
|
|
7446
|
+
"NIST-800-53-SI-2": {
|
|
7447
|
+
"covered": true,
|
|
7448
|
+
"adequate": false,
|
|
7449
|
+
"gap": "Does not track the ML demo/UI framework (Gradio) as managed, network-exposed software."
|
|
7450
|
+
},
|
|
7451
|
+
"NIST-800-53-SC-7": {
|
|
7452
|
+
"covered": true,
|
|
7453
|
+
"adequate": false,
|
|
7454
|
+
"gap": "Does not flag publicly reachable Gradio apps as a file-read / SSRF surface to host secrets."
|
|
7455
|
+
},
|
|
7456
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
7457
|
+
"covered": false,
|
|
7458
|
+
"adequate": false,
|
|
7459
|
+
"gap": "No framework treats the ML demo framework's file/component routes as an untrusted-input access-control surface."
|
|
7460
|
+
}
|
|
7461
|
+
},
|
|
7462
|
+
"compliance_exposure_score": {
|
|
7463
|
+
"percent_audit_passing_orgs_still_exposed": 72,
|
|
7464
|
+
"basis": "Public ML demos (HF Spaces) are deployed with secrets readable by the app process and the framework treated as trusted; file-serving routes are not audited for containment.",
|
|
7465
|
+
"theater_pattern": "ai_demo_framework_trust"
|
|
7466
|
+
},
|
|
7467
|
+
"ai_discovered_zeroday": false,
|
|
7468
|
+
"ai_discovery_source": "human_researcher",
|
|
7469
|
+
"ai_assist_factor": "none",
|
|
7470
|
+
"new_control_requirements": [
|
|
7471
|
+
{
|
|
7472
|
+
"id": "NEW-CTRL-095",
|
|
7473
|
+
"name": "AI-WEBUI-FILE-ROUTE-CONTAINMENT",
|
|
7474
|
+
"description": "An ML demo/UI framework's file-serving routes must enforce strict directory containment (canonicalize and verify the resolved path stays under the allowed temp directory), must not expose arbitrary component-method invocation, and must not perform server-side fetches of attacker-supplied URLs (SSRF). Upgrade Gradio to 4.13.0 or later, keep secrets out of the app process's readable filesystem, and do not expose secret-bearing Gradio apps to untrusted networks (HF Spaces). The distinguishing test: from an unauthenticated client, request a path-traversal file and an external URL against a staging app and confirm both are refused.",
|
|
7475
|
+
"evidence": "https://github.com/advisories/GHSA-g9cj-cfpp-4g2x",
|
|
7476
|
+
"gap_closes": [
|
|
7477
|
+
"NIST-800-53-SI-2",
|
|
7478
|
+
"NIST-800-53-SC-7",
|
|
7479
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
7480
|
+
]
|
|
7481
|
+
}
|
|
7482
|
+
],
|
|
7483
|
+
"_auto_imported": false,
|
|
7484
|
+
"_intake_method": "manual-verified-curation"
|
|
7485
|
+
},
|
|
7486
|
+
"CVE-2024-11392": {
|
|
7487
|
+
"name": "Hugging Face Transformers MobileViTV2 Deserialization Remote Code Execution",
|
|
7488
|
+
"lesson_date": "2026-05-25",
|
|
7489
|
+
"attack_vector": {
|
|
7490
|
+
"description": "Hugging Face Transformers' MobileViTV2 loader deserializes untrusted configuration files without validation (CWE-502), so loading a malicious MobileViTV2 model/config executes attacker code in the user's process.",
|
|
7491
|
+
"privileges_required": "none beyond getting a user to load an untrusted MobileViTV2 model/config (NVD UI:R)",
|
|
7492
|
+
"complexity": "low (NVD AC:L)",
|
|
7493
|
+
"ai_factor": "The abused surface is a model loader in the foundational ML library (Hugging Face Transformers). The lesson is the same one the Keras CVEs teach at ecosystem scale: a model artifact is executable code at load time, so artifacts must be treated as untrusted (provenance, safe formats, sandboxed loading) — pulling from a model hub is a supply-chain trust decision, not a data fetch."
|
|
7494
|
+
},
|
|
7495
|
+
"framework_coverage": {
|
|
7496
|
+
"NIST-800-53-SI-2": {
|
|
7497
|
+
"covered": true,
|
|
7498
|
+
"adequate": false,
|
|
7499
|
+
"gap": "Does not track the foundational ML library's model loaders as RCE-bearing software."
|
|
7500
|
+
},
|
|
7501
|
+
"NIST-800-53-SI-10": {
|
|
7502
|
+
"covered": true,
|
|
7503
|
+
"adequate": false,
|
|
7504
|
+
"gap": "Input validation is not applied to model artifacts/configs the library deserializes at load time."
|
|
7505
|
+
},
|
|
7506
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
7507
|
+
"covered": false,
|
|
7508
|
+
"adequate": false,
|
|
7509
|
+
"gap": "No framework treats an ML model artifact as untrusted executable input; loading one from an untrusted source through Transformers is RCE."
|
|
7510
|
+
}
|
|
7511
|
+
},
|
|
7512
|
+
"compliance_exposure_score": {
|
|
7513
|
+
"percent_audit_passing_orgs_still_exposed": 73,
|
|
7514
|
+
"basis": "ML pipelines pull models from hubs and treat them as data; the foundational library's loaders are assumed safe despite per-loader deserialization RCEs.",
|
|
7515
|
+
"theater_pattern": "model_artifact_trust"
|
|
7516
|
+
},
|
|
7517
|
+
"ai_discovered_zeroday": false,
|
|
7518
|
+
"ai_discovery_source": "human_researcher",
|
|
7519
|
+
"ai_assist_factor": "none",
|
|
7520
|
+
"new_control_requirements": [
|
|
7521
|
+
{
|
|
7522
|
+
"id": "NEW-CTRL-091",
|
|
7523
|
+
"name": "UNTRUSTED-MODEL-ARTIFACT-LOADING",
|
|
7524
|
+
"description": "Treat ML model artifacts as untrusted code: never load models/configs 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 Hugging Face Transformers to 4.48.0 or later (which fixes the MobileViTV2 loader deserialization, CVE-2024-11392). The control is the same one that closes the Keras model-deserialization CVEs — the class is 'model file equals executable code', not a single loader. The distinguishing test: load an attacker-crafted MobileViTV2 artifact on a sandboxed instance and confirm no code executes.",
|
|
7525
|
+
"evidence": "https://nvd.nist.gov/vuln/detail/CVE-2024-11392",
|
|
7526
|
+
"gap_closes": [
|
|
7527
|
+
"NIST-800-53-SI-2",
|
|
7528
|
+
"NIST-800-53-SI-10",
|
|
7529
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
7530
|
+
]
|
|
7531
|
+
}
|
|
7532
|
+
],
|
|
7533
|
+
"_auto_imported": false,
|
|
7534
|
+
"_intake_method": "manual-verified-curation"
|
|
7535
|
+
},
|
|
7536
|
+
"CVE-2024-11393": {
|
|
7537
|
+
"name": "Hugging Face Transformers MaskFormer Deserialization Remote Code Execution",
|
|
7538
|
+
"lesson_date": "2026-05-25",
|
|
7539
|
+
"attack_vector": {
|
|
7540
|
+
"description": "Hugging Face Transformers' MaskFormer loader deserializes untrusted model files without validation (CWE-502), so loading a malicious MaskFormer model/config executes attacker code in the user's process.",
|
|
7541
|
+
"privileges_required": "none beyond getting a user to load an untrusted MaskFormer model/config (NVD UI:R)",
|
|
7542
|
+
"complexity": "low (NVD AC:L)",
|
|
7543
|
+
"ai_factor": "The abused surface is a model loader in the foundational ML library (Hugging Face Transformers). The lesson is the same one the Keras CVEs teach at ecosystem scale: a model artifact is executable code at load time, so artifacts must be treated as untrusted (provenance, safe formats, sandboxed loading) — pulling from a model hub is a supply-chain trust decision, not a data fetch."
|
|
7544
|
+
},
|
|
7545
|
+
"framework_coverage": {
|
|
7546
|
+
"NIST-800-53-SI-2": {
|
|
7547
|
+
"covered": true,
|
|
7548
|
+
"adequate": false,
|
|
7549
|
+
"gap": "Does not track the foundational ML library's model loaders as RCE-bearing software."
|
|
7550
|
+
},
|
|
7551
|
+
"NIST-800-53-SI-10": {
|
|
7552
|
+
"covered": true,
|
|
7553
|
+
"adequate": false,
|
|
7554
|
+
"gap": "Input validation is not applied to model artifacts/configs the library deserializes at load time."
|
|
7555
|
+
},
|
|
7556
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
7557
|
+
"covered": false,
|
|
7558
|
+
"adequate": false,
|
|
7559
|
+
"gap": "No framework treats an ML model artifact as untrusted executable input; loading one from an untrusted source through Transformers is RCE."
|
|
7560
|
+
}
|
|
7561
|
+
},
|
|
7562
|
+
"compliance_exposure_score": {
|
|
7563
|
+
"percent_audit_passing_orgs_still_exposed": 73,
|
|
7564
|
+
"basis": "ML pipelines pull models from hubs and treat them as data; the foundational library's loaders are assumed safe despite per-loader deserialization RCEs.",
|
|
7565
|
+
"theater_pattern": "model_artifact_trust"
|
|
7566
|
+
},
|
|
7567
|
+
"ai_discovered_zeroday": false,
|
|
7568
|
+
"ai_discovery_source": "human_researcher",
|
|
7569
|
+
"ai_assist_factor": "none",
|
|
7570
|
+
"new_control_requirements": [
|
|
7571
|
+
{
|
|
7572
|
+
"id": "NEW-CTRL-091",
|
|
7573
|
+
"name": "UNTRUSTED-MODEL-ARTIFACT-LOADING",
|
|
7574
|
+
"description": "Treat ML model artifacts as untrusted code: never load models/configs 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 Hugging Face Transformers to 4.48.0 or later (which fixes the MaskFormer loader deserialization, CVE-2024-11393). The control is the same one that closes the Keras model-deserialization CVEs — the class is 'model file equals executable code', not a single loader. The distinguishing test: load an attacker-crafted MaskFormer artifact on a sandboxed instance and confirm no code executes.",
|
|
7575
|
+
"evidence": "https://nvd.nist.gov/vuln/detail/CVE-2024-11393",
|
|
7576
|
+
"gap_closes": [
|
|
7577
|
+
"NIST-800-53-SI-2",
|
|
7578
|
+
"NIST-800-53-SI-10",
|
|
7579
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
7580
|
+
]
|
|
7581
|
+
}
|
|
7582
|
+
],
|
|
7583
|
+
"_auto_imported": false,
|
|
7584
|
+
"_intake_method": "manual-verified-curation"
|
|
7585
|
+
},
|
|
7586
|
+
"CVE-2024-11394": {
|
|
7587
|
+
"name": "Hugging Face Transformers Trax Deserialization Remote Code Execution",
|
|
7588
|
+
"lesson_date": "2026-05-25",
|
|
7589
|
+
"attack_vector": {
|
|
7590
|
+
"description": "Hugging Face Transformers' Trax loader deserializes untrusted model files without validation (CWE-502), so loading a malicious Trax model/config executes attacker code in the user's process.",
|
|
7591
|
+
"privileges_required": "none beyond getting a user to load an untrusted Trax model/config (NVD UI:R)",
|
|
7592
|
+
"complexity": "low (NVD AC:L)",
|
|
7593
|
+
"ai_factor": "The abused surface is a model loader in the foundational ML library (Hugging Face Transformers). The lesson is the same one the Keras CVEs teach at ecosystem scale: a model artifact is executable code at load time, so artifacts must be treated as untrusted (provenance, safe formats, sandboxed loading) — pulling from a model hub is a supply-chain trust decision, not a data fetch."
|
|
7594
|
+
},
|
|
7595
|
+
"framework_coverage": {
|
|
7596
|
+
"NIST-800-53-SI-2": {
|
|
7597
|
+
"covered": true,
|
|
7598
|
+
"adequate": false,
|
|
7599
|
+
"gap": "Does not track the foundational ML library's model loaders as RCE-bearing software."
|
|
7600
|
+
},
|
|
7601
|
+
"NIST-800-53-SI-10": {
|
|
7602
|
+
"covered": true,
|
|
7603
|
+
"adequate": false,
|
|
7604
|
+
"gap": "Input validation is not applied to model artifacts/configs the library deserializes at load time."
|
|
7605
|
+
},
|
|
7606
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
7607
|
+
"covered": false,
|
|
7608
|
+
"adequate": false,
|
|
7609
|
+
"gap": "No framework treats an ML model artifact as untrusted executable input; loading one from an untrusted source through Transformers is RCE."
|
|
7610
|
+
}
|
|
7611
|
+
},
|
|
7612
|
+
"compliance_exposure_score": {
|
|
7613
|
+
"percent_audit_passing_orgs_still_exposed": 73,
|
|
7614
|
+
"basis": "ML pipelines pull models from hubs and treat them as data; the foundational library's loaders are assumed safe despite per-loader deserialization RCEs.",
|
|
7615
|
+
"theater_pattern": "model_artifact_trust"
|
|
7616
|
+
},
|
|
7617
|
+
"ai_discovered_zeroday": false,
|
|
7618
|
+
"ai_discovery_source": "human_researcher",
|
|
7619
|
+
"ai_assist_factor": "none",
|
|
7620
|
+
"new_control_requirements": [
|
|
7621
|
+
{
|
|
7622
|
+
"id": "NEW-CTRL-091",
|
|
7623
|
+
"name": "UNTRUSTED-MODEL-ARTIFACT-LOADING",
|
|
7624
|
+
"description": "Treat ML model artifacts as untrusted code: never load models/configs 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 Hugging Face Transformers to 4.48.0 or later (which fixes the Trax loader deserialization, CVE-2024-11394). The control is the same one that closes the Keras model-deserialization CVEs — the class is 'model file equals executable code', not a single loader. The distinguishing test: load an attacker-crafted Trax artifact on a sandboxed instance and confirm no code executes.",
|
|
7625
|
+
"evidence": "https://nvd.nist.gov/vuln/detail/CVE-2024-11394",
|
|
7626
|
+
"gap_closes": [
|
|
7627
|
+
"NIST-800-53-SI-2",
|
|
7628
|
+
"NIST-800-53-SI-10",
|
|
7629
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
7630
|
+
]
|
|
7631
|
+
}
|
|
7632
|
+
],
|
|
7633
|
+
"_auto_imported": false,
|
|
7634
|
+
"_intake_method": "manual-verified-curation"
|
|
7635
|
+
},
|
|
7636
|
+
"CVE-2023-51449": {
|
|
7637
|
+
"name": "Gradio /file Route Path Traversal and SSRF Arbitrary File Read",
|
|
7638
|
+
"lesson_date": "2026-05-25",
|
|
7639
|
+
"attack_vector": {
|
|
7640
|
+
"description": "Gradio CWE-22 path traversal + SSRF on the /file route: an unauthenticated request to a publicly reachable Gradio app reads arbitrary host files, including the secrets/tokens mounted into Hugging Face Spaces.",
|
|
7641
|
+
"privileges_required": "none (NVD PR:N) — unauthenticated against a public Gradio app",
|
|
7642
|
+
"complexity": "low (NVD AC:L)",
|
|
7643
|
+
"ai_factor": "The abused surface is the ML demo/UI framework behind Hugging Face Spaces and countless public ML demos. The lesson: an ML app framework's file-serving and component routes are access-control surfaces — they must enforce directory containment and not expose arbitrary method invocation, and apps holding secrets must not be reachable by untrusted clients. Horizon3.ai demonstrated mass secret theft from HF Spaces."
|
|
7644
|
+
},
|
|
7645
|
+
"framework_coverage": {
|
|
7646
|
+
"NIST-800-53-SI-2": {
|
|
7647
|
+
"covered": true,
|
|
7648
|
+
"adequate": false,
|
|
7649
|
+
"gap": "Does not track the ML demo/UI framework (Gradio) as managed, network-exposed software."
|
|
7650
|
+
},
|
|
7651
|
+
"NIST-800-53-SC-7": {
|
|
7652
|
+
"covered": true,
|
|
7653
|
+
"adequate": false,
|
|
7654
|
+
"gap": "Does not flag publicly reachable Gradio apps as a file-read / SSRF surface to host secrets."
|
|
7655
|
+
},
|
|
7656
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
7657
|
+
"covered": false,
|
|
7658
|
+
"adequate": false,
|
|
7659
|
+
"gap": "No framework treats the ML demo framework's file/component routes as an untrusted-input access-control surface."
|
|
7660
|
+
}
|
|
7661
|
+
},
|
|
7662
|
+
"compliance_exposure_score": {
|
|
7663
|
+
"percent_audit_passing_orgs_still_exposed": 70,
|
|
7664
|
+
"basis": "Public ML demos (HF Spaces) are deployed with secrets readable by the app process and the framework treated as trusted; file-serving routes are not audited for containment.",
|
|
7665
|
+
"theater_pattern": "ai_demo_framework_trust"
|
|
7666
|
+
},
|
|
7667
|
+
"ai_discovered_zeroday": false,
|
|
7668
|
+
"ai_discovery_source": "human_researcher",
|
|
7669
|
+
"ai_assist_factor": "none",
|
|
7670
|
+
"new_control_requirements": [
|
|
7671
|
+
{
|
|
7672
|
+
"id": "NEW-CTRL-095",
|
|
7673
|
+
"name": "AI-WEBUI-FILE-ROUTE-CONTAINMENT",
|
|
7674
|
+
"description": "An ML demo/UI framework's file-serving routes must enforce strict directory containment (canonicalize and verify the resolved path stays under the allowed temp directory), must not expose arbitrary component-method invocation, and must not perform server-side fetches of attacker-supplied URLs (SSRF). Upgrade Gradio to 4.11.0 or later, keep secrets out of the app process's readable filesystem, and do not expose secret-bearing Gradio apps to untrusted networks (HF Spaces). The distinguishing test: from an unauthenticated client, request a path-traversal file and an external URL against a staging app and confirm both are refused.",
|
|
7675
|
+
"evidence": "https://github.com/advisories/GHSA-6qm2-wpxq-7qh2",
|
|
7676
|
+
"gap_closes": [
|
|
7677
|
+
"NIST-800-53-SI-2",
|
|
7678
|
+
"NIST-800-53-SC-7",
|
|
7679
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
7680
|
+
]
|
|
7681
|
+
}
|
|
7682
|
+
],
|
|
7683
|
+
"_auto_imported": false,
|
|
7684
|
+
"_intake_method": "manual-verified-curation"
|
|
7685
|
+
},
|
|
7436
7686
|
"CVE-2024-39722": {
|
|
7437
7687
|
"name": "Ollama api/push Path Traversal File-Existence Disclosure",
|
|
7438
7688
|
"lesson_date": "2026-05-25",
|