@blamejs/exceptd-skills 0.13.83 → 0.13.85
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 +2138 -0
- package/data/atlas-ttps.json +7 -1
- package/data/attack-techniques.json +9 -0
- package/data/cve-catalog.json +523 -1
- package/data/cwe-catalog.json +7 -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
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
"fuzz-testing-strategy"
|
|
49
49
|
],
|
|
50
50
|
"evidence_cves": [
|
|
51
|
+
"CVE-2022-1471",
|
|
51
52
|
"CVE-2024-3154",
|
|
52
53
|
"CVE-2025-20393",
|
|
53
54
|
"CVE-2025-54236",
|
|
@@ -421,6 +422,7 @@
|
|
|
421
422
|
"hardening"
|
|
422
423
|
],
|
|
423
424
|
"evidence_cves": [
|
|
425
|
+
"CVE-2024-42479",
|
|
424
426
|
"CVE-2026-43284"
|
|
425
427
|
],
|
|
426
428
|
"framework_controls_partially_addressing": [
|
|
@@ -453,6 +455,7 @@
|
|
|
453
455
|
],
|
|
454
456
|
"evidence_cves": [
|
|
455
457
|
"CVE-2023-36424",
|
|
458
|
+
"CVE-2024-42478",
|
|
456
459
|
"CVE-2025-48633",
|
|
457
460
|
"CVE-2025-5419",
|
|
458
461
|
"CVE-2025-5777",
|
|
@@ -1301,6 +1304,7 @@
|
|
|
1301
1304
|
"webapp-security"
|
|
1302
1305
|
],
|
|
1303
1306
|
"evidence_cves": [
|
|
1307
|
+
"CVE-2022-1471",
|
|
1304
1308
|
"CVE-2023-21529",
|
|
1305
1309
|
"CVE-2024-50050",
|
|
1306
1310
|
"CVE-2024-8069",
|
|
@@ -1589,6 +1593,7 @@
|
|
|
1589
1593
|
"CVE-2023-3519",
|
|
1590
1594
|
"CVE-2024-21762",
|
|
1591
1595
|
"CVE-2024-37079",
|
|
1596
|
+
"CVE-2024-42479",
|
|
1592
1597
|
"CVE-2025-14174",
|
|
1593
1598
|
"CVE-2025-14733",
|
|
1594
1599
|
"CVE-2025-21042",
|
|
@@ -1825,6 +1830,7 @@
|
|
|
1825
1830
|
"CVE-2021-22054",
|
|
1826
1831
|
"CVE-2021-22175",
|
|
1827
1832
|
"CVE-2021-39935",
|
|
1833
|
+
"CVE-2023-43654",
|
|
1828
1834
|
"CVE-2023-48022",
|
|
1829
1835
|
"CVE-2025-61884"
|
|
1830
1836
|
],
|
|
@@ -2255,6 +2261,7 @@
|
|
|
2255
2261
|
"CVE-2025-6965",
|
|
2256
2262
|
"CVE-2025-7775",
|
|
2257
2263
|
"CVE-2026-20700",
|
|
2264
|
+
"CVE-2026-34159",
|
|
2258
2265
|
"CVE-2026-3910"
|
|
2259
2266
|
],
|
|
2260
2267
|
"last_verified": "2026-05-18",
|
|
@@ -34,8 +34,12 @@
|
|
|
34
34
|
"status": "open",
|
|
35
35
|
"opened_date": "2026-01-01",
|
|
36
36
|
"evidence_cves": [
|
|
37
|
+
"CVE-2022-1471",
|
|
38
|
+
"CVE-2023-43654",
|
|
37
39
|
"CVE-2023-48022",
|
|
38
40
|
"CVE-2024-0132",
|
|
41
|
+
"CVE-2024-42478",
|
|
42
|
+
"CVE-2024-42479",
|
|
39
43
|
"CVE-2024-50050",
|
|
40
44
|
"CVE-2025-1550",
|
|
41
45
|
"CVE-2025-23254",
|
|
@@ -57,6 +61,7 @@
|
|
|
57
61
|
"CVE-2026-30617",
|
|
58
62
|
"CVE-2026-30624",
|
|
59
63
|
"CVE-2026-30625",
|
|
64
|
+
"CVE-2026-34159",
|
|
60
65
|
"CVE-2026-40933"
|
|
61
66
|
],
|
|
62
67
|
"atlas_refs": [
|
|
@@ -1343,6 +1348,7 @@
|
|
|
1343
1348
|
"CVE-2021-39935",
|
|
1344
1349
|
"CVE-2021-43226",
|
|
1345
1350
|
"CVE-2021-43798",
|
|
1351
|
+
"CVE-2022-1471",
|
|
1346
1352
|
"CVE-2022-20775",
|
|
1347
1353
|
"CVE-2022-37055",
|
|
1348
1354
|
"CVE-2022-40799",
|
|
@@ -1357,6 +1363,7 @@
|
|
|
1357
1363
|
"CVE-2023-39780",
|
|
1358
1364
|
"CVE-2023-41974",
|
|
1359
1365
|
"CVE-2023-43000",
|
|
1366
|
+
"CVE-2023-43654",
|
|
1360
1367
|
"CVE-2023-50224",
|
|
1361
1368
|
"CVE-2023-52163",
|
|
1362
1369
|
"CVE-2024-0769",
|
|
@@ -1368,6 +1375,8 @@
|
|
|
1368
1375
|
"CVE-2024-27443",
|
|
1369
1376
|
"CVE-2024-37079",
|
|
1370
1377
|
"CVE-2024-42009",
|
|
1378
|
+
"CVE-2024-42478",
|
|
1379
|
+
"CVE-2024-42479",
|
|
1371
1380
|
"CVE-2024-43468",
|
|
1372
1381
|
"CVE-2024-50050",
|
|
1373
1382
|
"CVE-2024-54085",
|
|
@@ -1565,6 +1574,7 @@
|
|
|
1565
1574
|
"CVE-2026-32201",
|
|
1566
1575
|
"CVE-2026-33017",
|
|
1567
1576
|
"CVE-2026-33634",
|
|
1577
|
+
"CVE-2026-34159",
|
|
1568
1578
|
"CVE-2026-34197",
|
|
1569
1579
|
"CVE-2026-34621",
|
|
1570
1580
|
"CVE-2026-34926",
|
|
@@ -1761,8 +1771,12 @@
|
|
|
1761
1771
|
"status": "open",
|
|
1762
1772
|
"opened_date": "2026-03-15",
|
|
1763
1773
|
"evidence_cves": [
|
|
1774
|
+
"CVE-2022-1471",
|
|
1775
|
+
"CVE-2023-43654",
|
|
1764
1776
|
"CVE-2023-48022",
|
|
1765
1777
|
"CVE-2024-0132",
|
|
1778
|
+
"CVE-2024-42478",
|
|
1779
|
+
"CVE-2024-42479",
|
|
1766
1780
|
"CVE-2024-50050",
|
|
1767
1781
|
"CVE-2025-10585",
|
|
1768
1782
|
"CVE-2025-1094",
|
|
@@ -1791,6 +1805,7 @@
|
|
|
1791
1805
|
"CVE-2026-30624",
|
|
1792
1806
|
"CVE-2026-30625",
|
|
1793
1807
|
"CVE-2026-31431",
|
|
1808
|
+
"CVE-2026-34159",
|
|
1794
1809
|
"CVE-2026-34926",
|
|
1795
1810
|
"CVE-2026-39884",
|
|
1796
1811
|
"CVE-2026-40933",
|
|
@@ -2126,8 +2141,11 @@
|
|
|
2126
2141
|
"CVE-2023-48022",
|
|
2127
2142
|
"CVE-2024-0132",
|
|
2128
2143
|
"CVE-2024-40635",
|
|
2144
|
+
"CVE-2024-42478",
|
|
2145
|
+
"CVE-2024-42479",
|
|
2129
2146
|
"CVE-2025-23266",
|
|
2130
2147
|
"CVE-2025-53767",
|
|
2148
|
+
"CVE-2026-34159",
|
|
2131
2149
|
"CVE-2026-42897"
|
|
2132
2150
|
],
|
|
2133
2151
|
"atlas_refs": [
|
|
@@ -2324,6 +2342,7 @@
|
|
|
2324
2342
|
"CVE-2021-39935",
|
|
2325
2343
|
"CVE-2021-43226",
|
|
2326
2344
|
"CVE-2021-43798",
|
|
2345
|
+
"CVE-2022-1471",
|
|
2327
2346
|
"CVE-2022-20775",
|
|
2328
2347
|
"CVE-2022-37055",
|
|
2329
2348
|
"CVE-2022-40799",
|
|
@@ -2339,6 +2358,7 @@
|
|
|
2339
2358
|
"CVE-2023-39780",
|
|
2340
2359
|
"CVE-2023-41974",
|
|
2341
2360
|
"CVE-2023-43000",
|
|
2361
|
+
"CVE-2023-43654",
|
|
2342
2362
|
"CVE-2023-50224",
|
|
2343
2363
|
"CVE-2023-52163",
|
|
2344
2364
|
"CVE-2024-0132",
|
|
@@ -2351,6 +2371,8 @@
|
|
|
2351
2371
|
"CVE-2024-27443",
|
|
2352
2372
|
"CVE-2024-37079",
|
|
2353
2373
|
"CVE-2024-42009",
|
|
2374
|
+
"CVE-2024-42478",
|
|
2375
|
+
"CVE-2024-42479",
|
|
2354
2376
|
"CVE-2024-43468",
|
|
2355
2377
|
"CVE-2024-50050",
|
|
2356
2378
|
"CVE-2024-54085",
|
|
@@ -2558,6 +2580,7 @@
|
|
|
2558
2580
|
"CVE-2026-33017",
|
|
2559
2581
|
"CVE-2026-33634",
|
|
2560
2582
|
"CVE-2026-33825",
|
|
2583
|
+
"CVE-2026-34159",
|
|
2561
2584
|
"CVE-2026-34197",
|
|
2562
2585
|
"CVE-2026-34621",
|
|
2563
2586
|
"CVE-2026-34926",
|
|
@@ -3608,6 +3631,8 @@
|
|
|
3608
3631
|
"status": "open",
|
|
3609
3632
|
"opened_date": "2026-05-13",
|
|
3610
3633
|
"evidence_cves": [
|
|
3634
|
+
"CVE-2022-1471",
|
|
3635
|
+
"CVE-2023-43654",
|
|
3611
3636
|
"CVE-2023-48022",
|
|
3612
3637
|
"CVE-2026-24206",
|
|
3613
3638
|
"CVE-2026-24207"
|
|
@@ -4818,9 +4843,13 @@
|
|
|
4818
4843
|
"status": "open",
|
|
4819
4844
|
"opened_date": "2026-05-15",
|
|
4820
4845
|
"evidence_cves": [
|
|
4846
|
+
"CVE-2022-1471",
|
|
4847
|
+
"CVE-2023-43654",
|
|
4821
4848
|
"CVE-2023-48022",
|
|
4822
4849
|
"CVE-2024-0132",
|
|
4823
4850
|
"CVE-2024-21762",
|
|
4851
|
+
"CVE-2024-42478",
|
|
4852
|
+
"CVE-2024-42479",
|
|
4824
4853
|
"CVE-2024-50050",
|
|
4825
4854
|
"CVE-2025-1550",
|
|
4826
4855
|
"CVE-2025-23254",
|
|
@@ -4845,6 +4874,7 @@
|
|
|
4845
4874
|
"CVE-2026-30617",
|
|
4846
4875
|
"CVE-2026-30624",
|
|
4847
4876
|
"CVE-2026-30625",
|
|
4877
|
+
"CVE-2026-34159",
|
|
4848
4878
|
"CVE-2026-34926",
|
|
4849
4879
|
"CVE-2026-40933",
|
|
4850
4880
|
"CVE-2026-41091",
|
|
@@ -5341,6 +5371,8 @@
|
|
|
5341
5371
|
"evidence_cves": [
|
|
5342
5372
|
"CVE-2024-0132",
|
|
5343
5373
|
"CVE-2024-21762",
|
|
5374
|
+
"CVE-2024-42478",
|
|
5375
|
+
"CVE-2024-42479",
|
|
5344
5376
|
"CVE-2024-50050",
|
|
5345
5377
|
"CVE-2025-1550",
|
|
5346
5378
|
"CVE-2025-23254",
|
|
@@ -5361,6 +5393,7 @@
|
|
|
5361
5393
|
"CVE-2026-30617",
|
|
5362
5394
|
"CVE-2026-30624",
|
|
5363
5395
|
"CVE-2026-30625",
|
|
5396
|
+
"CVE-2026-34159",
|
|
5364
5397
|
"CVE-2026-34926",
|
|
5365
5398
|
"CVE-2026-40933",
|
|
5366
5399
|
"CVE-2026-41091",
|
|
@@ -5399,9 +5432,13 @@
|
|
|
5399
5432
|
"status": "open",
|
|
5400
5433
|
"opened_date": "2026-05-17",
|
|
5401
5434
|
"evidence_cves": [
|
|
5435
|
+
"CVE-2022-1471",
|
|
5436
|
+
"CVE-2023-43654",
|
|
5402
5437
|
"CVE-2023-48022",
|
|
5403
5438
|
"CVE-2024-0132",
|
|
5404
5439
|
"CVE-2024-21762",
|
|
5440
|
+
"CVE-2024-42478",
|
|
5441
|
+
"CVE-2024-42479",
|
|
5405
5442
|
"CVE-2024-50050",
|
|
5406
5443
|
"CVE-2025-1550",
|
|
5407
5444
|
"CVE-2025-23254",
|
|
@@ -5424,6 +5461,7 @@
|
|
|
5424
5461
|
"CVE-2026-30617",
|
|
5425
5462
|
"CVE-2026-30624",
|
|
5426
5463
|
"CVE-2026-30625",
|
|
5464
|
+
"CVE-2026-34159",
|
|
5427
5465
|
"CVE-2026-34926",
|
|
5428
5466
|
"CVE-2026-40933",
|
|
5429
5467
|
"CVE-2026-41091",
|
|
@@ -5701,6 +5739,8 @@
|
|
|
5701
5739
|
"opened_date": "2026-05-18",
|
|
5702
5740
|
"evidence_cves": [
|
|
5703
5741
|
"CVE-2020-10148",
|
|
5742
|
+
"CVE-2022-1471",
|
|
5743
|
+
"CVE-2023-43654",
|
|
5704
5744
|
"CVE-2023-48022",
|
|
5705
5745
|
"CVE-2024-1709",
|
|
5706
5746
|
"CVE-2026-20182",
|
|
@@ -7183,6 +7183,256 @@
|
|
|
7183
7183
|
"_auto_imported": false,
|
|
7184
7184
|
"_intake_method": "manual-verified-curation"
|
|
7185
7185
|
},
|
|
7186
|
+
"CVE-2024-42479": {
|
|
7187
|
+
"name": "llama.cpp RPC Backend SET_TENSOR Out-of-Bounds Write RCE",
|
|
7188
|
+
"lesson_date": "2026-05-25",
|
|
7189
|
+
"attack_vector": {
|
|
7190
|
+
"description": "llama.cpp's RPC backend deserializes attacker-controlled tensor pointers without bounds validation (CWE-787/CWE-123 write-what-where via SET_TENSOR), so an unauthenticated TCP client to the RPC server (default port 50052) reads/writes arbitrary memory and achieves code execution.",
|
|
7191
|
+
"privileges_required": "none (NVD AV:N / PR:N) — unauthenticated TCP access to the RPC server",
|
|
7192
|
+
"complexity": "low (NVD AC:L)",
|
|
7193
|
+
"ai_factor": "The abused surface is the distributed-inference RPC backend of the most widely used local LLM runtime. The lesson: the inference RPC backend is an unauthenticated execution boundary that must validate all deserialized tensor bounds on every command path and never be network-exposed. The CVE-2024-42478/42479 -> CVE-2026-34159 sequence shows per-command patching (GET/SET) left GRAPH_COMPUTE exploitable — the fix belongs in deserialize_tensor itself."
|
|
7194
|
+
},
|
|
7195
|
+
"framework_coverage": {
|
|
7196
|
+
"NIST-800-53-SI-2": {
|
|
7197
|
+
"covered": true,
|
|
7198
|
+
"adequate": false,
|
|
7199
|
+
"gap": "Does not track the local-LLM runtime's RPC backend as RCE-bearing, nor that the first fix left the GRAPH_COMPUTE path unpatched."
|
|
7200
|
+
},
|
|
7201
|
+
"NIST-800-53-SC-7": {
|
|
7202
|
+
"covered": true,
|
|
7203
|
+
"adequate": false,
|
|
7204
|
+
"gap": "Does not flag the unauthenticated RPC server (port 50052) as a network-exposed execution surface."
|
|
7205
|
+
},
|
|
7206
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
7207
|
+
"covered": false,
|
|
7208
|
+
"adequate": false,
|
|
7209
|
+
"gap": "No framework requires the inference RPC backend to validate deserialized tensor bounds on every command path."
|
|
7210
|
+
}
|
|
7211
|
+
},
|
|
7212
|
+
"compliance_exposure_score": {
|
|
7213
|
+
"percent_audit_passing_orgs_still_exposed": 70,
|
|
7214
|
+
"basis": "Local-LLM RPC servers are run on trusted-network assumptions and rarely tracked; per-command patches are assumed complete despite the GRAPH_COMPUTE bypass.",
|
|
7215
|
+
"theater_pattern": "ai_supply_chain_trust"
|
|
7216
|
+
},
|
|
7217
|
+
"ai_discovered_zeroday": false,
|
|
7218
|
+
"ai_discovery_source": "human_researcher",
|
|
7219
|
+
"ai_assist_factor": "none",
|
|
7220
|
+
"new_control_requirements": [
|
|
7221
|
+
{
|
|
7222
|
+
"id": "NEW-CTRL-092",
|
|
7223
|
+
"name": "AI-INFERENCE-RPC-BACKEND-HARDENING",
|
|
7224
|
+
"description": "The inference RPC backend (llama.cpp / ggml) must validate all deserialized tensor bounds inside deserialize_tensor itself — every command path (GET_TENSOR, SET_TENSOR, GRAPH_COMPUTE), not per-handler — and must never be exposed to untrusted networks (the RPC server on port 50052 has no authentication; bind to localhost or a trusted segment). Upgrade llama.cpp to b8492 or later — b3561 fixed only GET_TENSOR / SET_TENSOR (CVE-2024-42478 / CVE-2024-42479), and builds b3561 through b8491 remain exploitable via the GRAPH_COMPUTE buffer=0 path (CVE-2026-34159), which b8492 closes. The distinguishing test: send a crafted rpc_tensor with buffer=0 / out-of-range data pointer via GRAPH_COMPUTE to a staging RPC server and confirm it is rejected, not dereferenced.",
|
|
7225
|
+
"evidence": "https://github.com/ggerganov/llama.cpp/security/advisories/GHSA-wcr5-566p-9cwj",
|
|
7226
|
+
"gap_closes": [
|
|
7227
|
+
"NIST-800-53-SI-2",
|
|
7228
|
+
"NIST-800-53-SC-7",
|
|
7229
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
7230
|
+
]
|
|
7231
|
+
}
|
|
7232
|
+
],
|
|
7233
|
+
"_auto_imported": false,
|
|
7234
|
+
"_intake_method": "manual-verified-curation"
|
|
7235
|
+
},
|
|
7236
|
+
"CVE-2024-42478": {
|
|
7237
|
+
"name": "llama.cpp RPC Backend GET_TENSOR Out-of-Bounds Read",
|
|
7238
|
+
"lesson_date": "2026-05-25",
|
|
7239
|
+
"attack_vector": {
|
|
7240
|
+
"description": "llama.cpp's RPC backend deserializes attacker-controlled tensor pointers without bounds validation (CWE-125 arbitrary read via GET_TENSOR), so an unauthenticated TCP client to the RPC server (default port 50052) reads/writes arbitrary memory and achieves code execution.",
|
|
7241
|
+
"privileges_required": "none (NVD AV:N / PR:N) — unauthenticated TCP access to the RPC server",
|
|
7242
|
+
"complexity": "low (NVD AC:L)",
|
|
7243
|
+
"ai_factor": "The abused surface is the distributed-inference RPC backend of the most widely used local LLM runtime. The lesson: the inference RPC backend is an unauthenticated execution boundary that must validate all deserialized tensor bounds on every command path and never be network-exposed. The CVE-2024-42478/42479 -> CVE-2026-34159 sequence shows per-command patching (GET/SET) left GRAPH_COMPUTE exploitable — the fix belongs in deserialize_tensor itself."
|
|
7244
|
+
},
|
|
7245
|
+
"framework_coverage": {
|
|
7246
|
+
"NIST-800-53-SI-2": {
|
|
7247
|
+
"covered": true,
|
|
7248
|
+
"adequate": false,
|
|
7249
|
+
"gap": "Does not track the local-LLM runtime's RPC backend as RCE-bearing, nor that the first fix left the GRAPH_COMPUTE path unpatched."
|
|
7250
|
+
},
|
|
7251
|
+
"NIST-800-53-SC-7": {
|
|
7252
|
+
"covered": true,
|
|
7253
|
+
"adequate": false,
|
|
7254
|
+
"gap": "Does not flag the unauthenticated RPC server (port 50052) as a network-exposed execution surface."
|
|
7255
|
+
},
|
|
7256
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
7257
|
+
"covered": false,
|
|
7258
|
+
"adequate": false,
|
|
7259
|
+
"gap": "No framework requires the inference RPC backend to validate deserialized tensor bounds on every command path."
|
|
7260
|
+
}
|
|
7261
|
+
},
|
|
7262
|
+
"compliance_exposure_score": {
|
|
7263
|
+
"percent_audit_passing_orgs_still_exposed": 70,
|
|
7264
|
+
"basis": "Local-LLM RPC servers are run on trusted-network assumptions and rarely tracked; per-command patches are assumed complete despite the GRAPH_COMPUTE bypass.",
|
|
7265
|
+
"theater_pattern": "ai_supply_chain_trust"
|
|
7266
|
+
},
|
|
7267
|
+
"ai_discovered_zeroday": false,
|
|
7268
|
+
"ai_discovery_source": "human_researcher",
|
|
7269
|
+
"ai_assist_factor": "none",
|
|
7270
|
+
"new_control_requirements": [
|
|
7271
|
+
{
|
|
7272
|
+
"id": "NEW-CTRL-092",
|
|
7273
|
+
"name": "AI-INFERENCE-RPC-BACKEND-HARDENING",
|
|
7274
|
+
"description": "The inference RPC backend (llama.cpp / ggml) must validate all deserialized tensor bounds inside deserialize_tensor itself — every command path (GET_TENSOR, SET_TENSOR, GRAPH_COMPUTE), not per-handler — and must never be exposed to untrusted networks (the RPC server on port 50052 has no authentication; bind to localhost or a trusted segment). Upgrade llama.cpp to b8492 or later — b3561 fixed only GET_TENSOR / SET_TENSOR (CVE-2024-42478 / CVE-2024-42479), and builds b3561 through b8491 remain exploitable via the GRAPH_COMPUTE buffer=0 path (CVE-2026-34159), which b8492 closes. The distinguishing test: send a crafted rpc_tensor with buffer=0 / out-of-range data pointer via GRAPH_COMPUTE to a staging RPC server and confirm it is rejected, not dereferenced.",
|
|
7275
|
+
"evidence": "https://github.com/ggerganov/llama.cpp/security/advisories/GHSA-5vm9-p64x-gqw9",
|
|
7276
|
+
"gap_closes": [
|
|
7277
|
+
"NIST-800-53-SI-2",
|
|
7278
|
+
"NIST-800-53-SC-7",
|
|
7279
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
7280
|
+
]
|
|
7281
|
+
}
|
|
7282
|
+
],
|
|
7283
|
+
"_auto_imported": false,
|
|
7284
|
+
"_intake_method": "manual-verified-curation"
|
|
7285
|
+
},
|
|
7286
|
+
"CVE-2026-34159": {
|
|
7287
|
+
"name": "llama.cpp RPC Backend GRAPH_COMPUTE deserialize_tensor Bounds Bypass RCE",
|
|
7288
|
+
"lesson_date": "2026-05-25",
|
|
7289
|
+
"attack_vector": {
|
|
7290
|
+
"description": "llama.cpp's RPC backend deserializes attacker-controlled tensor pointers without bounds validation (CWE-119 bounds bypass via GRAPH_COMPUTE (buffer=0)), so an unauthenticated TCP client to the RPC server (default port 50052) reads/writes arbitrary memory and achieves code execution.",
|
|
7291
|
+
"privileges_required": "none (NVD AV:N / PR:N) — unauthenticated TCP access to the RPC server",
|
|
7292
|
+
"complexity": "low (NVD AC:L)",
|
|
7293
|
+
"ai_factor": "The abused surface is the distributed-inference RPC backend of the most widely used local LLM runtime. The lesson: the inference RPC backend is an unauthenticated execution boundary that must validate all deserialized tensor bounds on every command path and never be network-exposed. The CVE-2024-42478/42479 -> CVE-2026-34159 sequence shows per-command patching (GET/SET) left GRAPH_COMPUTE exploitable — the fix belongs in deserialize_tensor itself."
|
|
7294
|
+
},
|
|
7295
|
+
"framework_coverage": {
|
|
7296
|
+
"NIST-800-53-SI-2": {
|
|
7297
|
+
"covered": true,
|
|
7298
|
+
"adequate": false,
|
|
7299
|
+
"gap": "Does not track the local-LLM runtime's RPC backend as RCE-bearing, nor that the first fix left the GRAPH_COMPUTE path unpatched."
|
|
7300
|
+
},
|
|
7301
|
+
"NIST-800-53-SC-7": {
|
|
7302
|
+
"covered": true,
|
|
7303
|
+
"adequate": false,
|
|
7304
|
+
"gap": "Does not flag the unauthenticated RPC server (port 50052) as a network-exposed execution surface."
|
|
7305
|
+
},
|
|
7306
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
7307
|
+
"covered": false,
|
|
7308
|
+
"adequate": false,
|
|
7309
|
+
"gap": "No framework requires the inference RPC backend to validate deserialized tensor bounds on every command path."
|
|
7310
|
+
}
|
|
7311
|
+
},
|
|
7312
|
+
"compliance_exposure_score": {
|
|
7313
|
+
"percent_audit_passing_orgs_still_exposed": 74,
|
|
7314
|
+
"basis": "Local-LLM RPC servers are run on trusted-network assumptions and rarely tracked; per-command patches are assumed complete despite the GRAPH_COMPUTE bypass.",
|
|
7315
|
+
"theater_pattern": "incomplete_fix_assumed_complete"
|
|
7316
|
+
},
|
|
7317
|
+
"ai_discovered_zeroday": false,
|
|
7318
|
+
"ai_discovery_source": "human_researcher",
|
|
7319
|
+
"ai_assist_factor": "none",
|
|
7320
|
+
"new_control_requirements": [
|
|
7321
|
+
{
|
|
7322
|
+
"id": "NEW-CTRL-092",
|
|
7323
|
+
"name": "AI-INFERENCE-RPC-BACKEND-HARDENING",
|
|
7324
|
+
"description": "The inference RPC backend (llama.cpp / ggml) must validate all deserialized tensor bounds inside deserialize_tensor itself — every command path (GET_TENSOR, SET_TENSOR, GRAPH_COMPUTE), not per-handler — and must never be exposed to untrusted networks (the RPC server on port 50052 has no authentication; bind to localhost or a trusted segment). Upgrade llama.cpp to b8492 or later. The distinguishing test: send a crafted rpc_tensor with buffer=0 / out-of-range data pointer via GRAPH_COMPUTE to a staging RPC server and confirm it is rejected, not dereferenced.",
|
|
7325
|
+
"evidence": "https://github.com/ggml-org/llama.cpp/security/advisories/GHSA-j8rj-fmpv-wcxw",
|
|
7326
|
+
"gap_closes": [
|
|
7327
|
+
"NIST-800-53-SI-2",
|
|
7328
|
+
"NIST-800-53-SC-7",
|
|
7329
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
7330
|
+
]
|
|
7331
|
+
}
|
|
7332
|
+
],
|
|
7333
|
+
"_auto_imported": false,
|
|
7334
|
+
"_intake_method": "manual-verified-curation"
|
|
7335
|
+
},
|
|
7336
|
+
"CVE-2023-43654": {
|
|
7337
|
+
"name": "PyTorch TorchServe Management API SSRF to Remote Code Execution (ShellTorch)",
|
|
7338
|
+
"lesson_date": "2026-05-25",
|
|
7339
|
+
"attack_vector": {
|
|
7340
|
+
"description": "PyTorch TorchServe Management API SSRF to Remote Code Execution (ShellTorch): CWE-918 SSRF in the management API. In the ShellTorch chain, an unauthenticated, network-exposed TorchServe management API accepts a remote model configuration and parses it with an unsafe YAML deserializer, yielding full remote code execution on the model server.",
|
|
7341
|
+
"privileges_required": "none (NVD PR:N) — default-configured TorchServe is open and unauthenticated",
|
|
7342
|
+
"complexity": "low (NVD AC:L)",
|
|
7343
|
+
"ai_factor": "The abused surface is an AI model server (TorchServe, maintained by Amazon and Meta) and the libraries it bundles. The lesson: a model server's management API is a privileged control plane that must authenticate, bind to loopback, and never deserialize untrusted config unsafely — Oligo found thousands of exposed instances at major organizations, so the default-open posture is the real-world exposure."
|
|
7344
|
+
},
|
|
7345
|
+
"framework_coverage": {
|
|
7346
|
+
"NIST-800-53-IA-2": {
|
|
7347
|
+
"covered": true,
|
|
7348
|
+
"adequate": false,
|
|
7349
|
+
"gap": "Authentication is not enforced on the model server's management API; the default deployment is open and network-exposed."
|
|
7350
|
+
},
|
|
7351
|
+
"NIST-800-53-SI-2": {
|
|
7352
|
+
"covered": true,
|
|
7353
|
+
"adequate": false,
|
|
7354
|
+
"gap": "Does not track AI model servers and their bundled deserialization libraries as managed, RCE-bearing software."
|
|
7355
|
+
},
|
|
7356
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
7357
|
+
"covered": false,
|
|
7358
|
+
"adequate": false,
|
|
7359
|
+
"gap": "No framework treats the model server's management API + config deserialization as an untrusted, RCE-bearing surface."
|
|
7360
|
+
}
|
|
7361
|
+
},
|
|
7362
|
+
"compliance_exposure_score": {
|
|
7363
|
+
"percent_audit_passing_orgs_still_exposed": 74,
|
|
7364
|
+
"basis": "Model servers are deployed with default-open management planes on trusted-network assumptions; bundled YAML/deserialization libraries are not tracked.",
|
|
7365
|
+
"theater_pattern": "default_open_management_plane"
|
|
7366
|
+
},
|
|
7367
|
+
"ai_discovered_zeroday": false,
|
|
7368
|
+
"ai_discovery_source": "human_researcher",
|
|
7369
|
+
"ai_assist_factor": "none",
|
|
7370
|
+
"new_control_requirements": [
|
|
7371
|
+
{
|
|
7372
|
+
"id": "NEW-CTRL-093",
|
|
7373
|
+
"name": "AI-MODEL-SERVER-MANAGEMENT-API-HARDENING",
|
|
7374
|
+
"description": "An AI model server's management API must authenticate every caller, bind to loopback (not all interfaces) by default, restrict model sources to an allow-list (no fetching configs/archives from arbitrary URLs), and parse configuration with safe deserializers (SafeConstructor / no arbitrary type instantiation). Upgrade TorchServe 0.8.2+ and bind the management API to loopback with authentication. The distinguishing test: from an unauthenticated remote client, attempt to register a model from an attacker URL against a staging model server and confirm it is refused and no remote content is fetched or deserialized.",
|
|
7375
|
+
"evidence": "https://github.com/pytorch/serve/security/advisories/GHSA-8fxr-qfr9-p34w",
|
|
7376
|
+
"gap_closes": [
|
|
7377
|
+
"NIST-800-53-IA-2",
|
|
7378
|
+
"NIST-800-53-SI-2",
|
|
7379
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
7380
|
+
]
|
|
7381
|
+
}
|
|
7382
|
+
],
|
|
7383
|
+
"_auto_imported": false,
|
|
7384
|
+
"_intake_method": "manual-verified-curation"
|
|
7385
|
+
},
|
|
7386
|
+
"CVE-2022-1471": {
|
|
7387
|
+
"name": "SnakeYAML Constructor Unsafe Deserialization RCE (ShellTorch chain)",
|
|
7388
|
+
"lesson_date": "2026-05-25",
|
|
7389
|
+
"attack_vector": {
|
|
7390
|
+
"description": "SnakeYAML Constructor Unsafe Deserialization RCE (ShellTorch chain): CWE-502 unsafe YAML deserialization. In the ShellTorch chain, an unauthenticated, network-exposed TorchServe management API accepts a remote model configuration and parses it with an unsafe YAML deserializer, yielding full remote code execution on the model server.",
|
|
7391
|
+
"privileges_required": "none for services parsing untrusted YAML (NVD PR:N; CNA Google PR:L)",
|
|
7392
|
+
"complexity": "low (NVD AC:L)",
|
|
7393
|
+
"ai_factor": "The abused surface is an AI model server (TorchServe, maintained by Amazon and Meta) and the libraries it bundles. The lesson: a model server's management API is a privileged control plane that must authenticate, bind to loopback, and never deserialize untrusted config unsafely — Oligo found thousands of exposed instances at major organizations, so the default-open posture is the real-world exposure."
|
|
7394
|
+
},
|
|
7395
|
+
"framework_coverage": {
|
|
7396
|
+
"NIST-800-53-IA-2": {
|
|
7397
|
+
"covered": true,
|
|
7398
|
+
"adequate": false,
|
|
7399
|
+
"gap": "Authentication is not enforced on the model server's management API; the default deployment is open and network-exposed."
|
|
7400
|
+
},
|
|
7401
|
+
"NIST-800-53-SI-2": {
|
|
7402
|
+
"covered": true,
|
|
7403
|
+
"adequate": false,
|
|
7404
|
+
"gap": "Does not track AI model servers and their bundled deserialization libraries as managed, RCE-bearing software."
|
|
7405
|
+
},
|
|
7406
|
+
"ALL-AI-PIPELINE-INTEGRITY": {
|
|
7407
|
+
"covered": false,
|
|
7408
|
+
"adequate": false,
|
|
7409
|
+
"gap": "No framework treats the model server's management API + config deserialization as an untrusted, RCE-bearing surface."
|
|
7410
|
+
}
|
|
7411
|
+
},
|
|
7412
|
+
"compliance_exposure_score": {
|
|
7413
|
+
"percent_audit_passing_orgs_still_exposed": 70,
|
|
7414
|
+
"basis": "Model servers are deployed with default-open management planes on trusted-network assumptions; bundled YAML/deserialization libraries are not tracked.",
|
|
7415
|
+
"theater_pattern": "default_open_management_plane"
|
|
7416
|
+
},
|
|
7417
|
+
"ai_discovered_zeroday": false,
|
|
7418
|
+
"ai_discovery_source": "human_researcher",
|
|
7419
|
+
"ai_assist_factor": "none",
|
|
7420
|
+
"new_control_requirements": [
|
|
7421
|
+
{
|
|
7422
|
+
"id": "NEW-CTRL-093",
|
|
7423
|
+
"name": "AI-MODEL-SERVER-MANAGEMENT-API-HARDENING",
|
|
7424
|
+
"description": "An AI model server's management API must authenticate every caller, bind to loopback (not all interfaces) by default, restrict model sources to an allow-list (no fetching configs/archives from arbitrary URLs), and parse configuration with safe deserializers (SafeConstructor / no arbitrary type instantiation). Upgrade SnakeYAML 2.0+ (SafeConstructor default) or construct parsers with SafeConstructor. The distinguishing test: from an unauthenticated remote client, attempt to register a model from an attacker URL against a staging model server and confirm it is refused and no remote content is fetched or deserialized.",
|
|
7425
|
+
"evidence": "https://nvd.nist.gov/vuln/detail/CVE-2022-1471",
|
|
7426
|
+
"gap_closes": [
|
|
7427
|
+
"NIST-800-53-IA-2",
|
|
7428
|
+
"NIST-800-53-SI-2",
|
|
7429
|
+
"ALL-AI-PIPELINE-INTEGRITY"
|
|
7430
|
+
]
|
|
7431
|
+
}
|
|
7432
|
+
],
|
|
7433
|
+
"_auto_imported": false,
|
|
7434
|
+
"_intake_method": "manual-verified-curation"
|
|
7435
|
+
},
|
|
7186
7436
|
"CVE-2025-34291": {
|
|
7187
7437
|
"name": "Langflow Account Takeover + RCE (CORS / refresh-token chain)",
|
|
7188
7438
|
"lesson_date": "2026-05-24",
|