@blamejs/exceptd-skills 0.12.13 → 0.12.15

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.
Files changed (87) hide show
  1. package/CHANGELOG.md +150 -0
  2. package/bin/exceptd.js +147 -9
  3. package/data/_indexes/_meta.json +45 -45
  4. package/data/_indexes/activity-feed.json +4 -4
  5. package/data/_indexes/catalog-summaries.json +29 -29
  6. package/data/_indexes/chains.json +3238 -3210
  7. package/data/_indexes/frequency.json +3 -0
  8. package/data/_indexes/jurisdiction-map.json +5 -3
  9. package/data/_indexes/section-offsets.json +712 -685
  10. package/data/_indexes/theater-fingerprints.json +1 -1
  11. package/data/_indexes/token-budget.json +355 -340
  12. package/data/atlas-ttps.json +144 -129
  13. package/data/attack-techniques.json +319 -76
  14. package/data/cve-catalog.json +515 -475
  15. package/data/cwe-catalog.json +1081 -759
  16. package/data/exploit-availability.json +63 -15
  17. package/data/framework-control-gaps.json +867 -843
  18. package/data/rfc-references.json +276 -276
  19. package/keys/EXPECTED_FINGERPRINT +1 -0
  20. package/lib/auto-discovery.js +21 -4
  21. package/lib/cross-ref-api.js +39 -6
  22. package/lib/cve-curation.js +18 -5
  23. package/lib/lint-skills.js +6 -1
  24. package/lib/playbook-runner.js +742 -78
  25. package/lib/refresh-external.js +40 -22
  26. package/lib/refresh-network.js +193 -17
  27. package/lib/scoring.js +20 -7
  28. package/lib/source-ghsa.js +219 -37
  29. package/lib/source-osv.js +381 -122
  30. package/lib/validate-catalog-meta.js +64 -9
  31. package/lib/validate-cve-catalog.js +56 -18
  32. package/lib/validate-indexes.js +88 -37
  33. package/lib/verify.js +72 -0
  34. package/manifest-snapshot.json +1 -1
  35. package/manifest-snapshot.sha256 +1 -0
  36. package/manifest.json +73 -73
  37. package/orchestrator/dispatcher.js +21 -1
  38. package/orchestrator/event-bus.js +52 -8
  39. package/orchestrator/index.js +279 -20
  40. package/orchestrator/pipeline.js +63 -2
  41. package/orchestrator/scanner.js +32 -10
  42. package/orchestrator/scheduler.js +150 -17
  43. package/package.json +3 -1
  44. package/sbom.cdx.json +7 -7
  45. package/scripts/check-manifest-snapshot.js +32 -0
  46. package/scripts/check-sbom-currency.js +65 -3
  47. package/scripts/check-test-coverage.js +142 -19
  48. package/scripts/predeploy.js +83 -39
  49. package/scripts/refresh-manifest-snapshot.js +55 -4
  50. package/scripts/validate-vendor-online.js +169 -0
  51. package/scripts/verify-shipped-tarball.js +106 -3
  52. package/skills/ai-attack-surface/skill.md +18 -10
  53. package/skills/ai-c2-detection/skill.md +7 -2
  54. package/skills/ai-risk-management/skill.md +5 -4
  55. package/skills/api-security/skill.md +3 -3
  56. package/skills/attack-surface-pentest/skill.md +5 -5
  57. package/skills/cloud-security/skill.md +1 -1
  58. package/skills/compliance-theater/skill.md +8 -8
  59. package/skills/container-runtime-security/skill.md +1 -1
  60. package/skills/dlp-gap-analysis/skill.md +5 -1
  61. package/skills/email-security-anti-phishing/skill.md +1 -1
  62. package/skills/exploit-scoring/skill.md +18 -18
  63. package/skills/framework-gap-analysis/skill.md +6 -6
  64. package/skills/global-grc/skill.md +3 -2
  65. package/skills/identity-assurance/skill.md +2 -2
  66. package/skills/incident-response-playbook/skill.md +4 -4
  67. package/skills/kernel-lpe-triage/skill.md +21 -2
  68. package/skills/mcp-agent-trust/skill.md +17 -10
  69. package/skills/mlops-security/skill.md +2 -1
  70. package/skills/ot-ics-security/skill.md +1 -1
  71. package/skills/policy-exception-gen/skill.md +3 -3
  72. package/skills/pqc-first/skill.md +1 -1
  73. package/skills/rag-pipeline-security/skill.md +7 -3
  74. package/skills/researcher/skill.md +20 -3
  75. package/skills/sector-energy/skill.md +1 -1
  76. package/skills/sector-federal-government/skill.md +1 -1
  77. package/skills/sector-financial/skill.md +3 -3
  78. package/skills/sector-healthcare/skill.md +2 -2
  79. package/skills/security-maturity-tiers/skill.md +7 -7
  80. package/skills/skill-update-loop/skill.md +19 -3
  81. package/skills/supply-chain-integrity/skill.md +1 -1
  82. package/skills/threat-model-currency/skill.md +11 -11
  83. package/skills/threat-modeling-methodology/skill.md +3 -3
  84. package/skills/webapp-security/skill.md +1 -1
  85. package/skills/zeroday-gap-learn/skill.md +51 -7
  86. package/vendor/blamejs/_PROVENANCE.json +4 -1
  87. package/vendor/blamejs/worker-pool.js +38 -0
