@blamejs/exceptd-skills 0.13.109 → 0.13.110
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 +4 -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 +954 -0
- package/data/atlas-ttps.json +4 -0
- package/data/attack-techniques.json +6 -1
- package/data/cve-catalog.json +195 -0
- package/data/cwe-catalog.json +3 -1
- package/data/framework-control-gaps.json +18 -0
- package/data/zeroday-lessons.json +100 -0
- package/manifest.json +44 -44
- package/package.json +2 -2
- package/sbom.cdx.json +25 -25
package/data/atlas-ttps.json
CHANGED
|
@@ -160,6 +160,7 @@
|
|
|
160
160
|
"CVE-2025-8747",
|
|
161
161
|
"CVE-2026-22778",
|
|
162
162
|
"CVE-2026-30615",
|
|
163
|
+
"CVE-2026-31229",
|
|
163
164
|
"CVE-2026-39987",
|
|
164
165
|
"CVE-2026-45321",
|
|
165
166
|
"MAL-2024-PYPI-ULTRALYTICS-XMRIG",
|
|
@@ -1296,6 +1297,7 @@
|
|
|
1296
1297
|
"CVE-2025-32434",
|
|
1297
1298
|
"CVE-2025-33236",
|
|
1298
1299
|
"CVE-2025-8747",
|
|
1300
|
+
"CVE-2026-31229",
|
|
1299
1301
|
"MAL-2024-PYPI-ULTRALYTICS-XMRIG"
|
|
1300
1302
|
],
|
|
1301
1303
|
"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.",
|
|
@@ -1771,6 +1773,7 @@
|
|
|
1771
1773
|
"CVE-2026-24214",
|
|
1772
1774
|
"CVE-2026-24215",
|
|
1773
1775
|
"CVE-2026-26190",
|
|
1776
|
+
"CVE-2026-31230",
|
|
1774
1777
|
"CVE-2026-33017",
|
|
1775
1778
|
"CVE-2026-34159",
|
|
1776
1779
|
"CVE-2026-45829"
|
|
@@ -2873,6 +2876,7 @@
|
|
|
2873
2876
|
"CVE-2025-32434",
|
|
2874
2877
|
"CVE-2025-33236",
|
|
2875
2878
|
"CVE-2025-8747",
|
|
2879
|
+
"CVE-2026-31229",
|
|
2876
2880
|
"CVE-2026-45829"
|
|
2877
2881
|
]
|
|
2878
2882
|
},
|
|
@@ -331,6 +331,8 @@
|
|
|
331
331
|
"CVE-2026-30623",
|
|
332
332
|
"CVE-2026-30624",
|
|
333
333
|
"CVE-2026-30625",
|
|
334
|
+
"CVE-2026-31229",
|
|
335
|
+
"CVE-2026-31230",
|
|
334
336
|
"CVE-2026-32202",
|
|
335
337
|
"CVE-2026-33017",
|
|
336
338
|
"CVE-2026-34159",
|
|
@@ -388,6 +390,7 @@
|
|
|
388
390
|
"CVE-2024-5565",
|
|
389
391
|
"CVE-2025-3248",
|
|
390
392
|
"CVE-2025-49844",
|
|
393
|
+
"CVE-2026-31230",
|
|
391
394
|
"CVE-2026-33017",
|
|
392
395
|
"MAL-2026-3083"
|
|
393
396
|
],
|
|
@@ -1162,6 +1165,7 @@
|
|
|
1162
1165
|
"CVE-2025-32434",
|
|
1163
1166
|
"CVE-2025-33236",
|
|
1164
1167
|
"CVE-2025-8747",
|
|
1168
|
+
"CVE-2026-31229",
|
|
1165
1169
|
"CVE-2026-45321",
|
|
1166
1170
|
"MAL-2024-PYPI-ULTRALYTICS-XMRIG",
|
|
1167
1171
|
"MAL-2025-PYPI-COLORAMA-SOLANA-STEALER",
|
|
@@ -4359,7 +4363,8 @@
|
|
|
4359
4363
|
"CVE-2025-1550",
|
|
4360
4364
|
"CVE-2025-32434",
|
|
4361
4365
|
"CVE-2025-33236",
|
|
4362
|
-
"CVE-2025-8747"
|
|
4366
|
+
"CVE-2025-8747",
|
|
4367
|
+
"CVE-2026-31229"
|
|
4363
4368
|
]
|
|
4364
4369
|
},
|
|
4365
4370
|
"T1205": {
|
package/data/cve-catalog.json
CHANGED
|
@@ -17297,6 +17297,201 @@
|
|
|
17297
17297
|
"_intake_method": "manual-verified-curation",
|
|
17298
17298
|
"_kev_short_description": "Label Studio exposes information enabling account impersonation and escalation to Django superadmin (chained with the ORM leak CVE-2023-47117); CWE-200, fixed in 1.8.2."
|
|
17299
17299
|
},
|
|
17300
|
+
"CVE-2026-31229": {
|
|
17301
|
+
"name": "Adversarial Robustness Toolbox torch.load Model Deserialization RCE",
|
|
17302
|
+
"type": "RCE",
|
|
17303
|
+
"cvss_score": 9.8,
|
|
17304
|
+
"cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
|
|
17305
|
+
"cvss_note": "CISA-ADP CVSS v3.1 base 9.8 (CRITICAL); NVD has not yet published its own assessment. ART's Kubeflow model-loading component calls torch.load() WITHOUT weights_only=True, so loading a maliciously crafted model file runs arbitrary code through unsafe object-deserialization (CWE-502).",
|
|
17306
|
+
"cisa_kev": false,
|
|
17307
|
+
"poc_available": true,
|
|
17308
|
+
"poc_description": "Documented in the disclosing advisory; load a crafted PyTorch model through ART's Kubeflow component to run code.",
|
|
17309
|
+
"ai_discovered": false,
|
|
17310
|
+
"ai_discovery_source": "human_researcher",
|
|
17311
|
+
"ai_discovery_notes": "Disclosed via the GitHub Security Advisory / CISA-ADP. The abused surface is the Adversarial Robustness Toolbox (ART), the Trusted-AI / LF AI library used to defend ML models against adversarial attacks - a defensive-ML tool with an offensive flaw.",
|
|
17312
|
+
"ai_assisted_weaponization": false,
|
|
17313
|
+
"ai_assisted_notes": "No AI-assisted weaponization; the flaw is unsafe model deserialization in a defensive-ML library.",
|
|
17314
|
+
"active_exploitation": "none",
|
|
17315
|
+
"active_exploitation_notes": "Advisory disclosure (May 2026) with a documented attack; no confirmed in-the-wild exploitation reported as of curation. No patched version is published (the advisory records 'Patched versions: Unknown'), so exposed usage remains vulnerable.",
|
|
17316
|
+
"affected": "Adversarial Robustness Toolbox (ART) through 1.20.1.",
|
|
17317
|
+
"affected_versions": [
|
|
17318
|
+
"adversarial-robustness-toolbox <= 1.20.1"
|
|
17319
|
+
],
|
|
17320
|
+
"vector": "The Adversarial Robustness Toolbox (ART) - the Trusted-AI library used to defend ML models against adversarial attacks - loads models in its Kubeflow component via torch.load() without the security-restrictive weights_only=True parameter. A maliciously crafted model file therefore runs arbitrary code on load through unsafe object-deserialization (CWE-502) - the same torch.load weights_only gap as CVE-2025-32434, here in the defensive-ML library itself.",
|
|
17321
|
+
"complexity": "low",
|
|
17322
|
+
"complexity_notes": "CISA-ADP AV:N / AC:L / PR:N / UI:N - loading a crafted model runs code.",
|
|
17323
|
+
"patch_available": false,
|
|
17324
|
+
"patch_required_reboot": false,
|
|
17325
|
+
"live_patch_available": false,
|
|
17326
|
+
"live_patch_tools": [],
|
|
17327
|
+
"live_patch_notes": "No patched ART version is published as of curation (the GitHub advisory records 'Patched versions: Unknown'). Mitigation is loading models only from trusted sources, sandboxing model loading, and using weights_only=True / safe formats (see vendor_update_paths).",
|
|
17328
|
+
"vendor_update_paths": [
|
|
17329
|
+
"No fixed ART release is published. Load models only from trusted sources, verify provenance, sandbox model loading, and prefer safe-load (weights_only=True) / safetensors; treat every model file as executable code."
|
|
17330
|
+
],
|
|
17331
|
+
"framework_control_gaps": {
|
|
17332
|
+
"NIST-800-53-SI-2": "Flaw remediation cannot resolve this by patching yet (no fix published); the control is model-artifact provenance + sandboxing.",
|
|
17333
|
+
"NIST-800-53-SI-10": "No input validation distinguishes a benign model from a deserialization payload before ART loads it.",
|
|
17334
|
+
"NIST-800-53-CM-7": "Least-functionality is not enforced: ART deserializes model files through an unsafe loader by default.",
|
|
17335
|
+
"ISO-27001-2022-A.8.28": "Secure-coding expectations do not address loading untrusted model artifacts as host code in an ML security library.",
|
|
17336
|
+
"NIS2-Art21-supply-chain": "Supply-chain-security measures do not treat the defensive-ML library (ART) as a channel that delivers executable model artifacts.",
|
|
17337
|
+
"DORA-Art-9": "ICT protection measures do not model code execution via an ML security library as an ICT-risk event.",
|
|
17338
|
+
"UK-CAF-B4": "System Security objective has no objective for model-artifact provenance / sandboxed loading in ML libraries.",
|
|
17339
|
+
"AU-ISM-1546": "Patch-application control does not address a flaw with no published patch.",
|
|
17340
|
+
"ALL-AI-PIPELINE-INTEGRITY": "No framework treats the adversarial-robustness library's model-loading path as a privileged code-execution surface."
|
|
17341
|
+
},
|
|
17342
|
+
"atlas_refs": [
|
|
17343
|
+
"AML.T0010",
|
|
17344
|
+
"AML.T0011",
|
|
17345
|
+
"AML.T0011.000"
|
|
17346
|
+
],
|
|
17347
|
+
"attack_refs": [
|
|
17348
|
+
"T1204",
|
|
17349
|
+
"T1059",
|
|
17350
|
+
"T1195.002"
|
|
17351
|
+
],
|
|
17352
|
+
"rwep_score": 46,
|
|
17353
|
+
"rwep_factors": {
|
|
17354
|
+
"cisa_kev": 0,
|
|
17355
|
+
"poc_available": 20,
|
|
17356
|
+
"ai_factor": 0,
|
|
17357
|
+
"active_exploitation": 0,
|
|
17358
|
+
"blast_radius": 26,
|
|
17359
|
+
"patch_available": 0,
|
|
17360
|
+
"live_patch_available": 0,
|
|
17361
|
+
"reboot_required": 0
|
|
17362
|
+
},
|
|
17363
|
+
"rwep_notes": "Elevated (RWEP 46, \"patch within 7 days\" band per lib/scoring.js timeline). Not KEV, no confirmed in-the-wild exploitation, and no patched version published so no patch credit (Hard Rule #3). poc_available=20 + blast_radius=26. The defensive-ML library ART itself carries a code-execution flaw - model-as-code.",
|
|
17364
|
+
"epss_score": null,
|
|
17365
|
+
"epss_date": "2026-05-25",
|
|
17366
|
+
"epss_note": "EPSS not pulled for this entry; retrieve via FIRST EPSS API in a future refresh.",
|
|
17367
|
+
"epss_source": "https://api.first.org/data/v1/epss?cve=CVE-2026-31229",
|
|
17368
|
+
"cwe_refs": [
|
|
17369
|
+
"CWE-502"
|
|
17370
|
+
],
|
|
17371
|
+
"iocs": {
|
|
17372
|
+
"behavioral": [
|
|
17373
|
+
"ART loading a PyTorch model whose payload contains a deserialization gadget rather than plain weights.",
|
|
17374
|
+
"The ART process spawning shell, network, or file-system child processes during model loading.",
|
|
17375
|
+
"ART <= 1.20.1 loading PyTorch models from an untrusted source via the Kubeflow component - the exposed precondition."
|
|
17376
|
+
],
|
|
17377
|
+
"_ioc_source_note": "Behavioral signatures anchored to the GitHub Security Advisory / CISA-ADP record for CVE-2026-31229 (CWE-502) and NVD."
|
|
17378
|
+
},
|
|
17379
|
+
"source_verified": "2026-05-25",
|
|
17380
|
+
"verification_sources": [
|
|
17381
|
+
"https://nvd.nist.gov/vuln/detail/CVE-2026-31229",
|
|
17382
|
+
"https://github.com/Trusted-AI/adversarial-robustness-toolbox"
|
|
17383
|
+
],
|
|
17384
|
+
"vendor_advisories": [
|
|
17385
|
+
{
|
|
17386
|
+
"vendor": "NVD",
|
|
17387
|
+
"advisory_id": "CVE-2026-31229",
|
|
17388
|
+
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-31229",
|
|
17389
|
+
"severity": "critical",
|
|
17390
|
+
"published_date": "2026-05-12"
|
|
17391
|
+
}
|
|
17392
|
+
],
|
|
17393
|
+
"last_updated": "2026-05-25",
|
|
17394
|
+
"discovery_attribution_note": "Manually curated from NVD / CISA-ADP (CWE-502; CISA-ADP CVSS v3.1 9.8, NVD assessment pending) + the GitHub Security Advisory. Adversarial Robustness Toolbox (ART) flaw; reuses the untrusted-model-artifact-loading control NEW-CTRL-091 - a model file is executable code, the class shared with Keras / Hugging Face / NeMo / PyTorch / H2O / MLflow.",
|
|
17395
|
+
"_auto_imported": false,
|
|
17396
|
+
"_intake_method": "manual-verified-curation",
|
|
17397
|
+
"_kev_short_description": "ART's Kubeflow model loader calls torch.load() without weights_only=True, so a malicious model file runs code on load (CWE-502); no fix published - treat models as untrusted code."
|
|
17398
|
+
},
|
|
17399
|
+
"CVE-2026-31230": {
|
|
17400
|
+
"name": "Adversarial Robustness Toolbox CLI Argument Dynamic-Evaluation Code Execution",
|
|
17401
|
+
"type": "RCE",
|
|
17402
|
+
"cvss_score": 9.8,
|
|
17403
|
+
"cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
|
|
17404
|
+
"cvss_note": "CISA-ADP CVSS v3.1 base 9.8 (CRITICAL); NVD has not yet published its own assessment. ART's Kubeflow component parses the --clip_values and --input_shape command-line arguments through an unsafe dynamic-evaluation call, so attacker-controlled argument values execute arbitrary Python (CWE-88 argument-delimiter injection / code injection).",
|
|
17405
|
+
"cisa_kev": false,
|
|
17406
|
+
"poc_available": true,
|
|
17407
|
+
"poc_description": "Documented in the disclosing advisory; supply a crafted --clip_values / --input_shape value to ART's Kubeflow CLI to run code.",
|
|
17408
|
+
"ai_discovered": false,
|
|
17409
|
+
"ai_discovery_source": "human_researcher",
|
|
17410
|
+
"ai_discovery_notes": "Disclosed via the GitHub Security Advisory / CISA-ADP. The abused surface is the Adversarial Robustness Toolbox (ART), the Trusted-AI / LF AI library used to defend ML models against adversarial attacks - a defensive-ML tool with an offensive flaw.",
|
|
17411
|
+
"ai_assisted_weaponization": false,
|
|
17412
|
+
"ai_assisted_notes": "No AI-assisted weaponization; the flaw is unsafe dynamic-evaluation of CLI arguments in a defensive-ML library.",
|
|
17413
|
+
"active_exploitation": "none",
|
|
17414
|
+
"active_exploitation_notes": "Advisory disclosure (May 2026) with a documented attack; no confirmed in-the-wild exploitation reported as of curation. No patched version is published (the advisory records 'Patched versions: Unknown'), so exposed usage remains vulnerable.",
|
|
17415
|
+
"affected": "Adversarial Robustness Toolbox (ART) through 1.20.1.",
|
|
17416
|
+
"affected_versions": [
|
|
17417
|
+
"adversarial-robustness-toolbox <= 1.20.1"
|
|
17418
|
+
],
|
|
17419
|
+
"vector": "ART's Kubeflow component parses the --clip_values and --input_shape command-line arguments by passing their string values into an unsafe dynamic-evaluation call rather than a safe literal parser. An attacker who controls those argument values executes arbitrary Python (CWE-88) - the same build-a-command-from-arguments root cause as the LlamaIndex CLI injection, here in the defensive-ML toolkit.",
|
|
17420
|
+
"complexity": "low",
|
|
17421
|
+
"complexity_notes": "CISA-ADP AV:N / AC:L / PR:N / UI:N - controlling the CLI argument value runs code.",
|
|
17422
|
+
"patch_available": false,
|
|
17423
|
+
"patch_required_reboot": false,
|
|
17424
|
+
"live_patch_available": false,
|
|
17425
|
+
"live_patch_tools": [],
|
|
17426
|
+
"live_patch_notes": "No patched ART version is published as of curation (the GitHub advisory records 'Patched versions: Unknown'). Mitigation is never passing untrusted values to the affected CLI arguments and using a safe literal parser (see vendor_update_paths).",
|
|
17427
|
+
"vendor_update_paths": [
|
|
17428
|
+
"No fixed ART release is published. Do not pass untrusted values to ART's --clip_values / --input_shape arguments; the fix is to parse them with a safe literal parser (e.g. ast.literal_eval) rather than a dynamic-evaluation call."
|
|
17429
|
+
],
|
|
17430
|
+
"framework_control_gaps": {
|
|
17431
|
+
"NIST-800-53-SI-2": "Flaw remediation cannot resolve this by patching yet (no fix published); the control is safe argument parsing.",
|
|
17432
|
+
"NIST-800-53-SI-10": "No input validation distinguishes a safe CLI argument value from injected code before ART evaluates it.",
|
|
17433
|
+
"NIST-800-53-CM-7": "Least-functionality is not enforced: ART evaluates CLI argument strings through a dynamic-evaluation call.",
|
|
17434
|
+
"ISO-27001-2022-A.8.28": "Secure-coding expectations do not address dynamic evaluation of CLI argument strings in an ML security library.",
|
|
17435
|
+
"NIS2-Art21-supply-chain": "Supply-chain-security measures do not treat the defensive-ML library (ART) as a channel that executes attacker-influenced arguments.",
|
|
17436
|
+
"DORA-Art-9": "ICT protection measures do not model code execution via an ML security library as an ICT-risk event.",
|
|
17437
|
+
"UK-CAF-B4": "System Security objective has no objective for safe CLI argument parsing in ML libraries.",
|
|
17438
|
+
"AU-ISM-1546": "Patch-application control does not address a flaw with no published patch.",
|
|
17439
|
+
"ALL-AI-PIPELINE-INTEGRITY": "No framework treats the adversarial-robustness library's CLI argument parsing as a privileged code-execution surface."
|
|
17440
|
+
},
|
|
17441
|
+
"atlas_refs": [
|
|
17442
|
+
"AML.T0049"
|
|
17443
|
+
],
|
|
17444
|
+
"attack_refs": [
|
|
17445
|
+
"T1059",
|
|
17446
|
+
"T1059.006"
|
|
17447
|
+
],
|
|
17448
|
+
"rwep_score": 42,
|
|
17449
|
+
"rwep_factors": {
|
|
17450
|
+
"cisa_kev": 0,
|
|
17451
|
+
"poc_available": 20,
|
|
17452
|
+
"ai_factor": 0,
|
|
17453
|
+
"active_exploitation": 0,
|
|
17454
|
+
"blast_radius": 22,
|
|
17455
|
+
"patch_available": 0,
|
|
17456
|
+
"live_patch_available": 0,
|
|
17457
|
+
"reboot_required": 0
|
|
17458
|
+
},
|
|
17459
|
+
"rwep_notes": "Elevated (RWEP 42, \"patch within 7 days\" band per lib/scoring.js timeline). Not KEV, no confirmed in-the-wild exploitation, and no patched version published so no patch credit (Hard Rule #3). poc_available=20 + blast_radius=22. The defensive-ML library ART itself carries a code-execution flaw - unsafe CLI eval.",
|
|
17460
|
+
"epss_score": null,
|
|
17461
|
+
"epss_date": "2026-05-25",
|
|
17462
|
+
"epss_note": "EPSS not pulled for this entry; retrieve via FIRST EPSS API in a future refresh.",
|
|
17463
|
+
"epss_source": "https://api.first.org/data/v1/epss?cve=CVE-2026-31230",
|
|
17464
|
+
"cwe_refs": [
|
|
17465
|
+
"CWE-88"
|
|
17466
|
+
],
|
|
17467
|
+
"iocs": {
|
|
17468
|
+
"behavioral": [
|
|
17469
|
+
"ART invoked with --clip_values / --input_shape values containing Python expressions or code rather than numeric literals.",
|
|
17470
|
+
"The ART process spawning shell, network, or file-system child processes during argument parsing.",
|
|
17471
|
+
"ART <= 1.20.1 invoked with attacker-influenced --clip_values / --input_shape arguments - the exposed precondition."
|
|
17472
|
+
],
|
|
17473
|
+
"_ioc_source_note": "Behavioral signatures anchored to the GitHub Security Advisory / CISA-ADP record for CVE-2026-31230 (CWE-88) and NVD."
|
|
17474
|
+
},
|
|
17475
|
+
"source_verified": "2026-05-25",
|
|
17476
|
+
"verification_sources": [
|
|
17477
|
+
"https://nvd.nist.gov/vuln/detail/CVE-2026-31230",
|
|
17478
|
+
"https://github.com/Trusted-AI/adversarial-robustness-toolbox"
|
|
17479
|
+
],
|
|
17480
|
+
"vendor_advisories": [
|
|
17481
|
+
{
|
|
17482
|
+
"vendor": "NVD",
|
|
17483
|
+
"advisory_id": "CVE-2026-31230",
|
|
17484
|
+
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-31230",
|
|
17485
|
+
"severity": "critical",
|
|
17486
|
+
"published_date": "2026-05-12"
|
|
17487
|
+
}
|
|
17488
|
+
],
|
|
17489
|
+
"last_updated": "2026-05-25",
|
|
17490
|
+
"discovery_attribution_note": "Manually curated from NVD / CISA-ADP (CWE-88; CISA-ADP CVSS v3.1 9.8, NVD assessment pending) + the GitHub Security Advisory. Adversarial Robustness Toolbox (ART) flaw; reuses the AI-framework CLI input-neutralization control NEW-CTRL-100 - an AI framework's CLI must parse argument values with a safe literal parser, not a dynamic-evaluation call, the class shared with the LlamaIndex CLI entry.",
|
|
17491
|
+
"_auto_imported": false,
|
|
17492
|
+
"_intake_method": "manual-verified-curation",
|
|
17493
|
+
"_kev_short_description": "ART's Kubeflow component passes the --clip_values / --input_shape CLI arguments into an unsafe dynamic-evaluation call, executing arbitrary Python (CWE-88); no fix published - use a safe literal parser."
|
|
17494
|
+
},
|
|
17300
17495
|
"CVE-2026-41091": {
|
|
17301
17496
|
"name": "Microsoft Defender (Malware Protection Engine) Link-Following LPE to SYSTEM",
|
|
17302
17497
|
"type": "LPE",
|
package/data/cwe-catalog.json
CHANGED
|
@@ -299,6 +299,7 @@
|
|
|
299
299
|
"CVE-2016-10033",
|
|
300
300
|
"CVE-2026-24061",
|
|
301
301
|
"CVE-2026-30623",
|
|
302
|
+
"CVE-2026-31230",
|
|
302
303
|
"CVE-2026-39884"
|
|
303
304
|
],
|
|
304
305
|
"framework_controls_partially_addressing": [
|
|
@@ -1363,7 +1364,8 @@
|
|
|
1363
1364
|
"CVE-2025-68664",
|
|
1364
1365
|
"CVE-2025-8747",
|
|
1365
1366
|
"CVE-2026-20131",
|
|
1366
|
-
"CVE-2026-20963"
|
|
1367
|
+
"CVE-2026-20963",
|
|
1368
|
+
"CVE-2026-31229"
|
|
1367
1369
|
],
|
|
1368
1370
|
"framework_controls_partially_addressing": [
|
|
1369
1371
|
"NIST-800-53-SI-10",
|
|
@@ -103,6 +103,8 @@
|
|
|
103
103
|
"CVE-2026-30617",
|
|
104
104
|
"CVE-2026-30624",
|
|
105
105
|
"CVE-2026-30625",
|
|
106
|
+
"CVE-2026-31229",
|
|
107
|
+
"CVE-2026-31230",
|
|
106
108
|
"CVE-2026-33017",
|
|
107
109
|
"CVE-2026-34159",
|
|
108
110
|
"CVE-2026-40933",
|
|
@@ -1293,6 +1295,8 @@
|
|
|
1293
1295
|
"CVE-2025-3248",
|
|
1294
1296
|
"CVE-2025-6965",
|
|
1295
1297
|
"CVE-2026-30623",
|
|
1298
|
+
"CVE-2026-31229",
|
|
1299
|
+
"CVE-2026-31230",
|
|
1296
1300
|
"CVE-2026-33017"
|
|
1297
1301
|
],
|
|
1298
1302
|
"atlas_refs": [
|
|
@@ -2130,6 +2134,8 @@
|
|
|
2130
2134
|
"CVE-2025-49844",
|
|
2131
2135
|
"CVE-2025-53773",
|
|
2132
2136
|
"CVE-2026-30615",
|
|
2137
|
+
"CVE-2026-31229",
|
|
2138
|
+
"CVE-2026-31230",
|
|
2133
2139
|
"CVE-2026-33017"
|
|
2134
2140
|
],
|
|
2135
2141
|
"atlas_refs": [
|
|
@@ -2391,6 +2397,8 @@
|
|
|
2391
2397
|
"CVE-2026-24213",
|
|
2392
2398
|
"CVE-2026-24214",
|
|
2393
2399
|
"CVE-2026-24215",
|
|
2400
|
+
"CVE-2026-31229",
|
|
2401
|
+
"CVE-2026-31230",
|
|
2394
2402
|
"CVE-2026-39884",
|
|
2395
2403
|
"CVE-2026-42208",
|
|
2396
2404
|
"CVE-2026-45829",
|
|
@@ -2772,6 +2780,8 @@
|
|
|
2772
2780
|
"CVE-2026-30617",
|
|
2773
2781
|
"CVE-2026-30624",
|
|
2774
2782
|
"CVE-2026-30625",
|
|
2783
|
+
"CVE-2026-31229",
|
|
2784
|
+
"CVE-2026-31230",
|
|
2775
2785
|
"CVE-2026-31431",
|
|
2776
2786
|
"CVE-2026-31635",
|
|
2777
2787
|
"CVE-2026-32201",
|
|
@@ -5140,6 +5150,8 @@
|
|
|
5140
5150
|
"CVE-2026-30617",
|
|
5141
5151
|
"CVE-2026-30624",
|
|
5142
5152
|
"CVE-2026-30625",
|
|
5153
|
+
"CVE-2026-31229",
|
|
5154
|
+
"CVE-2026-31230",
|
|
5143
5155
|
"CVE-2026-33017",
|
|
5144
5156
|
"CVE-2026-34159",
|
|
5145
5157
|
"CVE-2026-34926",
|
|
@@ -5711,6 +5723,8 @@
|
|
|
5711
5723
|
"CVE-2026-30617",
|
|
5712
5724
|
"CVE-2026-30624",
|
|
5713
5725
|
"CVE-2026-30625",
|
|
5726
|
+
"CVE-2026-31229",
|
|
5727
|
+
"CVE-2026-31230",
|
|
5714
5728
|
"CVE-2026-33017",
|
|
5715
5729
|
"CVE-2026-34159",
|
|
5716
5730
|
"CVE-2026-34926",
|
|
@@ -5825,6 +5839,8 @@
|
|
|
5825
5839
|
"CVE-2026-30617",
|
|
5826
5840
|
"CVE-2026-30624",
|
|
5827
5841
|
"CVE-2026-30625",
|
|
5842
|
+
"CVE-2026-31229",
|
|
5843
|
+
"CVE-2026-31230",
|
|
5828
5844
|
"CVE-2026-33017",
|
|
5829
5845
|
"CVE-2026-34159",
|
|
5830
5846
|
"CVE-2026-34926",
|
|
@@ -5905,6 +5921,8 @@
|
|
|
5905
5921
|
"CVE-2024-3154",
|
|
5906
5922
|
"CVE-2024-37052",
|
|
5907
5923
|
"CVE-2024-37060",
|
|
5924
|
+
"CVE-2026-31229",
|
|
5925
|
+
"CVE-2026-31230",
|
|
5908
5926
|
"MAL-2026-NODE-IPC-STEALER",
|
|
5909
5927
|
"MAL-2026-RUBYGEMS-BUFFERZONECORP-SLEEPER",
|
|
5910
5928
|
"MAL-2026-SHAI-HULUD-OSS",
|
|
@@ -4661,6 +4661,106 @@
|
|
|
4661
4661
|
"_auto_imported": false,
|
|
4662
4662
|
"_intake_method": "manual-verified-curation"
|
|
4663
4663
|
},
|
|
4664
|
+
"CVE-2026-31229": {
|
|
4665
|
+
"name": "Adversarial Robustness Toolbox torch.load Model Deserialization RCE",
|
|
4666
|
+
"lesson_date": "2026-05-25",
|
|
4667
|
+
"attack_vector": {
|
|
4668
|
+
"description": "ART's Kubeflow model-loading component calls torch.load() without weights_only=True, so loading a maliciously crafted model file runs arbitrary code through unsafe object-deserialization (the same weights_only gap as CVE-2025-32434, here in the defensive-ML library).",
|
|
4669
|
+
"privileges_required": "none-to-low (control the loaded model / the affected CLI argument value)",
|
|
4670
|
+
"complexity": "low",
|
|
4671
|
+
"ai_factor": "The abused surface is the Adversarial Robustness Toolbox (ART) - the Trusted-AI library used to DEFEND ML models against adversarial attacks. The lesson: defensive-ML tooling is code-bearing infrastructure too; a model file it loads is executable code."
|
|
4672
|
+
},
|
|
4673
|
+
"framework_coverage": {
|
|
4674
|
+
"NIST-800-53-SI-2": {
|
|
4675
|
+
"covered": true,
|
|
4676
|
+
"adequate": false,
|
|
4677
|
+
"gap": "No fix is published; loading an untrusted model is inherently code execution - the control is provenance + sandboxing, not patching."
|
|
4678
|
+
},
|
|
4679
|
+
"NIST-800-53-SI-10": {
|
|
4680
|
+
"covered": true,
|
|
4681
|
+
"adequate": false,
|
|
4682
|
+
"gap": "No input validation distinguishes a benign model from a deserialization payload before ART loads it."
|
|
4683
|
+
},
|
|
4684
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
4685
|
+
"covered": false,
|
|
4686
|
+
"adequate": false,
|
|
4687
|
+
"gap": "No framework treats the adversarial-robustness library's model-loading path as a privileged code-execution surface."
|
|
4688
|
+
}
|
|
4689
|
+
},
|
|
4690
|
+
"compliance_exposure_score": {
|
|
4691
|
+
"percent_audit_passing_orgs_still_exposed": 82,
|
|
4692
|
+
"basis": "Defensive-ML libraries are trusted by assumption and run inside ML pipelines; their model-loading and CLI-parsing paths are not treated as code-execution surfaces, and no patch is published.",
|
|
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
|
+
},
|
|
4714
|
+
"CVE-2026-31230": {
|
|
4715
|
+
"name": "Adversarial Robustness Toolbox CLI Argument Dynamic-Evaluation Code Execution",
|
|
4716
|
+
"lesson_date": "2026-05-25",
|
|
4717
|
+
"attack_vector": {
|
|
4718
|
+
"description": "ART's Kubeflow component parses the --clip_values and --input_shape command-line arguments through an unsafe dynamic-evaluation call, so attacker-controlled argument values execute arbitrary Python (the same build-from-arguments root cause as the LlamaIndex CLI injection).",
|
|
4719
|
+
"privileges_required": "none-to-low (control the loaded model / the affected CLI argument value)",
|
|
4720
|
+
"complexity": "low",
|
|
4721
|
+
"ai_factor": "The abused surface is the Adversarial Robustness Toolbox (ART) - the Trusted-AI library used to DEFEND ML models against adversarial attacks. The lesson: defensive-ML tooling is code-bearing infrastructure too; its CLI must parse arguments with a safe literal parser, never a dynamic-evaluation call."
|
|
4722
|
+
},
|
|
4723
|
+
"framework_coverage": {
|
|
4724
|
+
"NIST-800-53-SI-2": {
|
|
4725
|
+
"covered": true,
|
|
4726
|
+
"adequate": false,
|
|
4727
|
+
"gap": "No fix is published; the control is parsing CLI arguments with a safe literal parser rather than a dynamic-evaluation call."
|
|
4728
|
+
},
|
|
4729
|
+
"NIST-800-53-SI-10": {
|
|
4730
|
+
"covered": true,
|
|
4731
|
+
"adequate": false,
|
|
4732
|
+
"gap": "No input validation distinguishes a safe CLI argument value from injected code before ART evaluates it."
|
|
4733
|
+
},
|
|
4734
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
4735
|
+
"covered": false,
|
|
4736
|
+
"adequate": false,
|
|
4737
|
+
"gap": "No framework treats an ML library's CLI argument parsing as a privileged code-execution surface."
|
|
4738
|
+
}
|
|
4739
|
+
},
|
|
4740
|
+
"compliance_exposure_score": {
|
|
4741
|
+
"percent_audit_passing_orgs_still_exposed": 82,
|
|
4742
|
+
"basis": "Defensive-ML libraries are trusted by assumption and run inside ML pipelines; their model-loading and CLI-parsing paths are not treated as code-execution surfaces, and no patch is published.",
|
|
4743
|
+
"theater_pattern": "ai_framework_cli_eval"
|
|
4744
|
+
},
|
|
4745
|
+
"ai_discovered_zeroday": false,
|
|
4746
|
+
"ai_discovery_source": "human_researcher",
|
|
4747
|
+
"ai_assist_factor": "none",
|
|
4748
|
+
"new_control_requirements": [
|
|
4749
|
+
{
|
|
4750
|
+
"id": "NEW-CTRL-100",
|
|
4751
|
+
"name": "AI-FRAMEWORK-CLI-SHELL-INPUT-NEUTRALIZATION",
|
|
4752
|
+
"description": "AI-framework CLIs and tools that invoke external commands must never build a shell string from user-supplied arguments or config: use argv-array execution (no shell), or neutralize input with shlex/equivalent. Upgrade llama-index-cli past 0.12.20 to the shlex-escaped release, and in any wrapper/automation pass arguments as a list rather than a shell string. The distinguishing test: pass a --files value containing shell metacharacters to a staging CLI and confirm no subcommand executes.",
|
|
4753
|
+
"evidence": "https://huntr.com/bounties/19e1c67e-1d77-451d-b10b-acbe99900b22",
|
|
4754
|
+
"gap_closes": [
|
|
4755
|
+
"NIST-800-53-SI-2",
|
|
4756
|
+
"NIST-800-53-SI-10",
|
|
4757
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
4758
|
+
]
|
|
4759
|
+
}
|
|
4760
|
+
],
|
|
4761
|
+
"_auto_imported": false,
|
|
4762
|
+
"_intake_method": "manual-verified-curation"
|
|
4763
|
+
},
|
|
4664
4764
|
"CVE-2023-43791": {
|
|
4665
4765
|
"name": "Label Studio Account Impersonation and Privilege Escalation",
|
|
4666
4766
|
"lesson_date": "2026-05-25",
|