@blamejs/exceptd-skills 0.13.82 → 0.13.84

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.
@@ -36,7 +36,10 @@
36
36
  "evidence_cves": [
37
37
  "CVE-2023-48022",
38
38
  "CVE-2024-0132",
39
+ "CVE-2024-42478",
40
+ "CVE-2024-42479",
39
41
  "CVE-2024-50050",
42
+ "CVE-2025-1550",
40
43
  "CVE-2025-23254",
41
44
  "CVE-2025-23266",
42
45
  "CVE-2025-30165",
@@ -45,6 +48,7 @@
45
48
  "CVE-2025-54136",
46
49
  "CVE-2025-60455",
47
50
  "CVE-2025-64496",
51
+ "CVE-2025-8747",
48
52
  "CVE-2026-0766",
49
53
  "CVE-2026-22252",
50
54
  "CVE-2026-22688",
@@ -55,6 +59,7 @@
55
59
  "CVE-2026-30617",
56
60
  "CVE-2026-30624",
57
61
  "CVE-2026-30625",
62
+ "CVE-2026-34159",
58
63
  "CVE-2026-40933"
59
64
  ],
60
65
  "atlas_refs": [
@@ -1366,6 +1371,8 @@
1366
1371
  "CVE-2024-27443",
1367
1372
  "CVE-2024-37079",
1368
1373
  "CVE-2024-42009",
1374
+ "CVE-2024-42478",
1375
+ "CVE-2024-42479",
1369
1376
  "CVE-2024-43468",
1370
1377
  "CVE-2024-50050",
1371
1378
  "CVE-2024-54085",
@@ -1385,6 +1392,7 @@
1385
1392
  "CVE-2025-14174",
1386
1393
  "CVE-2025-14611",
1387
1394
  "CVE-2025-14733",
1395
+ "CVE-2025-1550",
1388
1396
  "CVE-2025-15556",
1389
1397
  "CVE-2025-20281",
1390
1398
  "CVE-2025-20333",
@@ -1511,6 +1519,7 @@
1511
1519
  "CVE-2025-7775",
1512
1520
  "CVE-2025-8088",
1513
1521
  "CVE-2025-8110",
1522
+ "CVE-2025-8747",
1514
1523
  "CVE-2025-8875",
1515
1524
  "CVE-2025-8876",
1516
1525
  "CVE-2025-9242",
@@ -1561,6 +1570,7 @@
1561
1570
  "CVE-2026-32201",
1562
1571
  "CVE-2026-33017",
1563
1572
  "CVE-2026-33634",
1573
+ "CVE-2026-34159",
1564
1574
  "CVE-2026-34197",
1565
1575
  "CVE-2026-34621",
1566
1576
  "CVE-2026-34926",
@@ -1759,10 +1769,13 @@
1759
1769
  "evidence_cves": [
1760
1770
  "CVE-2023-48022",
1761
1771
  "CVE-2024-0132",
1772
+ "CVE-2024-42478",
1773
+ "CVE-2024-42479",
1762
1774
  "CVE-2024-50050",
1763
1775
  "CVE-2025-10585",
1764
1776
  "CVE-2025-1094",
1765
1777
  "CVE-2025-14174",
1778
+ "CVE-2025-1550",
1766
1779
  "CVE-2025-23254",
1767
1780
  "CVE-2025-23266",
1768
1781
  "CVE-2025-30165",
@@ -1773,6 +1786,7 @@
1773
1786
  "CVE-2025-54136",
1774
1787
  "CVE-2025-60455",
1775
1788
  "CVE-2025-64496",
1789
+ "CVE-2025-8747",
1776
1790
  "CVE-2026-0766",
1777
1791
  "CVE-2026-22252",
1778
1792
  "CVE-2026-22688",
@@ -1785,6 +1799,7 @@
1785
1799
  "CVE-2026-30624",
1786
1800
  "CVE-2026-30625",
1787
1801
  "CVE-2026-31431",
1802
+ "CVE-2026-34159",
1788
1803
  "CVE-2026-34926",
1789
1804
  "CVE-2026-39884",
1790
1805
  "CVE-2026-40933",
@@ -2120,8 +2135,11 @@
2120
2135
  "CVE-2023-48022",
2121
2136
  "CVE-2024-0132",
2122
2137
  "CVE-2024-40635",
2138
+ "CVE-2024-42478",
2139
+ "CVE-2024-42479",
2123
2140
  "CVE-2025-23266",
2124
2141
  "CVE-2025-53767",
2142
+ "CVE-2026-34159",
2125
2143
  "CVE-2026-42897"
2126
2144
  ],
2127
2145
  "atlas_refs": [
@@ -2192,11 +2210,13 @@
2192
2210
  "CVE-2024-50050",
2193
2211
  "CVE-2025-0133",
2194
2212
  "CVE-2025-1094",
2213
+ "CVE-2025-1550",
2195
2214
  "CVE-2025-23254",
2196
2215
  "CVE-2025-30165",
2197
2216
  "CVE-2025-60455",
2198
2217
  "CVE-2025-64496",
2199
2218
  "CVE-2025-6965",
2219
+ "CVE-2025-8747",
2200
2220
  "CVE-2026-0766",
2201
2221
  "CVE-2026-39884",
2202
2222
  "CVE-2026-42208",
@@ -2343,6 +2363,8 @@
2343
2363
  "CVE-2024-27443",
2344
2364
  "CVE-2024-37079",
2345
2365
  "CVE-2024-42009",
2366
+ "CVE-2024-42478",
2367
+ "CVE-2024-42479",
2346
2368
  "CVE-2024-43468",
2347
2369
  "CVE-2024-50050",
2348
2370
  "CVE-2024-54085",
@@ -2363,6 +2385,7 @@
2363
2385
  "CVE-2025-14174",
2364
2386
  "CVE-2025-14611",
2365
2387
  "CVE-2025-14733",
2388
+ "CVE-2025-1550",
2366
2389
  "CVE-2025-15556",
2367
2390
  "CVE-2025-20281",
2368
2391
  "CVE-2025-20333",
@@ -2494,6 +2517,7 @@
2494
2517
  "CVE-2025-7775",
2495
2518
  "CVE-2025-8088",
2496
2519
  "CVE-2025-8110",
2520
+ "CVE-2025-8747",
2497
2521
  "CVE-2025-8875",
2498
2522
  "CVE-2025-8876",
2499
2523
  "CVE-2025-9242",
@@ -2548,6 +2572,7 @@
2548
2572
  "CVE-2026-33017",
2549
2573
  "CVE-2026-33634",
2550
2574
  "CVE-2026-33825",
2575
+ "CVE-2026-34159",
2551
2576
  "CVE-2026-34197",
2552
2577
  "CVE-2026-34621",
2553
2578
  "CVE-2026-34926",
@@ -4811,7 +4836,10 @@
4811
4836
  "CVE-2023-48022",
4812
4837
  "CVE-2024-0132",
4813
4838
  "CVE-2024-21762",
4839
+ "CVE-2024-42478",
4840
+ "CVE-2024-42479",
4814
4841
  "CVE-2024-50050",
4842
+ "CVE-2025-1550",
4815
4843
  "CVE-2025-23254",
4816
4844
  "CVE-2025-23266",
4817
4845
  "CVE-2025-30165",
@@ -4820,6 +4848,7 @@
4820
4848
  "CVE-2025-54136",
4821
4849
  "CVE-2025-60455",
4822
4850
  "CVE-2025-64496",
4851
+ "CVE-2025-8747",
4823
4852
  "CVE-2026-0300",
4824
4853
  "CVE-2026-0766",
4825
4854
  "CVE-2026-20182",
@@ -4833,6 +4862,7 @@
4833
4862
  "CVE-2026-30617",
4834
4863
  "CVE-2026-30624",
4835
4864
  "CVE-2026-30625",
4865
+ "CVE-2026-34159",
4836
4866
  "CVE-2026-34926",
4837
4867
  "CVE-2026-40933",
4838
4868
  "CVE-2026-41091",
@@ -5329,7 +5359,10 @@
5329
5359
  "evidence_cves": [
5330
5360
  "CVE-2024-0132",
5331
5361
  "CVE-2024-21762",
5362
+ "CVE-2024-42478",
5363
+ "CVE-2024-42479",
5332
5364
  "CVE-2024-50050",
5365
+ "CVE-2025-1550",
5333
5366
  "CVE-2025-23254",
5334
5367
  "CVE-2025-23266",
5335
5368
  "CVE-2025-30165",
@@ -5338,6 +5371,7 @@
5338
5371
  "CVE-2025-54136",
5339
5372
  "CVE-2025-60455",
5340
5373
  "CVE-2025-64496",
5374
+ "CVE-2025-8747",
5341
5375
  "CVE-2026-0766",
5342
5376
  "CVE-2026-22252",
5343
5377
  "CVE-2026-22688",
@@ -5347,6 +5381,7 @@
5347
5381
  "CVE-2026-30617",
5348
5382
  "CVE-2026-30624",
5349
5383
  "CVE-2026-30625",
5384
+ "CVE-2026-34159",
5350
5385
  "CVE-2026-34926",
5351
5386
  "CVE-2026-40933",
5352
5387
  "CVE-2026-41091",
@@ -5388,7 +5423,10 @@
5388
5423
  "CVE-2023-48022",
5389
5424
  "CVE-2024-0132",
5390
5425
  "CVE-2024-21762",
5426
+ "CVE-2024-42478",
5427
+ "CVE-2024-42479",
5391
5428
  "CVE-2024-50050",
5429
+ "CVE-2025-1550",
5392
5430
  "CVE-2025-23254",
5393
5431
  "CVE-2025-23266",
5394
5432
  "CVE-2025-30165",
@@ -5397,6 +5435,7 @@
5397
5435
  "CVE-2025-54136",
5398
5436
  "CVE-2025-60455",
5399
5437
  "CVE-2025-64496",
5438
+ "CVE-2025-8747",
5400
5439
  "CVE-2026-0766",
5401
5440
  "CVE-2026-22252",
5402
5441
  "CVE-2026-22688",
@@ -5408,6 +5447,7 @@
5408
5447
  "CVE-2026-30617",
5409
5448
  "CVE-2026-30624",
5410
5449
  "CVE-2026-30625",
5450
+ "CVE-2026-34159",
5411
5451
  "CVE-2026-34926",
5412
5452
  "CVE-2026-40933",
5413
5453
  "CVE-2026-41091",
@@ -7083,6 +7083,256 @@
7083
7083
  "_auto_imported": false,
7084
7084
  "_intake_method": "manual-verified-curation"
7085
7085
  },
7086
+ "CVE-2025-1550": {
7087
+ "name": "Keras .keras Model Deserialization Arbitrary Code Execution",
7088
+ "lesson_date": "2026-05-25",
7089
+ "attack_vector": {
7090
+ "description": "Keras's .keras model parser uses importlib on names from the model archive, so a crafted model executes arbitrary Python at load time (CWE-94) — no Lambda layer or custom object, no need to call the model.",
7091
+ "privileges_required": "none beyond getting a victim to load an untrusted .keras model",
7092
+ "complexity": "low",
7093
+ "ai_factor": "The abused surface is the ML model file format itself — the canonical AI supply-chain risk: an untrusted model artifact is executable code at load time. The lesson, sharpened by the CVE-2025-1550 -> CVE-2025-8747 sequence, is that model artifacts must be treated as untrusted code (provenance, scanning, safe formats like safetensors), and a partial mitigation such as safe_mode is necessary-but-insufficient when it can be bypassed."
7094
+ },
7095
+ "framework_coverage": {
7096
+ "NIST-800-53-SI-2": {
7097
+ "covered": true,
7098
+ "adequate": false,
7099
+ "gap": "Does not track ML frameworks' model-loading paths as RCE-bearing, nor that the first fix (safe_mode) was bypassable."
7100
+ },
7101
+ "NIST-800-53-SI-10": {
7102
+ "covered": true,
7103
+ "adequate": false,
7104
+ "gap": "Model artifacts are treated as data, but Keras executes code while parsing them; no validation is applied to the artifact."
7105
+ },
7106
+ "ALL-AI-PIPELINE-INTEGRITY": {
7107
+ "covered": false,
7108
+ "adequate": false,
7109
+ "gap": "No framework treats an ML model file as untrusted executable input; loading one from an untrusted source is RCE."
7110
+ }
7111
+ },
7112
+ "compliance_exposure_score": {
7113
+ "percent_audit_passing_orgs_still_exposed": 72,
7114
+ "basis": "ML pipelines pull models from hubs and user uploads and treat them as data; safe_mode is assumed sufficient despite the documented bypass.",
7115
+ "theater_pattern": "model_artifact_trust"
7116
+ },
7117
+ "ai_discovered_zeroday": false,
7118
+ "ai_discovery_source": "human_researcher",
7119
+ "ai_assist_factor": "none",
7120
+ "new_control_requirements": [
7121
+ {
7122
+ "id": "NEW-CTRL-091",
7123
+ "name": "UNTRUSTED-MODEL-ARTIFACT-LOADING",
7124
+ "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.",
7125
+ "evidence": "https://nvd.nist.gov/vuln/detail/CVE-2025-1550",
7126
+ "gap_closes": [
7127
+ "NIST-800-53-SI-2",
7128
+ "NIST-800-53-SI-10",
7129
+ "ALL-AI-PIPELINE-INTEGRITY"
7130
+ ]
7131
+ }
7132
+ ],
7133
+ "_auto_imported": false,
7134
+ "_intake_method": "manual-verified-curation"
7135
+ },
7136
+ "CVE-2025-8747": {
7137
+ "name": "Keras safe_mode Bypass Model Deserialization Code Execution",
7138
+ "lesson_date": "2026-05-25",
7139
+ "attack_vector": {
7140
+ "description": "The safe_mode mitigation added for CVE-2025-1550 is bypassable through Keras 3.10.0: Model.load_model still lets a crafted .keras archive execute code via arguments to built-in modules (CWE-502), even with safe_mode enabled.",
7141
+ "privileges_required": "none beyond getting a victim to load an untrusted .keras model",
7142
+ "complexity": "low",
7143
+ "ai_factor": "The abused surface is the ML model file format itself — the canonical AI supply-chain risk: an untrusted model artifact is executable code at load time. The lesson, sharpened by the CVE-2025-1550 -> CVE-2025-8747 sequence, is that model artifacts must be treated as untrusted code (provenance, scanning, safe formats like safetensors), and a partial mitigation such as safe_mode is necessary-but-insufficient when it can be bypassed."
7144
+ },
7145
+ "framework_coverage": {
7146
+ "NIST-800-53-SI-2": {
7147
+ "covered": true,
7148
+ "adequate": false,
7149
+ "gap": "Does not track ML frameworks' model-loading paths as RCE-bearing, nor that the first fix (safe_mode) was bypassable."
7150
+ },
7151
+ "NIST-800-53-SI-10": {
7152
+ "covered": true,
7153
+ "adequate": false,
7154
+ "gap": "A mitigation (safe_mode) is asserted as the control, but it is bypassable; the artifact is still deserialized unsafely."
7155
+ },
7156
+ "ALL-AI-PIPELINE-INTEGRITY": {
7157
+ "covered": false,
7158
+ "adequate": false,
7159
+ "gap": "No framework treats an ML model file as untrusted executable input; loading one from an untrusted source is RCE."
7160
+ }
7161
+ },
7162
+ "compliance_exposure_score": {
7163
+ "percent_audit_passing_orgs_still_exposed": 74,
7164
+ "basis": "ML pipelines pull models from hubs and user uploads and treat them as data; safe_mode is assumed sufficient despite the documented bypass.",
7165
+ "theater_pattern": "incomplete_fix_assumed_complete"
7166
+ },
7167
+ "ai_discovered_zeroday": false,
7168
+ "ai_discovery_source": "human_researcher",
7169
+ "ai_assist_factor": "none",
7170
+ "new_control_requirements": [
7171
+ {
7172
+ "id": "NEW-CTRL-091",
7173
+ "name": "UNTRUSTED-MODEL-ARTIFACT-LOADING",
7174
+ "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.",
7175
+ "evidence": "https://github.com/advisories/GHSA-c9rc-mg46-23w3",
7176
+ "gap_closes": [
7177
+ "NIST-800-53-SI-2",
7178
+ "NIST-800-53-SI-10",
7179
+ "ALL-AI-PIPELINE-INTEGRITY"
7180
+ ]
7181
+ }
7182
+ ],
7183
+ "_auto_imported": false,
7184
+ "_intake_method": "manual-verified-curation"
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
+ },
7086
7336
  "CVE-2025-34291": {
7087
7337
  "name": "Langflow Account Takeover + RCE (CORS / refresh-token chain)",
7088
7338
  "lesson_date": "2026-05-24",