@@ -19,36 +19,6 @@
19
19
  "note": "Per-entry last_verified governs decay. Skills depending on this catalog must check entry freshness before high-stakes use."
20
20
  }
21
21
  },
22
- "AML.T0043": {
23
- "id": "AML.T0043",
24
- "name": "Craft Adversarial Data",
25
- "tactic": "ML Attack Staging",
26
- "description": "Adversary crafts input data designed to cause a target ML model to produce incorrect outputs. Includes perturbation-based adversarial examples that are visually identical to originals but trigger misclassification.",
27
- "subtechniques": [
28
- "AML.T0043.000 — White-Box Attack (adversary has model access)",
29
- "AML.T0043.001 — Black-Box Attack (transfer-based, query-based)",
30
- "AML.T0043.002 — Physical Attack (adversarial patch, stop sign perturbation)"
31
- ],
32
- "real_world_instances": [
33
- "Deepfake bypass of facial recognition",
34
- "Adversarial audio bypassing voice authentication"
35
- ],
36
- "framework_gap": true,
37
- "framework_gap_detail": "No control in NIST 800-53, ISO 27001, SOC 2, or PCI requires adversarial robustness testing for ML models. SI-3 (malicious code protection) does not contemplate adversarial inputs.",
38
- "controls_that_partially_help": [
39
- "NIST-800-53-SI-3",
40
- "NIST-AI-RMF-MEASURE-2.5"
41
- ],
42
- "controls_that_dont_help": [
43
- "NIST-800-53-AC-2",
44
- "ISO-27001-2022-A.8.28"
45
- ],
46
- "detection": "Model output confidence monitoring; behavioral anomaly on repeated low-confidence outputs from same source",
47
- "exceptd_skills": [
48
- "ai-attack-surface",
49
- "rag-pipeline-security"
50
- ]
51
- },
52
22
  "AML.T0010": {
53
23
  "id": "AML.T0010",
54
24
  "name": "ML Supply Chain Compromise",
@@ -77,7 +47,8 @@
77
47
  "exceptd_skills": [
78
48
  "mcp-agent-trust",
79
49
  "ai-attack-surface"
80
- ]
50
+ ],
51
+ "last_verified": "2026-05-13"
81
52
  },
82
53
  "AML.T0016": {
83
54
  "id": "AML.T0016",
@@ -103,7 +74,8 @@
103
74
  "ai-attack-surface",
104
75
  "ai-c2-detection",
105
76
  "mcp-agent-trust"
106
- ]
77
+ ],
78
+ "last_verified": "2026-05-13"
107
79
  },
