@blamejs/exceptd-skills 0.13.105 → 0.13.107
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 +1712 -0
- package/data/atlas-ttps.json +8 -0
- package/data/attack-techniques.json +10 -0
- package/data/cve-catalog.json +420 -0
- package/data/cwe-catalog.json +4 -0
- package/data/framework-control-gaps.json +38 -0
- package/data/zeroday-lessons.json +200 -0
- package/manifest.json +44 -44
- package/package.json +2 -2
- package/sbom.cdx.json +25 -25
|
@@ -55,7 +55,10 @@
|
|
|
55
55
|
"CVE-2024-24590",
|
|
56
56
|
"CVE-2024-24591",
|
|
57
57
|
"CVE-2024-27132",
|
|
58
|
+
"CVE-2024-2912",
|
|
58
59
|
"CVE-2024-37032",
|
|
60
|
+
"CVE-2024-37052",
|
|
61
|
+
"CVE-2024-37060",
|
|
59
62
|
"CVE-2024-39722",
|
|
60
63
|
"CVE-2024-42478",
|
|
61
64
|
"CVE-2024-42479",
|
|
@@ -67,6 +70,7 @@
|
|
|
67
70
|
"CVE-2025-1753",
|
|
68
71
|
"CVE-2025-23254",
|
|
69
72
|
"CVE-2025-23266",
|
|
73
|
+
"CVE-2025-27520",
|
|
70
74
|
"CVE-2025-30165",
|
|
71
75
|
"CVE-2025-30202",
|
|
72
76
|
"CVE-2025-32434",
|
|
@@ -1273,9 +1277,13 @@
|
|
|
1273
1277
|
"CVE-2024-12366",
|
|
1274
1278
|
"CVE-2024-24590",
|
|
1275
1279
|
"CVE-2024-24591",
|
|
1280
|
+
"CVE-2024-2912",
|
|
1281
|
+
"CVE-2024-37052",
|
|
1282
|
+
"CVE-2024-37060",
|
|
1276
1283
|
"CVE-2024-5565",
|
|
1277
1284
|
"CVE-2025-0133",
|
|
1278
1285
|
"CVE-2025-1094",
|
|
1286
|
+
"CVE-2025-27520",
|
|
1279
1287
|
"CVE-2025-3248",
|
|
1280
1288
|
"CVE-2025-6965",
|
|
1281
1289
|
"CVE-2026-30623",
|
|
@@ -2108,8 +2116,10 @@
|
|
|
2108
2116
|
"CVE-2024-12366",
|
|
2109
2117
|
"CVE-2024-24590",
|
|
2110
2118
|
"CVE-2024-24591",
|
|
2119
|
+
"CVE-2024-2912",
|
|
2111
2120
|
"CVE-2024-3154",
|
|
2112
2121
|
"CVE-2024-5565",
|
|
2122
|
+
"CVE-2025-27520",
|
|
2113
2123
|
"CVE-2025-3248",
|
|
2114
2124
|
"CVE-2025-49844",
|
|
2115
2125
|
"CVE-2025-53773",
|
|
@@ -2344,7 +2354,10 @@
|
|
|
2344
2354
|
"CVE-2024-24590",
|
|
2345
2355
|
"CVE-2024-24591",
|
|
2346
2356
|
"CVE-2024-27132",
|
|
2357
|
+
"CVE-2024-2912",
|
|
2347
2358
|
"CVE-2024-37032",
|
|
2359
|
+
"CVE-2024-37052",
|
|
2360
|
+
"CVE-2024-37060",
|
|
2348
2361
|
"CVE-2024-39722",
|
|
2349
2362
|
"CVE-2024-50050",
|
|
2350
2363
|
"CVE-2024-5565",
|
|
@@ -2353,6 +2366,7 @@
|
|
|
2353
2366
|
"CVE-2025-1550",
|
|
2354
2367
|
"CVE-2025-1753",
|
|
2355
2368
|
"CVE-2025-23254",
|
|
2369
|
+
"CVE-2025-27520",
|
|
2356
2370
|
"CVE-2025-30165",
|
|
2357
2371
|
"CVE-2025-32434",
|
|
2358
2372
|
"CVE-2025-33236",
|
|
@@ -2526,6 +2540,8 @@
|
|
|
2526
2540
|
"CVE-2024-27199",
|
|
2527
2541
|
"CVE-2024-27443",
|
|
2528
2542
|
"CVE-2024-37032",
|
|
2543
|
+
"CVE-2024-37052",
|
|
2544
|
+
"CVE-2024-37060",
|
|
2529
2545
|
"CVE-2024-37079",
|
|
2530
2546
|
"CVE-2024-39722",
|
|
2531
2547
|
"CVE-2024-42009",
|
|
@@ -2805,8 +2821,10 @@
|
|
|
2805
2821
|
"BUG-2026-NIGHTMARE-ECLIPSE-UNDEFEND",
|
|
2806
2822
|
"CVE-2023-6016",
|
|
2807
2823
|
"CVE-2024-12366",
|
|
2824
|
+
"CVE-2024-2912",
|
|
2808
2825
|
"CVE-2024-5565",
|
|
2809
2826
|
"CVE-2025-11837",
|
|
2827
|
+
"CVE-2025-27520",
|
|
2810
2828
|
"CVE-2025-3248",
|
|
2811
2829
|
"CVE-2026-22778",
|
|
2812
2830
|
"CVE-2026-32202",
|
|
@@ -2847,6 +2865,8 @@
|
|
|
2847
2865
|
"CVE-2024-24590",
|
|
2848
2866
|
"CVE-2024-24591",
|
|
2849
2867
|
"CVE-2024-3094",
|
|
2868
|
+
"CVE-2024-37052",
|
|
2869
|
+
"CVE-2024-37060",
|
|
2850
2870
|
"MAL-2026-SHAI-HULUD-OSS"
|
|
2851
2871
|
],
|
|
2852
2872
|
"atlas_refs": [
|
|
@@ -4993,7 +5013,9 @@
|
|
|
4993
5013
|
"evidence_cves": [
|
|
4994
5014
|
"CVE-2023-3519",
|
|
4995
5015
|
"CVE-2024-12366",
|
|
5016
|
+
"CVE-2024-2912",
|
|
4996
5017
|
"CVE-2024-5565",
|
|
5018
|
+
"CVE-2025-27520",
|
|
4997
5019
|
"CVE-2026-0300",
|
|
4998
5020
|
"CVE-2026-42945"
|
|
4999
5021
|
],
|
|
@@ -5053,7 +5075,10 @@
|
|
|
5053
5075
|
"CVE-2024-24590",
|
|
5054
5076
|
"CVE-2024-24591",
|
|
5055
5077
|
"CVE-2024-27132",
|
|
5078
|
+
"CVE-2024-2912",
|
|
5056
5079
|
"CVE-2024-37032",
|
|
5080
|
+
"CVE-2024-37052",
|
|
5081
|
+
"CVE-2024-37060",
|
|
5057
5082
|
"CVE-2024-39722",
|
|
5058
5083
|
"CVE-2024-42478",
|
|
5059
5084
|
"CVE-2024-42479",
|
|
@@ -5065,6 +5090,7 @@
|
|
|
5065
5090
|
"CVE-2025-1753",
|
|
5066
5091
|
"CVE-2025-23254",
|
|
5067
5092
|
"CVE-2025-23266",
|
|
5093
|
+
"CVE-2025-27520",
|
|
5068
5094
|
"CVE-2025-30165",
|
|
5069
5095
|
"CVE-2025-30202",
|
|
5070
5096
|
"CVE-2025-32434",
|
|
@@ -5618,7 +5644,10 @@
|
|
|
5618
5644
|
"CVE-2024-24590",
|
|
5619
5645
|
"CVE-2024-24591",
|
|
5620
5646
|
"CVE-2024-27132",
|
|
5647
|
+
"CVE-2024-2912",
|
|
5621
5648
|
"CVE-2024-37032",
|
|
5649
|
+
"CVE-2024-37052",
|
|
5650
|
+
"CVE-2024-37060",
|
|
5622
5651
|
"CVE-2024-39722",
|
|
5623
5652
|
"CVE-2024-42478",
|
|
5624
5653
|
"CVE-2024-42479",
|
|
@@ -5628,6 +5657,7 @@
|
|
|
5628
5657
|
"CVE-2025-1753",
|
|
5629
5658
|
"CVE-2025-23254",
|
|
5630
5659
|
"CVE-2025-23266",
|
|
5660
|
+
"CVE-2025-27520",
|
|
5631
5661
|
"CVE-2025-30165",
|
|
5632
5662
|
"CVE-2025-30202",
|
|
5633
5663
|
"CVE-2025-32434",
|
|
@@ -5718,7 +5748,10 @@
|
|
|
5718
5748
|
"CVE-2024-24590",
|
|
5719
5749
|
"CVE-2024-24591",
|
|
5720
5750
|
"CVE-2024-27132",
|
|
5751
|
+
"CVE-2024-2912",
|
|
5721
5752
|
"CVE-2024-37032",
|
|
5753
|
+
"CVE-2024-37052",
|
|
5754
|
+
"CVE-2024-37060",
|
|
5722
5755
|
"CVE-2024-39722",
|
|
5723
5756
|
"CVE-2024-42478",
|
|
5724
5757
|
"CVE-2024-42479",
|
|
@@ -5730,6 +5763,7 @@
|
|
|
5730
5763
|
"CVE-2025-1753",
|
|
5731
5764
|
"CVE-2025-23254",
|
|
5732
5765
|
"CVE-2025-23266",
|
|
5766
|
+
"CVE-2025-27520",
|
|
5733
5767
|
"CVE-2025-30165",
|
|
5734
5768
|
"CVE-2025-30202",
|
|
5735
5769
|
"CVE-2025-32434",
|
|
@@ -5837,6 +5871,8 @@
|
|
|
5837
5871
|
"CVE-2024-24590",
|
|
5838
5872
|
"CVE-2024-24591",
|
|
5839
5873
|
"CVE-2024-3154",
|
|
5874
|
+
"CVE-2024-37052",
|
|
5875
|
+
"CVE-2024-37060",
|
|
5840
5876
|
"MAL-2026-NODE-IPC-STEALER",
|
|
5841
5877
|
"MAL-2026-RUBYGEMS-BUFFERZONECORP-SLEEPER",
|
|
5842
5878
|
"MAL-2026-SHAI-HULUD-OSS",
|
|
@@ -6052,8 +6088,10 @@
|
|
|
6052
6088
|
"CVE-2023-6021",
|
|
6053
6089
|
"CVE-2023-6038",
|
|
6054
6090
|
"CVE-2024-1709",
|
|
6091
|
+
"CVE-2024-2912",
|
|
6055
6092
|
"CVE-2024-4889",
|
|
6056
6093
|
"CVE-2024-6587",
|
|
6094
|
+
"CVE-2025-27520",
|
|
6057
6095
|
"CVE-2025-3248",
|
|
6058
6096
|
"CVE-2025-64513",
|
|
6059
6097
|
"CVE-2025-67818",
|
|
@@ -4461,6 +4461,206 @@
|
|
|
4461
4461
|
"_auto_imported": false,
|
|
4462
4462
|
"_intake_method": "manual-verified-curation"
|
|
4463
4463
|
},
|
|
4464
|
+
"CVE-2024-2912": {
|
|
4465
|
+
"name": "BentoML Insecure Deserialization Unauthenticated Remote Code Execution",
|
|
4466
|
+
"lesson_date": "2026-05-25",
|
|
4467
|
+
"attack_vector": {
|
|
4468
|
+
"description": "BentoML before 1.2.5 deserializes an attacker-supplied serialized object delivered to a valid serving endpoint without validation, so an unauthenticated attacker runs arbitrary code on the model server.",
|
|
4469
|
+
"privileges_required": "none (unauthenticated)",
|
|
4470
|
+
"complexity": "low",
|
|
4471
|
+
"ai_factor": "The abused surface is BentoML, a model-serving / inference framework. The lesson: a model server must never reconstruct an untrusted serialized object from a request - the same inference-path deserialization class as the ShadowMQ / vLLM entries, here on the HTTP serving API, and it recurred in BentoML after the first fix."
|
|
4472
|
+
},
|
|
4473
|
+
"framework_coverage": {
|
|
4474
|
+
"NIST-800-53-SI-2": {
|
|
4475
|
+
"covered": true,
|
|
4476
|
+
"adequate": false,
|
|
4477
|
+
"gap": "Flaw remediation closed one deserialization path (1.2.5) but the class recurred (serde.py, fixed 1.4.3) - the fix did not generalize to all request-deserialization sinks."
|
|
4478
|
+
},
|
|
4479
|
+
"NIST-800-53-SI-10": {
|
|
4480
|
+
"covered": true,
|
|
4481
|
+
"adequate": false,
|
|
4482
|
+
"gap": "No input validation distinguishes a safe payload from a deserialization-gadget object at the model-serving endpoint."
|
|
4483
|
+
},
|
|
4484
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
4485
|
+
"covered": false,
|
|
4486
|
+
"adequate": false,
|
|
4487
|
+
"gap": "No framework treats a model-serving framework's request-deserialization path as a privileged execution surface."
|
|
4488
|
+
}
|
|
4489
|
+
},
|
|
4490
|
+
"compliance_exposure_score": {
|
|
4491
|
+
"percent_audit_passing_orgs_still_exposed": 84,
|
|
4492
|
+
"basis": "Model-serving frameworks are deployed for inference throughput on trusted-network assumptions; their request-deserialization paths are not treated as untrusted-input boundaries.",
|
|
4493
|
+
"theater_pattern": "model_serving_deserialization_trust"
|
|
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-086",
|
|
4501
|
+
"name": "AI-INFERENCE-IPC-DESERIALIZATION-SAFETY",
|
|
4502
|
+
"description": "AI inference engines must use a safe serializer (e.g. JSON) for IPC/socket communication, never deserialize untrusted serialized objects, authenticate socket peers, and isolate the channel on a trusted network segment. Because the insecure primitive spread by code reuse, the control must be applied across every inference engine in the estate, not one at a time. Apply the project fix (NVIDIA TensorRT-LLM), and for vLLM keep the legacy V0 engine disabled. The distinguishing test: send a crafted serialized object to the inference engine's socket from an unauthorized peer on a staging instance and confirm it is rejected, not deserialized.",
|
|
4503
|
+
"evidence": "https://nvidia.custhelp.com/app/answers/detail/a_id/5648",
|
|
4504
|
+
"gap_closes": [
|
|
4505
|
+
"NIST-800-53-SI-2",
|
|
4506
|
+
"NIST-800-53-SI-10",
|
|
4507
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
4508
|
+
]
|
|
4509
|
+
}
|
|
4510
|
+
],
|
|
4511
|
+
"_auto_imported": false,
|
|
4512
|
+
"_intake_method": "manual-verified-curation"
|
|
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-2024-37060": {
|
|
4565
|
+
"name": "MLflow Recipe Deserialization Remote Code Execution",
|
|
4566
|
+
"lesson_date": "2026-05-25",
|
|
4567
|
+
"attack_vector": {
|
|
4568
|
+
"description": "A maliciously crafted MLflow Recipe (1.27.0-2.14.1) runs arbitrary code when executed, because it is reconstructed through unsafe deserialization.",
|
|
4569
|
+
"privileges_required": "low-to-none (upload to a registry the victim uses; victim must load/run the artifact - UI:R)",
|
|
4570
|
+
"complexity": "low",
|
|
4571
|
+
"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."
|
|
4572
|
+
},
|
|
4573
|
+
"framework_coverage": {
|
|
4574
|
+
"NIST-800-53-SI-2": {
|
|
4575
|
+
"covered": true,
|
|
4576
|
+
"adequate": false,
|
|
4577
|
+
"gap": "Flaw remediation cannot patch this - loading an untrusted model is inherently code execution; the control is artifact provenance + sandboxing."
|
|
4578
|
+
},
|
|
4579
|
+
"NIST-800-53-SI-10": {
|
|
4580
|
+
"covered": true,
|
|
4581
|
+
"adequate": false,
|
|
4582
|
+
"gap": "No input validation distinguishes a benign model artifact from a deserialization payload before MLflow loads it."
|
|
4583
|
+
},
|
|
4584
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
4585
|
+
"covered": false,
|
|
4586
|
+
"adequate": false,
|
|
4587
|
+
"gap": "No framework treats an MLflow model artifact / Recipe as untrusted executable code requiring provenance verification and sandboxed loading."
|
|
4588
|
+
}
|
|
4589
|
+
},
|
|
4590
|
+
"compliance_exposure_score": {
|
|
4591
|
+
"percent_audit_passing_orgs_still_exposed": 82,
|
|
4592
|
+
"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.",
|
|
4593
|
+
"theater_pattern": "untrusted_model_artifact_as_code"
|
|
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-091",
|
|
4601
|
+
"name": "UNTRUSTED-MODEL-ARTIFACT-LOADING",
|
|
4602
|
+
"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.",
|
|
4603
|
+
"evidence": "https://nvd.nist.gov/vuln/detail/CVE-2025-1550",
|
|
4604
|
+
"gap_closes": [
|
|
4605
|
+
"NIST-800-53-SI-2",
|
|
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-2025-27520": {
|
|
4615
|
+
"name": "BentoML serde.py Insecure Deserialization Unauthenticated Remote Code Execution",
|
|
4616
|
+
"lesson_date": "2026-05-25",
|
|
4617
|
+
"attack_vector": {
|
|
4618
|
+
"description": "BentoML 1.3.4 through 1.4.2 reconstructs an attacker-supplied serialized object in serde.py from a request without validation, giving any unauthenticated user remote code execution - the same insecure-deserialization class that 1.2.5 fixed, recurring on the serde.py path.",
|
|
4619
|
+
"privileges_required": "none (unauthenticated)",
|
|
4620
|
+
"complexity": "low",
|
|
4621
|
+
"ai_factor": "The abused surface is BentoML, a model-serving / inference framework. The lesson: a model server must never reconstruct an untrusted serialized object from a request - the same inference-path deserialization class as the ShadowMQ / vLLM entries, here on the HTTP serving API, and it recurred in BentoML after the first fix."
|
|
4622
|
+
},
|
|
4623
|
+
"framework_coverage": {
|
|
4624
|
+
"NIST-800-53-SI-2": {
|
|
4625
|
+
"covered": true,
|
|
4626
|
+
"adequate": false,
|
|
4627
|
+
"gap": "Flaw remediation closed one deserialization path (1.2.5) but the class recurred (serde.py, fixed 1.4.3) - the fix did not generalize to all request-deserialization sinks."
|
|
4628
|
+
},
|
|
4629
|
+
"NIST-800-53-SI-10": {
|
|
4630
|
+
"covered": true,
|
|
4631
|
+
"adequate": false,
|
|
4632
|
+
"gap": "No input validation distinguishes a safe payload from a deserialization-gadget object at the model-serving endpoint."
|
|
4633
|
+
},
|
|
4634
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
4635
|
+
"covered": false,
|
|
4636
|
+
"adequate": false,
|
|
4637
|
+
"gap": "No framework treats a model-serving framework's request-deserialization path as a privileged execution surface."
|
|
4638
|
+
}
|
|
4639
|
+
},
|
|
4640
|
+
"compliance_exposure_score": {
|
|
4641
|
+
"percent_audit_passing_orgs_still_exposed": 84,
|
|
4642
|
+
"basis": "Model-serving frameworks are deployed for inference throughput on trusted-network assumptions; their request-deserialization paths are not treated as untrusted-input boundaries.",
|
|
4643
|
+
"theater_pattern": "model_serving_deserialization_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-086",
|
|
4651
|
+
"name": "AI-INFERENCE-IPC-DESERIALIZATION-SAFETY",
|
|
4652
|
+
"description": "AI inference engines must use a safe serializer (e.g. JSON) for IPC/socket communication, never deserialize untrusted serialized objects, authenticate socket peers, and isolate the channel on a trusted network segment. Because the insecure primitive spread by code reuse, the control must be applied across every inference engine in the estate, not one at a time. Apply the project fix (NVIDIA TensorRT-LLM), and for vLLM keep the legacy V0 engine disabled. The distinguishing test: send a crafted serialized object to the inference engine's socket from an unauthorized peer on a staging instance and confirm it is rejected, not deserialized.",
|
|
4653
|
+
"evidence": "https://nvidia.custhelp.com/app/answers/detail/a_id/5648",
|
|
4654
|
+
"gap_closes": [
|
|
4655
|
+
"NIST-800-53-SI-2",
|
|
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
|
+
},
|
|
4464
4664
|
"CVE-2023-6038": {
|
|
4465
4665
|
"name": "H2O-3 REST API Unauthenticated Local File Inclusion (Arbitrary File Read)",
|
|
4466
4666
|
"lesson_date": "2026-05-25",
|