108
80
  "AML.T0017": {
109
81
  "id": "AML.T0017",
@@ -131,7 +103,8 @@
131
103
  "exceptd_skills": [
132
104
  "ai-c2-detection",
133
105
  "ai-attack-surface"
134
- ]
106
+ ],
107
+ "last_verified": "2026-05-13"
135
108
  },
136
109
  "AML.T0018": {
137
110
  "id": "AML.T0018",
@@ -160,7 +133,8 @@
160
133
  "ai-attack-surface",
161
134
  "rag-pipeline-security",
162
135
  "skill-update-loop"
163
- ]
136
+ ],
137
+ "last_verified": "2026-05-13"
164
138
  },
165
139
  "AML.T0020": {
166
140
  "id": "AML.T0020",
@@ -188,96 +162,8 @@
188
162
  "exceptd_skills": [
189
163
  "rag-pipeline-security",
190
164
  "ai-attack-surface"
191
- ]
192
- },
193
- "AML.T0051": {
194
- "id": "AML.T0051",
195
- "name": "LLM Prompt Injection",
196
- "tactic": "Execution",
197
- "description": "Adversary injects instructions into an LLM's input that override, supplement, or contradict the original system prompt, causing the model to execute attacker-controlled instructions within the application's authorization context.",
198
- "subtechniques": [
199
- "AML.T0051.000 — Direct Prompt Injection (user-facing input)",
200
- "AML.T0051.001 — Indirect Prompt Injection (injected via retrieved content, documents, web pages)",
201
- "AML.T0051.002 — Jailbreak (override safety guardrails)"
202
- ],
203
- "real_world_instances": [
204
- "CVE-2025-53773 — GitHub Copilot prompt injection RCE via PR description",
205
- "Multiple production AI assistant prompt injection incidents 2025-2026"
206
- ],
207
- "framework_gap": true,
208
- "framework_gap_detail": "No framework has a control for prompt injection as an access control failure vector. The attack uses the AI service account's authorized permissions — from AC-2's perspective, the access is authorized. MITRE ATLAS v5.1.0 documents the technique; no framework has implemented controls. OWASP LLM Top 10 documents the class; it is not incorporated in any compliance framework.",
209
- "controls_that_partially_help": [
210
- "NIST-800-53-AC-2",
211
- "ISO-27001-2022-A.8.28"
212
- ],
213
- "controls_that_dont_help": [
214
- "NIST-800-53-SI-3",
215
- "SOC2-CC6"
216
- ],
217
- "detection": "AI action audit trail — log every tool call with triggering prompt content; alert on AI actions that diverge from user-stated intent; adversarial instruction classifier on external content before model ingestion",
218
- "exceptd_skills": [
219
- "ai-attack-surface",
220
- "mcp-agent-trust",
221
- "rag-pipeline-security"
222
- ]
223
- },
224
- "AML.T0054": {
225
- "id": "AML.T0054",
226
- "name": "LLM Jailbreak",
227
- "tactic": "Defense Evasion",
228
- "description": "Adversary uses prompt manipulation techniques to bypass an LLM's safety guardrails, causing the model to produce content or take actions it would normally refuse. Distinguished from prompt injection by the goal: jailbreaks evade safety filters rather than execute injected code.",
229
- "subtechniques": [
230
- "AML.T0054.000 — Role-play Jailbreak (DAN, persona attacks)",
231
- "AML.T0054.001 — Obfuscation (base64, leetspeak, encoding tricks)",
232
- "AML.T0054.002 — Many-Shot Jailbreak (long context pattern establishment)"
233
165
  ],
234
- "real_world_instances": [
235
- "Production AI assistant jailbreaks enabling policy bypass; AI coding assistant jailbreaks producing malware code"
236
- ],
237
- "framework_gap": true,
238
- "framework_gap_detail": "No framework requires safety guardrail testing for production AI systems. Red teaming for LLM jailbreaks is not a compliance requirement in any major framework. NIST AI RMF recommends but does not require adversarial testing. ISO 42001 (AI management) is not yet widely adopted.",
239
- "controls_that_partially_help": [
240
- "NIST-AI-RMF-GOVERN-1.7"
241
- ],
242
- "controls_that_dont_help": [
243
- "NIST-800-53-SI-3",
244
- "ISO-27001-2022-A.8.28"
245
- ],
246
- "detection": "Content policy violation logging; output safety scoring; alert on repeated refusal-bypass attempts from same user",
247
- "exceptd_skills": [
248
- "ai-attack-surface",
249
- "mcp-agent-trust"
250
- ]
251
- },
252
- "AML.T0096": {
253
- "id": "AML.T0096",
254
- "name": "AI API as Covert C2 Channel",
255
- "tactic": "Command and Control",
256
- "description": "Adversary uses legitimate AI API calls as a covert command-and-control channel. Malware encodes commands in AI API requests and receives instructions via model responses. Traffic is indistinguishable from legitimate AI usage — same endpoints, same TLS, same bearer auth patterns.",
257
- "subtechniques": [
258
- "AML.T0096.000 — Steganographic encoding in AI prompts",
259
- "AML.T0096.001 — LLM response as instruction decoder",
260
- "AML.T0096.002 — Multi-agent covert relay"
261
- ],
262
- "real_world_instances": [
263
- "SesameOp — first documented AI API C2 campaign, 2025. Malware beacons to OpenAI API for encoded instructions.",
264
- "PROMPTFLUX — LLM C2 for real-time evasion code generation: malware queries public LLM APIs for novel AV evasion code on each execution."
265
- ],
266
- "framework_gap": true,
267
- "framework_gap_detail": "Network egress controls (SC-7) do not flag AI API traffic — it is categorically allowed in most organizations. No framework requires monitoring of AI API traffic content. SIEM signatures for AI API C2 patterns do not exist in any standard detection ruleset. SI-3 (malware protection) does not contemplate LLM-querying malware. No framework has a control for AI API query anomaly detection by process identity.",
268
- "controls_that_partially_help": [
269
- "NIST-800-53-SI-4",
270
- "NIST-800-53-SC-7"
271
- ],
272
- "controls_that_dont_help": [
273
- "NIST-800-53-SI-3",
274
- "ISO-27001-2022-A.8.16"
275
- ],
276
- "detection": "Process-level AI API query monitoring; alert on AI API calls from unexpected process identities; query volume anomaly; payload entropy analysis for steganographic encoding",
277
- "exceptd_skills": [
278
- "ai-c2-detection",
279
- "ai-attack-surface"
280
- ]
166
+ "last_verified": "2026-05-13"
281
167
  },
282
168
  "AML.T0024": {
283
169
  "id": "AML.T0024",
@@ -309,7 +195,39 @@
309
195
  "dlp-gap-analysis",
310
196
  "rag-pipeline-security",
311
197
  "ai-attack-surface"
312
- ]
198
+ ],
199
+ "last_verified": "2026-05-13"
200
+ },
201
+ "AML.T0043": {
202
+ "id": "AML.T0043",
203
+ "name": "Craft Adversarial Data",
204
+ "tactic": "ML Attack Staging",
205
+ "description": "Adversary crafts input data designed to cause a target ML model to produce incorrect outputs. Includes perturbation-based adversarial examples that are visually identical to originals but trigger misclassification.",
206
+ "subtechniques": [
207
+ "AML.T0043.000 — White-Box Attack (adversary has model access)",
208
+ "AML.T0043.001 — Black-Box Attack (transfer-based, query-based)",
209
+ "AML.T0043.002 — Physical Attack (adversarial patch, stop sign perturbation)"
210
+ ],
211
+ "real_world_instances": [
212
+ "Deepfake bypass of facial recognition",
213
+ "Adversarial audio bypassing voice authentication"
214
+ ],
215
+ "framework_gap": true,
216
+ "framework_gap_detail": "No control in NIST 800-53, ISO 27001, SOC 2, or PCI requires adversarial robustness testing for ML models. SI-3 (malicious code protection) does not contemplate adversarial inputs.",
217
+ "controls_that_partially_help": [
218
+ "NIST-800-53-SI-3",
219
+ "NIST-AI-RMF-MEASURE-2.5"
220
+ ],
221
+ "controls_that_dont_help": [
222
+ "NIST-800-53-AC-2",
223
+ "ISO-27001-2022-A.8.28"
224
+ ],
225
+ "detection": "Model output confidence monitoring; behavioral anomaly on repeated low-confidence outputs from same source",
226
+ "exceptd_skills": [
227
+ "ai-attack-surface",
228
+ "rag-pipeline-security"
229
+ ],
230
+ "last_verified": "2026-05-13"
313
231
  },
314
232
  "AML.T0044": {
315
233
  "id": "AML.T0044",
@@ -340,7 +258,8 @@
340
258
  "dlp-gap-analysis",
341
259
  "ai-attack-surface",
342
260
  "ai-risk-management"
343
- ]
261
+ ],
262
+ "last_verified": "2026-05-13"
344
263
  },
345
264
  "AML.T0048": {
346
265
  "id": "AML.T0048",
@@ -371,7 +290,40 @@
371
290
  "ai-attack-surface",
372
291
  "rag-pipeline-security",
373
292
  "ai-risk-management"
374
- ]
293
+ ],
294
+ "last_verified": "2026-05-13"
295
+ },
296
+ "AML.T0051": {
297
+ "id": "AML.T0051",
298
+ "name": "LLM Prompt Injection",
299
+ "tactic": "Execution",
300
+ "description": "Adversary injects instructions into an LLM's input that override, supplement, or contradict the original system prompt, causing the model to execute attacker-controlled instructions within the application's authorization context.",
301
+ "subtechniques": [
302
+ "AML.T0051.000 — Direct Prompt Injection (user-facing input)",
303
+ "AML.T0051.001 — Indirect Prompt Injection (injected via retrieved content, documents, web pages)",
304
+ "AML.T0051.002 — Jailbreak (override safety guardrails)"
305
+ ],
306
+ "real_world_instances": [
307
+ "CVE-2025-53773 — GitHub Copilot prompt injection RCE via PR description",
308
+ "Multiple production AI assistant prompt injection incidents 2025-2026"
309
+ ],
310
+ "framework_gap": true,
311
+ "framework_gap_detail": "No framework has a control for prompt injection as an access control failure vector. The attack uses the AI service account's authorized permissions — from AC-2's perspective, the access is authorized. MITRE ATLAS v5.1.0 documents the technique; no framework has implemented controls. OWASP LLM Top 10 documents the class; it is not incorporated in any compliance framework.",
312
+ "controls_that_partially_help": [
313
+ "NIST-800-53-AC-2",
314
+ "ISO-27001-2022-A.8.28"
315
+ ],
316
+ "controls_that_dont_help": [
317
+ "NIST-800-53-SI-3",
318
+ "SOC2-CC6"
319
+ ],
320
+ "detection": "AI action audit trail — log every tool call with triggering prompt content; alert on AI actions that diverge from user-stated intent; adversarial instruction classifier on external content before model ingestion",
321
+ "exceptd_skills": [
322
+ "ai-attack-surface",
323
+ "mcp-agent-trust",
324
+ "rag-pipeline-security"
325
+ ],
326
+ "last_verified": "2026-05-13"
375
327
  },
376
328
  "AML.T0053": {
377
329
  "id": "AML.T0053",
@@ -401,7 +353,37 @@
401
353
  "exceptd_skills": [
402
354
  "mcp-agent-trust",
403
355
  "ai-attack-surface"
404
- ]
356
+ ],
357
+ "last_verified": "2026-05-13"
358
+ },
359
+ "AML.T0054": {
360
+ "id": "AML.T0054",
361
+ "name": "LLM Jailbreak",
362
+ "tactic": "Defense Evasion",
363
+ "description": "Adversary uses prompt manipulation techniques to bypass an LLM's safety guardrails, causing the model to produce content or take actions it would normally refuse. Distinguished from prompt injection by the goal: jailbreaks evade safety filters rather than execute injected code.",
364
+ "subtechniques": [
365
+ "AML.T0054.000 — Role-play Jailbreak (DAN, persona attacks)",
366
+ "AML.T0054.001 — Obfuscation (base64, leetspeak, encoding tricks)",
367
+ "AML.T0054.002 — Many-Shot Jailbreak (long context pattern establishment)"
368
+ ],
369
+ "real_world_instances": [
370
+ "Production AI assistant jailbreaks enabling policy bypass; AI coding assistant jailbreaks producing malware code"
371
+ ],
372
+ "framework_gap": true,
373
+ "framework_gap_detail": "No framework requires safety guardrail testing for production AI systems. Red teaming for LLM jailbreaks is not a compliance requirement in any major framework. NIST AI RMF recommends but does not require adversarial testing. ISO 42001 (AI management) is not yet widely adopted.",
374
+ "controls_that_partially_help": [
375
+ "NIST-AI-RMF-GOVERN-1.7"
376
+ ],
377
+ "controls_that_dont_help": [
378
+ "NIST-800-53-SI-3",
379
+ "ISO-27001-2022-A.8.28"
380
+ ],
381
+ "detection": "Content policy violation logging; output safety scoring; alert on repeated refusal-bypass attempts from same user",
382
+ "exceptd_skills": [
383
+ "ai-attack-surface",
384
+ "mcp-agent-trust"
385
+ ],
386
+ "last_verified": "2026-05-13"
405
387
  },
406
388
  "AML.T0055": {
407
389
  "id": "AML.T0055",
@@ -432,7 +414,8 @@
432
414
  "dlp-gap-analysis",
433
415
  "mcp-agent-trust",
434
416
  "rag-pipeline-security"
435
- ]
417
+ ],
418
+ "last_verified": "2026-05-13"
436
419
  },
437
420
  "AML.T0057": {
438
421
  "id": "AML.T0057",
@@ -465,6 +448,38 @@
465
448
  "rag-pipeline-security",
466
449
  "ai-attack-surface",
467
450
  "dlp-gap-analysis"
468
- ]
451
+ ],
452
+ "last_verified": "2026-05-13"
453
+ },
454
+ "AML.T0096": {
455
+ "id": "AML.T0096",
456
+ "name": "AI API as Covert C2 Channel",
457
+ "tactic": "Command and Control",
458
+ "description": "Adversary uses legitimate AI API calls as a covert command-and-control channel. Malware encodes commands in AI API requests and receives instructions via model responses. Traffic is indistinguishable from legitimate AI usage — same endpoints, same TLS, same bearer auth patterns.",
459
+ "subtechniques": [
460
+ "AML.T0096.000 — Steganographic encoding in AI prompts",
461
+ "AML.T0096.001 — LLM response as instruction decoder",
462
+ "AML.T0096.002 — Multi-agent covert relay"
463
+ ],
464
+ "real_world_instances": [
465
+ "SesameOp — first documented AI API C2 campaign, 2025. Malware beacons to OpenAI API for encoded instructions.",
466
+ "PROMPTFLUX — LLM C2 for real-time evasion code generation: malware queries public LLM APIs for novel AV evasion code on each execution."
467
+ ],
468
+ "framework_gap": true,
469
+ "framework_gap_detail": "Network egress controls (SC-7) do not flag AI API traffic — it is categorically allowed in most organizations. No framework requires monitoring of AI API traffic content. SIEM signatures for AI API C2 patterns do not exist in any standard detection ruleset. SI-3 (malware protection) does not contemplate LLM-querying malware. No framework has a control for AI API query anomaly detection by process identity.",
470
+ "controls_that_partially_help": [
471
+ "NIST-800-53-SI-4",
472
+ "NIST-800-53-SC-7"
473
+ ],
474
+ "controls_that_dont_help": [
475
+ "NIST-800-53-SI-3",
476
+ "ISO-27001-2022-A.8.16"
477
+ ],
478
+ "detection": "Process-level AI API query monitoring; alert on AI API calls from unexpected process identities; query volume anomaly; payload entropy analysis for steganographic encoding",
479
+ "exceptd_skills": [
480
+ "ai-c2-detection",
481
+ "ai-attack-surface"
482
+ ],
483
+ "last_verified": "2026-05-13"
469
484
  }
470
485
  }