@blamejs/exceptd-skills 0.16.24 → 0.16.28

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 (66) hide show
  1. package/AGENTS.md +5 -5
  2. package/ARCHITECTURE.md +3 -3
  3. package/CHANGELOG.md +18 -0
  4. package/CONTEXT.md +2 -2
  5. package/README.md +5 -5
  6. package/agents/threat-researcher.md +2 -2
  7. package/data/_indexes/_meta.json +39 -39
  8. package/data/_indexes/activity-feed.json +240 -240
  9. package/data/_indexes/catalog-summaries.json +3 -3
  10. package/data/_indexes/currency.json +64 -64
  11. package/data/_indexes/recipes.json +1 -1
  12. package/data/_indexes/section-offsets.json +510 -510
  13. package/data/_indexes/summary-cards.json +33 -33
  14. package/data/_indexes/token-budget.json +200 -200
  15. package/data/atlas-ttps.json +7 -7
  16. package/data/attack-techniques.json +5 -5
  17. package/data/framework-control-gaps.json +3 -3
  18. package/lib/auto-discovery.js +7 -9
  19. package/lib/cvss.js +108 -0
  20. package/lib/prefetch.js +97 -5
  21. package/lib/refresh-external.js +62 -26
  22. package/lib/schemas/manifest.schema.json +1 -1
  23. package/lib/schemas/skill-frontmatter.schema.json +1 -1
  24. package/lib/version-pins.js +3 -3
  25. package/manifest-snapshot.json +2 -2
  26. package/manifest-snapshot.sha256 +1 -1
  27. package/manifest.json +124 -124
  28. package/package.json +1 -1
  29. package/sbom.cdx.json +133 -118
  30. package/scripts/builders/catalog-summaries.js +1 -1
  31. package/scripts/builders/recipes.js +1 -1
  32. package/scripts/run-e2e-scenarios.js +48 -17
  33. package/skills/age-gates-child-safety/skill.md +3 -3
  34. package/skills/ai-attack-surface/skill.md +4 -4
  35. package/skills/ai-c2-detection/skill.md +5 -5
  36. package/skills/api-security/skill.md +2 -2
  37. package/skills/attack-surface-pentest/skill.md +4 -4
  38. package/skills/cloud-security/skill.md +3 -3
  39. package/skills/compliance-theater/skill.md +3 -3
  40. package/skills/container-runtime-security/skill.md +3 -3
  41. package/skills/coordinated-vuln-disclosure/skill.md +2 -2
  42. package/skills/defensive-countermeasure-mapping/skill.md +3 -3
  43. package/skills/dlp-gap-analysis/skill.md +5 -5
  44. package/skills/exploit-scoring/skill.md +2 -2
  45. package/skills/framework-gap-analysis/skill.md +4 -4
  46. package/skills/fuzz-testing-strategy/skill.md +2 -2
  47. package/skills/incident-response-playbook/skill.md +3 -3
  48. package/skills/mcp-agent-trust/skill.md +2 -2
  49. package/skills/mlops-security/skill.md +3 -3
  50. package/skills/ot-ics-security/skill.md +3 -3
  51. package/skills/policy-exception-gen/skill.md +3 -3
  52. package/skills/pqc-first/skill.md +2 -2
  53. package/skills/rag-pipeline-security/skill.md +4 -4
  54. package/skills/ransomware-response/skill.md +2 -2
  55. package/skills/sector-energy/skill.md +2 -2
  56. package/skills/sector-federal-government/skill.md +2 -2
  57. package/skills/sector-financial/skill.md +4 -4
  58. package/skills/sector-healthcare/skill.md +3 -3
  59. package/skills/security-maturity-tiers/skill.md +1 -1
  60. package/skills/skill-update-loop/skill.md +6 -6
  61. package/skills/supply-chain-integrity/skill.md +2 -2
  62. package/skills/threat-model-currency/skill.md +8 -8
  63. package/skills/threat-modeling-methodology/skill.md +2 -2
  64. package/skills/webapp-security/skill.md +2 -2
  65. package/skills/zeroday-gap-learn/skill.md +3 -3
  66. package/sources/validators/cve-validator.js +12 -13
@@ -18,7 +18,7 @@ const path = require("path");
18
18
  const CATALOG_PURPOSES = {
19
19
  "cve-catalog.json": "Per-CVE record (CVSS, EPSS, CISA KEV, RWEP, AI-discovery, vendor advisories, framework gaps, ATLAS/ATT&CK mappings). Cross-validated against NVD + CISA KEV + FIRST EPSS via validate-cves.",
20
20
  "cwe-catalog.json": "MITRE CWE entries used by the project (subset with skill citations), with severity hint and category. Pinned to a CWE catalog version.",
21
- "atlas-ttps.json": "MITRE ATLAS TTPs (AML.T0xxx) cited by skills, with tactic, name, description. Pinned to ATLAS v5.6.0 (May 2026).",
21
+ "atlas-ttps.json": "MITRE ATLAS TTPs (AML.T0xxx) cited by skills, with tactic, name, description. Pinned to ATLAS v2026.05 (May 2026).",
22
22
  "d3fend-catalog.json": "MITRE D3FEND countermeasures (D3-xxx) keyed by id, with tactic + name. Pinned to D3FEND v1.3.0 release.",
23
23
  "framework-control-gaps.json": "Per-control framework gap declarations: SI-2, A.8.8, PCI 6.3.3, etc. Each entry names the control, the lag, the evidence CVE, and remediation guidance.",
24
24
  "global-frameworks.json": "Multi-jurisdiction framework registry: per-jurisdiction applicable frameworks × patch_sla / notification_sla / critical_controls / framework_gaps (jurisdiction count is reported by entry_count, not duplicated here). Cross-cutting authority for jurisdiction-clocks index.",
@@ -21,7 +21,7 @@ const RECIPES = [
21
21
  when_to_use: "Before scoping or executing a red-team engagement against a model, agentic system, or AI feature.",
22
22
  typical_jurisdictions: ["US", "EU", "UK", "GLOBAL"],
23
23
  steps: [
24
- { skill: "ai-attack-surface", why: "Comprehensive attack-surface inventory mapped to ATLAS v5.6.0 with gap flags." },
24
+ { skill: "ai-attack-surface", why: "Comprehensive attack-surface inventory mapped to ATLAS v2026.05 with gap flags." },
25
25
  { skill: "ai-c2-detection", why: "Detection coverage for AI-as-C2 (PROMPTFLUX / SesameOp / AI-API egress) before testing." },
26
26
  { skill: "mcp-agent-trust", why: "MCP server trust boundary for the engineering toolchain side of the surface." },
27
27
  { skill: "rag-pipeline-security", why: "RAG ingestion provenance + prompt-injection chain coverage." },
@@ -110,6 +110,47 @@ function tryParseJson(s) {
110
110
  return null;
111
111
  }
112
112
 
113
+ // Evaluate a spawnSync result against a scenario's expectations. Pure: takes
114
+ // the raw spawnSync result so the failure logic is unit-testable without
115
+ // spawning a process. Surfaces spawn-level failures (timeout/launch error)
116
+ // that res.status alone hides, and refuses to pass a scenario that binds no
117
+ // assertion.
118
+ function evaluateScenario(scenario, expect, res) {
119
+ const stdout = res.stdout || "";
120
+ const stderr = res.stderr || "";
121
+ const status = res.status;
122
+ const body = tryParseJson(stdout);
123
+ const failures = [];
124
+
125
+ // spawnSync failure channels: a timeout sets res.error (ETIMEDOUT) +
126
+ // res.signal 'SIGTERM' with status null; a launch failure (ENOENT/EACCES)
127
+ // sets res.error with status null. Reading only res.status lets a killed-
128
+ // or-never-launched run masquerade as a plain non-zero exit or a JSON-parse
129
+ // failure, hiding the real cause.
130
+ if (res.error) failures.push(`spawn error: ${res.error.code || res.error.message}`);
131
+ if (res.signal) failures.push(`killed by signal ${res.signal}${res.signal === "SIGTERM" ? " (likely the 60s timeout)" : ""}`);
132
+
133
+ // Assertion floor: every scenario must bind at least one positive check.
134
+ // Without an expect_exit or a json_path_* matcher, both gates below are
135
+ // skipped and the scenario would pass for ANY CLI behavior, including a
136
+ // crash. (stderr_must_not_match is a negative guard and cannot bind
137
+ // behavior on its own, so it does not satisfy the floor.)
138
+ const hasExitAssertion = typeof scenario.expect_exit === "number";
139
+ const hasJsonAssertion = !!(expect.json_path_equals || expect.json_path_present || expect.json_path_min || expect.json_path_match);
140
+ if (!hasExitAssertion && !hasJsonAssertion) {
141
+ failures.push("scenario has no binding assertion (set expect_exit or an expect.json_path_* matcher) — refusing to pass vacuously");
142
+ }
143
+
144
+ if (hasExitAssertion && status !== scenario.expect_exit) {
145
+ failures.push(`exit: want ${scenario.expect_exit}, got ${status}`);
146
+ }
147
+ if (!body && hasJsonAssertion) {
148
+ failures.push(`stdout did not parse as JSON; first 200 chars: ${stdout.slice(0, 200)}`);
149
+ }
150
+ if (body) failures.push(...diffExpect(body, expect, { stdout, stderr, status }));
151
+ return failures;
152
+ }
153
+
113
154
  function runScenario(scenarioPath) {
114
155
  const name = path.basename(scenarioPath);
115
156
  const scenarioFile = path.join(scenarioPath, "scenario.json");
@@ -165,28 +206,16 @@ function runScenario(scenarioPath) {
165
206
  timeout: 60000,
166
207
  });
167
208
 
168
- const stdout = res.stdout || "";
169
- const stderr = res.stderr || "";
170
- const status = res.status;
171
- const body = tryParseJson(stdout);
172
-
173
- const failures = [];
174
- if (typeof scenario.expect_exit === "number" && status !== scenario.expect_exit) {
175
- failures.push(`exit: want ${scenario.expect_exit}, got ${status}`);
176
- }
177
- if (!body && (expect.json_path_equals || expect.json_path_present || expect.json_path_min || expect.json_path_match)) {
178
- failures.push(`stdout did not parse as JSON; first 200 chars: ${stdout.slice(0, 200)}`);
179
- }
180
- if (body) failures.push(...diffExpect(body, expect, { stdout, stderr, status }));
209
+ const failures = evaluateScenario(scenario, expect, res);
181
210
 
182
211
  return {
183
212
  name,
184
213
  description: scenario.description || "",
185
214
  ok: failures.length === 0,
186
- exit_status: status,
215
+ exit_status: res.status,
187
216
  failures,
188
- stdout_preview: stdout.slice(0, 200),
189
- stderr_preview: stderr.slice(0, 200),
217
+ stdout_preview: (res.stdout || "").slice(0, 200),
218
+ stderr_preview: (res.stderr || "").slice(0, 200),
190
219
  };
191
220
  } finally {
192
221
  fs.rmSync(work, { recursive: true, force: true });
@@ -237,4 +266,6 @@ function main() {
237
266
  process.exit(failed.length === 0 ? 0 : 1);
238
267
  }
239
268
 
240
- main();
269
+ module.exports = { evaluateScenario, diffExpect, runScenario };
270
+
271
+ if (require.main === module) main();
@@ -58,7 +58,7 @@ forward_watch:
58
58
  - AI product age policy enforcement — Character.ai litigation (2024 child-suicide complaint) testing duty-of-care for AI companion apps; ChatGPT / Claude / Gemini under-13 / under-18 enforcement evolving via FTC + state AG actions
59
59
  - France SREN (Securing and Regulating the Digital Space) Act 2024 — ARCOM age-verification referential for adult content services; double-anonymity model under deployment
60
60
  - US state adult-site age-verification laws — 19+ states by mid-2026 (TX HB 18 upheld by SCOTUS June 2025 in Free Speech Coalition v. Paxton); track ongoing challenges in remaining states
61
- last_threat_review: "2026-05-11"
61
+ last_threat_review: "2026-06-10"
62
62
  discovery_mode: "standalone" # operator-reached via `exceptd brief age-gates-child-safety` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
63
63
  ---
64
64
 
@@ -125,13 +125,13 @@ Classical security and privacy frameworks (NIST 800-53 r5, ISO/IEC 27001:2022, S
125
125
 
126
126
  ## TTP Mapping
127
127
 
128
- This skill is primarily a compliance + privacy-engineering skill rather than a technical-exploit skill. There are no ATLAS-catalogued AI-attack TTPs that are child-specific as of v5.6.0, and most relevant attacker activity intersects general ATT&CK techniques rather than child-targeted novel TTPs. The relevant mapping is therefore narrower and explicitly flagged as such — `atlas_refs` is empty by design, not omission.
128
+ This skill is primarily a compliance + privacy-engineering skill rather than a technical-exploit skill. There are no ATLAS-catalogued AI-attack TTPs that are child-specific as of v2026.05, and most relevant attacker activity intersects general ATT&CK techniques rather than child-targeted novel TTPs. The relevant mapping is therefore narrower and explicitly flagged as such — `atlas_refs` is empty by design, not omission.
129
129
 
130
130
  | ID | Source | Technique | Child-Safeguarding Relevance | Gap Flag |
131
131
  |---|---|---|---|---|
132
132
  | T1078 | ATT&CK Enterprise | Valid Accounts | Account takeover targeting child accounts (compromised parental controls; sextortion via stolen accounts; grooming via account hijack) — child accounts are under-protected because MFA roll-out lags adult user populations. | NIST 800-53 AC-2 + COPPA / AADC / Children's Code silent on MFA-for-child requirement; the AC-2 gap entry in `data/framework-control-gaps.json` covers AI-service-principals not child identities. Hand off to `identity-assurance` for AAL2+ on child accounts where vendor terms permit. |
133
133
  | T1567 | ATT&CK Enterprise | Exfiltration Over Web Service | Child PI exfiltrated via AI-tool / SaaS egress — additional liability under COPPA (no behavioral-ad use of under-13 PI), AADC (DPIA failure), GDPR Art. 8 (no lawful basis), DPDPA (default-VPC bypass), CN PIPL Art. 31 (child PI = sensitive PI requiring separate consent). | Hand off to `dlp-gap-analysis` for child-PI as a protected data class; COPPA / AADC / Children's Code do not name DLP technical controls; the SOC2-CC7 anomaly-detection gap entry applies. |
134
- | AI-generated CSAM creation / distribution | Not catalogued in ATLAS or ATT&CK as of v5.6.0 | Generative-AI image / video synthesis depicting children | Direct criminal exposure under 18 U.S.C. §§2251, 2252, 2252A, 2256 (Protect Act / Mash-Up Act framework); mandatory NCMEC reporting per §2258A. Multiple 2024-2025 prosecutions (US v. Anderegg WD-Wis 2024 — first federal AI-CSAM prosecution; UK National Crime Agency campaign 2024-2025). | No formal TTP class. Evidence stream: NCMEC CyberTipline reports + EU IWF reports. Hand off to `ai-attack-surface` for generative-model content-policy red-team and to `incident-response-playbook` for reporting workflow. |
134
+ | AI-generated CSAM creation / distribution | Not catalogued in ATLAS or ATT&CK as of v2026.05 | Generative-AI image / video synthesis depicting children | Direct criminal exposure under 18 U.S.C. §§2251, 2252, 2252A, 2256 (Protect Act / Mash-Up Act framework); mandatory NCMEC reporting per §2258A. Multiple 2024-2025 prosecutions (US v. Anderegg WD-Wis 2024 — first federal AI-CSAM prosecution; UK National Crime Agency campaign 2024-2025). | No formal TTP class. Evidence stream: NCMEC CyberTipline reports + EU IWF reports. Hand off to `ai-attack-surface` for generative-model content-policy red-team and to `incident-response-playbook` for reporting workflow. |
135
135
  | AI chatbot grooming / harmful-content engagement with children | Not catalogued | Long-context AI chatbot interactions with children steering toward harm | Research and litigation evidence: Character.ai litigation 2024 (FL wrongful-death suit alleging companion-chatbot contribution to minor suicide; additional 2024-2025 complaints); UK NCA campaign 2024 documenting grooming attempts via AI chatbots; ESRC / RAND research 2024-2025. | No formal TTP class. EU DSA Art. 28 + UK OSA + AU OSA + KOSA-if-enacted all frame this as a platform duty-of-care obligation. Hand off to `ai-risk-management` for AI-product age policy enforcement. |
136
136
 
137
137
  **Honest scope statement (no fabricated TTP IDs).** This skill does not invent TTP IDs to fill gaps in the ATLAS or ATT&CK matrices. AI-generated CSAM and AI-chatbot-mediated harm to children are real-world threat classes documented through prosecution records, NCMEC / IWF reporting, and litigation — not novel ATLAS techniques. Citation is to the evidence stream, not to a TTP ID.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: ai-attack-surface
3
3
  version: "1.0.0"
4
- description: Comprehensive AI/ML attack surface assessment mapped to MITRE ATLAS v5.6.0 with explicit framework gap flags
4
+ description: Comprehensive AI/ML attack surface assessment mapped to MITRE ATLAS v2026.05 with explicit framework gap flags
5
5
  triggers:
6
6
  - ai attack surface
7
7
  - prompt injection
@@ -59,7 +59,7 @@ forward_watch:
59
59
  - Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — Chroma vector DB CWE-190 + CWE-362 chain by haehae; impacts RAG vector store integrity; track patch and downstream RAG advisory
60
60
  - Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — NVIDIA Megatron Bridge overly permissive allowed list by Satoki Tsuji; AI training-stack supply-chain exposure; track patch and SBOM advisory
61
61
  - Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — NVIDIA Megatron Bridge path traversal by haehae; AI training-stack file-system trust boundary; track patch and SBOM advisory
62
- last_threat_review: "2026-05-17"
62
+ last_threat_review: "2026-06-10"
63
63
  ---
64
64
 
65
65
  # AI Attack Surface Assessment
@@ -156,7 +156,7 @@ AI-assisted reconnaissance is observed at 36,000 probes per second per campaign.
156
156
  | SOC 2 | CC6 (Logical and Physical Access) | Access control via IAM, authentication, authorization. Prompt injection is an access control failure that routes around CC6 entirely — the authorized model account takes the action, not the attacker. Audit trails show the model's service account performed the action. |
157
157
  | SOC 2 | CC7 (System Operations) | Anomaly detection for system operations. No guidance for AI API baseline, AI C2 detection, or PROMPTFLUX behavioral patterns. |
158
158
  | PCI DSS 4.0 | 6.4.1 | Web application protection (WAF). WAFs operate on HTTP request/response patterns. They have no semantic understanding of prompt injection embedded in JSON `message` fields. |
159
- | MITRE ATT&CK | Enterprise | Does not include prompt injection as a technique. AI-as-C2 (SesameOp) is not in ATT&CK as of mid-2026. ATLAS v5.6.0 covers these but is not part of SOC detection engineering programs that are ATT&CK-mapped. |
159
+ | MITRE ATT&CK | Enterprise | Does not include prompt injection as a technique. AI-as-C2 (SesameOp) is not in ATT&CK as of mid-2026. ATLAS v2026.05 covers these but is not part of SOC detection engineering programs that are ATT&CK-mapped. |
160
160
  | NIST AI RMF | MEASURE 2.5 | Measure AI risks during operation. Provides a framework for thinking about AI risk but no specific controls for prompt injection, MCP supply chain, or AI-as-C2. |
161
161
  | EU NIS2 | Art. 21(2)(d) (supply-chain security) + Art. 21(2)(e) (security in acquisition, development and maintenance) | "Appropriate and proportionate" supply-chain language. Member-state transpositions (BSI IT-SiG 2.0, ANSSI) do not enumerate MCP servers or LLM API providers as in-scope supply-chain components. An essential entity can meet NIS2 supplier-management obligations with traditional SaaS vendor reviews while having zero coverage of AI-assistant tool ecosystems. |
162
162
  | EU DORA | Art. 8 (ICT asset management) + Art. 28 (ICT third-party register) + Art. 30 (key contractual provisions) | Financial-entity ICT third-party language scoped to traditional ICT providers. LLM API providers acting as data processors for prompt content and developer-environment MCP servers are not enumerated as ICT third-party service providers. ESAs RTS on subcontracting (JC 2024/53) is silent on AI/ML SaaS dependency classes. |
@@ -170,7 +170,7 @@ AI-assisted reconnaissance is observed at 36,000 probes per second per campaign.
170
170
 
171
171
  ---
172
172
 
173
- ## TTP Mapping (MITRE ATLAS v5.6.0)
173
+ ## TTP Mapping (MITRE ATLAS v2026.05)
174
174
 
175
175
  | ATLAS ID | Technique | Framework Coverage | Gap Description | Exploitation Example |
176
176
  |---|---|---|---|---|
@@ -49,7 +49,7 @@ d3fend_refs:
49
49
  - D3-NI
50
50
  - D3-NTA
51
51
  - D3-NTPM
52
- last_threat_review: "2026-05-17"
52
+ last_threat_review: "2026-06-10"
53
53
  ---
54
54
 
55
55
  # AI C2 Detection
@@ -330,13 +330,13 @@ level: medium
330
330
 
331
331
  ---
332
332
 
333
- ## TTP Mapping (MITRE ATLAS v5.6.0 + MITRE ATT&CK)
333
+ ## TTP Mapping (MITRE ATLAS v2026.05 + MITRE ATT&CK)
334
334
 
335
335
  | ID | Source | Technique | C2 Relevance | Gap Flag — Which Detection Control Fails |
336
336
  |---|---|---|---|---|
337
- | AML.T0096 | ATLAS v5.6.0 | LLM API as covert C2 / LLM Integration Abuse | Direct: SesameOp encodes commands and exfiltrated data in prompt and completion fields against api.openai.com, api.anthropic.com, generativelanguage.googleapis.com. AI provider domain is the relay, not the attacker C2 endpoint. | NIST-800-53-SC-7 (Boundary Protection) — AI provider domains are allowlisted in most enterprise egress for legitimate developer and product use, so boundary inspection cannot distinguish benign developer prompts from C2-encoded prompts. See SC-7 entry in `data/framework-control-gaps.json` — real requirement is SDK-level prompt logging with identity binding, anomaly detection on prompt-shape and token-volume, and an allowlist that enumerates the sanctioned business reason per identity. Boundary-only SC-7 evidence is incomplete for any org with AI API access in production. |
338
- | AML.T0017 | ATLAS v5.6.0 | Discover ML Model Ontology — adversary maps the deployed LLM's family, system-prompt structure, guardrail surface via inference-API probing | PROMPTFLUX queries public LLMs to generate per-execution evasion code; PROMPTSTEAL uses LLMs to prioritise exfiltration targets — both depend on first discovering what the target model will answer. The inference API is the discovery surface. | NIST-800-53-SI-3 fails — there is no static signature for code generated per-event by a public LLM. NIST-800-53-SI-4 fails as commonly deployed — no AI-API behavioural baseline per process/identity. |
339
- | AML.T0016 | ATLAS v5.6.0 | Obtain Capabilities: Develop Capabilities — adversary use of inference APIs to generate / refine malware, evasion, phishing payloads | PROMPTFLUX and PROMPTSTEAL both consume public LLMs as a real-time capability-development service. The inference API is doing weaponization work for the adversary. | NIST-800-53-SI-3 fails for the same reason. SC-7 boundary control treats the AI provider as allowlisted SaaS. |
337
+ | AML.T0096 | ATLAS v2026.05 | LLM API as covert C2 / LLM Integration Abuse | Direct: SesameOp encodes commands and exfiltrated data in prompt and completion fields against api.openai.com, api.anthropic.com, generativelanguage.googleapis.com. AI provider domain is the relay, not the attacker C2 endpoint. | NIST-800-53-SC-7 (Boundary Protection) — AI provider domains are allowlisted in most enterprise egress for legitimate developer and product use, so boundary inspection cannot distinguish benign developer prompts from C2-encoded prompts. See SC-7 entry in `data/framework-control-gaps.json` — real requirement is SDK-level prompt logging with identity binding, anomaly detection on prompt-shape and token-volume, and an allowlist that enumerates the sanctioned business reason per identity. Boundary-only SC-7 evidence is incomplete for any org with AI API access in production. |
338
+ | AML.T0017 | ATLAS v2026.05 | Discover ML Model Ontology — adversary maps the deployed LLM's family, system-prompt structure, guardrail surface via inference-API probing | PROMPTFLUX queries public LLMs to generate per-execution evasion code; PROMPTSTEAL uses LLMs to prioritise exfiltration targets — both depend on first discovering what the target model will answer. The inference API is the discovery surface. | NIST-800-53-SI-3 fails — there is no static signature for code generated per-event by a public LLM. NIST-800-53-SI-4 fails as commonly deployed — no AI-API behavioural baseline per process/identity. |
339
+ | AML.T0016 | ATLAS v2026.05 | Obtain Capabilities: Develop Capabilities — adversary use of inference APIs to generate / refine malware, evasion, phishing payloads | PROMPTFLUX and PROMPTSTEAL both consume public LLMs as a real-time capability-development service. The inference API is doing weaponization work for the adversary. | NIST-800-53-SI-3 fails for the same reason. SC-7 boundary control treats the AI provider as allowlisted SaaS. |
340
340
  | T1071 | ATT&CK | Application Layer Protocol (C2) | AI C2 traffic is standard HTTPS REST to api.openai.com or equivalent. Application-protocol C2 detection that looks for DGA, unusual TLS, or beaconing does not fire. | SC-7 boundary control sees only the destination domain (allowlisted) — no protocol anomaly to alert on. Detection requires identity-bound prompt content inspection, which SC-7 as written does not require. |
341
341
  | T1102 | ATT&CK | Web Service (C2 via legitimate web service) | AI API endpoints are exactly the "legitimate web service used as C2" pattern that T1102 describes — but at scale and pre-allowlisted in nearly every enterprise. | SOC 2 CC7 anomaly-detection control: AI API traffic shares the SaaS blind spot — typically not baselined per process or identity. ISO 27001 A.8.16 monitoring activities: no guidance for AI-API-shaped traffic. |
342
342
  | T1568 | ATT&CK | Dynamic Resolution | AI provider responses can carry encoded instructions that dynamically determine the next-hop behaviour for the malware (effectively model-mediated dynamic resolution of the next attacker instruction). | No standard DNS-tunnelling or DGA detection applies — the "resolution" happens inside an HTTPS payload to a trusted endpoint. SC-7 cannot see it without SDK-level prompt + response logging. |
@@ -67,7 +67,7 @@ forward_watch:
67
67
  - NGINX Rift CVE-2026-42945 (disclosed 2026-05-13, source depthfirst) — KEV-watch predicted CISA KEV listing by 2026-05-29; track for active-exploitation confirmation and patch advisory affecting API gateway / reverse-proxy deployments
68
68
  - Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — LiteLLM 3-bug SSRF + Code Injection chain by k3vg3n; LLM-proxy API surface; track upstream patch and CVE assignments
69
69
  - Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — LiteLLM full SSRF + Code Injection by Out Of Bounds (Byung Young Yi); duplicate-class with the k3vg3n entry; track unified patch advisory
70
- last_threat_review: "2026-05-18"
70
+ last_threat_review: "2026-06-10"
71
71
  ---
72
72
 
73
73
  # API Security Assessment
@@ -126,7 +126,7 @@ APIs are now the integration substrate of every non-trivial system. The mid-2026
126
126
 
127
127
  ---
128
128
 
129
- ## TTP Mapping (MITRE ATT&CK Enterprise + ATLAS v5.6.0)
129
+ ## TTP Mapping (MITRE ATT&CK Enterprise + ATLAS v2026.05)
130
130
 
131
131
  | TTP ID | Technique | API Manifestation | CWE Root-Causes | Framework Coverage |
132
132
  |---|---|---|---|---|
@@ -60,7 +60,7 @@ d3fend_refs:
60
60
  - D3-CSPP
61
61
  - D3-EAL
62
62
  - D3-NTA
63
- last_threat_review: "2026-05-11"
63
+ last_threat_review: "2026-06-10"
64
64
  ---
65
65
 
66
66
  # Attack Surface Management + Penetration Testing
@@ -115,17 +115,17 @@ A pen test scoped to layers 1 and (partly) 7 — i.e. "web app + network + nomin
115
115
  | CBEST (Bank of England / PRA / FCA) | Whole framework | UK equivalent to TIBER-EU for systemically important financial firms. Same lag pattern as TIBER-EU. CBEST-certified providers are not required to demonstrate competence in AI-surface attack emulation as of mid-2026. |
116
116
  | Australian ISM (Information Security Manual) + ACSC Essential 8 | ISM controls on penetration testing; Essential 8 Maturity Level 3 testing requirements | Essential 8 mandates regular testing of mitigation strategies (patching, app control, MFA, etc.). The testing requirements do not extend to AI-API egress as C2, MCP trust, or RAG poisoning. ISM control set is network/endpoint centric. |
117
117
  | ISO/IEC 27001:2022 | A.5.34 (Privacy and protection of PII) — note: the actually relevant clause for independent review is **A.5.35 (Independent review of information security)** and **A.8.29 (Security testing in development and acceptance)** | A.5.35 requires independent review of the information security approach at planned intervals or when significant changes occur. The clause is methodology-agnostic — auditors accept a network/web pen test as evidence even when AI surfaces are in production. A.8.29 mandates security testing of new and changed information systems, but does not define what an adequate test of an AI system looks like. |
118
- | MITRE ATT&CK Enterprise (v19.0) | Whole matrix | The enterprise matrix does not contain prompt-injection as a technique. AI-as-C2 (SesameOp pattern) is absent from ATT&CK as of mid-2026. Adversary emulation programs that are ATT&CK-only and not ATLAS-extended will not include the mid-2026 dominant new tradecraft in their playbooks. ATLAS v5.6.0 covers it — but ATLAS is not yet a standard requirement for pen testing certification or scoping. |
118
+ | MITRE ATT&CK Enterprise (v19.1) | Whole matrix | The enterprise matrix does not contain prompt-injection as a technique. AI-as-C2 (SesameOp pattern) is absent from ATT&CK as of mid-2026. Adversary emulation programs that are ATT&CK-only and not ATLAS-extended will not include the mid-2026 dominant new tradecraft in their playbooks. ATLAS v2026.05 covers it — but ATLAS is not yet a standard requirement for pen testing certification or scoping. |
119
119
 
120
120
  > Global coverage note: the above table spans US (NIST 800-115, ATT&CK), EU (NIS2, TIBER-EU under DORA), UK (CBEST), AU (ISM/Essential 8), and ISO 27001:2022. US-only pen test scoping is incomplete.
121
121
 
122
122
  ---
123
123
 
124
- ## TTP Mapping (MITRE ATLAS v5.6.0 + MITRE ATT&CK v19.0)
124
+ ## TTP Mapping (MITRE ATLAS v2026.05 + MITRE ATT&CK v19.1)
125
125
 
126
126
  Pen testers must emulate both classical and AI-class chains. The table below maps the kill-chain phases a mid-2026 adversary emulation engagement must cover.
127
127
 
128
- | Phase | Classical TTP (ATT&CK v19.0) | AI-Class TTP (ATLAS v5.6.0) | Framework Gap Flag |
128
+ | Phase | Classical TTP (ATT&CK v19.1) | AI-Class TTP (ATLAS v2026.05) | Framework Gap Flag |
129
129
  |---|---|---|---|
130
130
  | Reconnaissance | T1595 (Active Scanning) — implied by T1190 setup | AML.TA0002 (Reconnaissance tactic) — model card / dataset / API endpoint discovery, system-prompt probing | NIST 800-115 §3.x recon guidance is network-only |
131
131
  | Initial Access | T1190 (Exploit Public-Facing Application) | AML.T0051 (LLM Prompt Injection) — entered via PR description, support ticket, retrieved doc | OWASP WSTG covers webapp; not prompt-injection as entry vector |
@@ -70,7 +70,7 @@ forward_watch:
70
70
  - AWS Bedrock, Azure OpenAI, GCP Vertex AI shared-responsibility documentation drift — each major CSP refreshes the AI-service responsibility line every 6–12 months; track for control-mapping breakage
71
71
  - eBPF-based runtime detection coverage of confidential-computing enclaves (AWS Nitro Enclaves, Azure Confidential VMs, GCP Confidential Space) — partial visibility is a tracked detection gap
72
72
  - CISA KEV additions for cloud-control-plane CVEs (IMDSv1 abuses, federation token mishandling, cross-tenant boundary failures); CISA Cybersecurity Advisories for cross-cloud advisories
73
- last_threat_review: "2026-05-11"
73
+ last_threat_review: "2026-06-10"
74
74
  ---
75
75
 
76
76
  # Cloud Security (mid-2026)
@@ -131,8 +131,8 @@ Cloud is where AI runs. Every consequential AI service — OpenAI, Anthropic, Go
131
131
  | Cloud data exfiltration | T1530 — Data from Cloud Storage Object | ATT&CK Enterprise | Public S3 / GCS / Blob storage discovery via Wiz-style external attack-surface scan; legitimate IAM principal exfil via federated workload; cross-tenant boundary failure on SaaS | NIST 800-53 SC-28 (encryption at rest) does not address access-policy errors; CWE-200, CWE-732, CWE-862 |
132
132
  | Cloud-facing application | T1190 — Exploit Public-Facing Application | ATT&CK Enterprise | API Gateway / Load Balancer / managed-WAF-bypass; managed-database exposure (RDS / SQL DB / Cloud SQL public IP); container-registry public image abuse; Lambda / Cloud Functions / Azure Functions endpoint exploit | NIST 800-53 SC-7 perimeter assumption inadequate; CSA CCM AIS-04 and IVS-08 partial; CWE-1188 (Insecure Default Initialization) |
133
133
  | Cloud-credential exposure | T1552 — Unsecured Credentials (incl. T1552.001 Files, T1552.005 Cloud Instance Metadata API, T1552.007 Container API) | ATT&CK Enterprise | IMDSv1 SSRF on EC2 / GCE; static cloud credentials in git / images / env vars; container API and kubeconfig theft; workload-identity-federation trust-policy abuse | CWE-798 (hardcoded credentials), CWE-200; NIST 800-53 IA-5 method-neutral |
134
- | AI model registry / cloud-hosted model | AML.T0010 — ML Supply Chain Compromise | ATLAS v5.6.0 | Bedrock / SageMaker custom model from poisoned upstream; Azure ML model registry tampering; Vertex Model Garden mirror tampering; HF model pulled into Bedrock / SageMaker / Vertex with weights backdoor | CSA CCM CCC-09 (vendor / supply chain) silent on model-supply-chain specifics; SLSA / in-toto / Sigstore for models still maturing |
135
- | Cloud inference API abuse / model extraction | AML.T0017 — Discover ML Model Ontology (inference-API probing for system-prompt, guardrail, model-family signal against cloud-hosted endpoints); AML.T0016 — Obtain Capabilities: Develop Capabilities (downstream weaponization) | ATLAS v5.6.0 | Programmatic query of Bedrock / Azure OpenAI / Vertex endpoint to extract model behaviour, training-data inference, system-prompt leakage | No cloud-specific ATLAS control mapping for inference-API rate-limit / anomaly detection; chain to `ai-attack-surface` |
134
+ | AI model registry / cloud-hosted model | AML.T0010 — ML Supply Chain Compromise | ATLAS v2026.05 | Bedrock / SageMaker custom model from poisoned upstream; Azure ML model registry tampering; Vertex Model Garden mirror tampering; HF model pulled into Bedrock / SageMaker / Vertex with weights backdoor | CSA CCM CCC-09 (vendor / supply chain) silent on model-supply-chain specifics; SLSA / in-toto / Sigstore for models still maturing |
135
+ | Cloud inference API abuse / model extraction | AML.T0017 — Discover ML Model Ontology (inference-API probing for system-prompt, guardrail, model-family signal against cloud-hosted endpoints); AML.T0016 — Obtain Capabilities: Develop Capabilities (downstream weaponization) | ATLAS v2026.05 | Programmatic query of Bedrock / Azure OpenAI / Vertex endpoint to extract model behaviour, training-data inference, system-prompt leakage | No cloud-specific ATLAS control mapping for inference-API rate-limit / anomaly detection; chain to `ai-attack-surface` |
136
136
 
137
137
  **Note on ATT&CK Enterprise cloud-platform sub-techniques.** ATT&CK Enterprise has cloud-platform-specific matrices (IaaS, SaaS, Office 365, Azure AD / Entra ID, Google Workspace). T1078.004 (Cloud Accounts), T1552.005 (Cloud Instance Metadata API), T1552.007 (Container API), T1190 with cloud-service variants, T1530 with managed-storage variants are the most operationally relevant. The frontmatter pins the parent IDs; analysis should descend to the sub-technique appropriate to the cloud(s) in scope.
138
138
 
@@ -21,7 +21,7 @@ framework_gaps:
21
21
  - ALL-PROMPT-INJECTION-ACCESS-CONTROL
22
22
  - FedRAMP-Rev5-Moderate
23
23
  - CMMC-2.0-Level-2
24
- last_threat_review: "2026-05-22"
24
+ last_threat_review: "2026-06-10"
25
25
  ---
26
26
 
27
27
  # Compliance Theater Detection
@@ -78,7 +78,7 @@ The pre-analyzed gaps for these controls live in the framework-gap-analysis skil
78
78
 
79
79
  ---
80
80
 
81
- ## TTP Mapping (MITRE ATLAS v5.6.0 and ATT&CK)
81
+ ## TTP Mapping (MITRE ATLAS v2026.05 and ATT&CK)
82
82
 
83
83
  Each theater pattern below maps to one or more attacker TTPs in `data/atlas-ttps.json` and MITRE ATT&CK Enterprise. The mapping is what distinguishes theater from genuine compliance: a control claimed as compensating must map to a TTP it actually disrupts.
84
84
 
@@ -92,7 +92,7 @@ Each theater pattern below maps to one or more attacker TTPs in `data/atlas-ttps
92
92
  | Vendor/Third-Party Risk Theater — AI APIs (Pattern 6) | AML.T0010 (ML Supply Chain Compromise) | MCP servers and LLM APIs sit outside the vendor-management scope |
93
93
  | Security Awareness Theater — AI Phishing (Pattern 7) | T1566 (Phishing), AML.T0016 (Obtain Capabilities: Develop Capabilities — misuse of public AI APIs for payload crafting) | AI-generated content evades grammar/style heuristics and template-matching detectors |
94
94
 
95
- Source-of-truth TTP catalog: `data/atlas-ttps.json` (pinned to MITRE ATLAS v5.6.0, May 2026). Any theater claim in an assessment must cite at least one TTP ID from that catalog or an ATT&CK Enterprise ID — claims without a mapped TTP are orphaned controls and are rejected.
95
+ Source-of-truth TTP catalog: `data/atlas-ttps.json` (pinned to MITRE ATLAS v2026.05, May 2026). Any theater claim in an assessment must cite at least one TTP ID from that catalog or an ATT&CK Enterprise ID — claims without a mapped TTP are orphaned controls and are rejected.
96
96
 
97
97
  ---
98
98
 
@@ -57,7 +57,7 @@ d3fend_refs:
57
57
  - D3-IOPR
58
58
  forward_watch:
59
59
  - Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — NVIDIA Container Toolkit container escape ($50K award) by chompie / IBM X-Force XOR; high-severity container/hypervisor boundary break; track patch and KEV add post-embargo
60
- last_threat_review: "2026-05-15"
60
+ last_threat_review: "2026-06-10"
61
61
  ---
62
62
 
63
63
  # Container + Kubernetes Runtime Security (mid-2026)
@@ -124,9 +124,9 @@ State of standards baselines:
124
124
  | Container escape to host | T1611 — Escape to Host | ATT&CK Enterprise | Kernel LPE (Copy Fail CVE-2026-31431, Dirty Frag CVE-2026-43284 family); historical runc CVE-2024-21626 LeakyVessels family; cgroup v1 release_agent legacy abuses; abuse of overly permissive capabilities (`CAP_SYS_ADMIN`, `CAP_SYS_MODULE`) | NIST 800-190 predates kernel-LPE-as-container-escape as the dominant vector. Defense requires kernel patching cadence (hand off to `kernel-lpe-triage`) plus seccomp default profile, capability drops, read-only rootfs, and runtime detection. None of these are framework-mandated. |
125
125
  | Privilege escalation within the container | T1068 — Exploitation for Privilege Escalation | ATT&CK Enterprise | In-container kernel LPE (yields host root via T1611 chain); abuse of writable hostPath; abuse of mounted Docker socket | Method-neutral framework controls; the actual control is seccomp + dropped capabilities + read-only rootfs + non-root runAsUser, all enforced by PSS-Restricted profile |
126
126
  | Exploit public-facing K8s component | T1190 — Exploit Public-Facing Application | ATT&CK Enterprise | Exposed kube-apiserver (rare but seen on self-managed clusters); exposed kubelet read-only port (10255) or read/write port (10250) without authentication; exposed Kubernetes Dashboard with no auth; exposed Argo CD or Jenkins on the cluster; ingress controller CVEs (ingress-nginx CVE-2025 family) | NSA/CISA Hardening Guide v1.2 addresses control-plane exposure; managed services close this by default; self-managed clusters in CI/government still expose these |
127
- | Compromised container image at a public/private registry | AML.T0010 — ML Supply Chain Compromise (umbrella) | ATLAS v5.6.0 | Poisoned base image; backdoored model-serving image; typosquatted MCP server in a sidecar; AI-pipeline-specific (KServe / vLLM / Triton image with embedded malicious payload) | ATLAS classifies; no framework mandates signature verification at admission. Hand off the build-side provenance to `supply-chain-integrity`; the container-runtime control is `ClusterImagePolicy` enforcement |
127
+ | Compromised container image at a public/private registry | AML.T0010 — ML Supply Chain Compromise (umbrella) | ATLAS v2026.05 | Poisoned base image; backdoored model-serving image; typosquatted MCP server in a sidecar; AI-pipeline-specific (KServe / vLLM / Triton image with embedded malicious payload) | ATLAS classifies; no framework mandates signature verification at admission. Hand off the build-side provenance to `supply-chain-integrity`; the container-runtime control is `ClusterImagePolicy` enforcement |
128
128
 
129
- ATT&CK Containers matrix (sub-matrix, since 2021) and ATT&CK for Kubernetes (Microsoft's threat matrix, 2020, since absorbed conceptually into ATT&CK Containers) are both relevant prior art. The Enterprise IDs above are canonical in ATLAS v5.6.0 alignment and pass the linter regex `^T\d{4}(\.\d{3})?$`.
129
+ ATT&CK Containers matrix (sub-matrix, since 2021) and ATT&CK for Kubernetes (Microsoft's threat matrix, 2020, since absorbed conceptually into ATT&CK Containers) are both relevant prior art. The Enterprise IDs above are canonical in ATLAS v2026.05 alignment and pass the linter regex `^T\d{4}(\.\d{3})?$`.
130
130
 
131
131
  CWE cross-walk (see `data/cwe-catalog.json`):
132
132
 
@@ -47,7 +47,7 @@ forward_watch:
47
47
  - Forthcoming IETF work on AI vulnerability disclosure (proposed BoF under SECDISPATCH) and any update to RFC 9116 (security.txt) covering AI/model artifact disclosure endpoints
48
48
  - UK NCSC Vulnerability Disclosure Toolkit revisions and AU ISM CVD guidance updates
49
49
  - NYDFS 23 NYCRR 500 amendments potentially adding explicit CVD program requirements
50
- last_threat_review: "2026-05-11"
50
+ last_threat_review: "2026-06-10"
51
51
  ---
52
52
 
53
53
  # Coordinated Vulnerability Disclosure
@@ -106,7 +106,7 @@ This skill is meta — it is the upstream input pipeline that feeds the downstre
106
106
  |---|---|
107
107
  | `data/cve-catalog.json` | **Downstream product.** Every CVE in this catalog is the output of a CVD process (someone's, somewhere). When this org receives a report covering one of its own products, the resulting CVE enters this catalog via the same schema. |
108
108
  | `data/zeroday-lessons.json` | **Downstream consumer.** Every disclosed CVE feeds the zero-day learning loop run by `zeroday-gap-learn`. A CVD program with no entries here is not learning from its own disclosures. |
109
- | `data/atlas-ttps.json` (MITRE ATLAS v5.6.0) | **Lookup for AI-class disclosures.** When a report covers an AI vulnerability, map the attack mechanism to an ATLAS TTP (e.g., AML.T0051 LLM Prompt Injection, AML.T0096 LLM Plugin Compromise) for advisory tagging. |
109
+ | `data/atlas-ttps.json` (MITRE ATLAS v2026.05) | **Lookup for AI-class disclosures.** When a report covers an AI vulnerability, map the attack mechanism to an ATLAS TTP (e.g., AML.T0051 LLM Prompt Injection, AML.T0096 LLM Plugin Compromise) for advisory tagging. |
110
110
  | `data/framework-control-gaps.json` | **Lookup for regulator-notification routing.** Each disclosure intersects one or more framework controls; this skill writes new gaps when a disclosure exposes one. |
111
111
  | `data/cwe-catalog.json` | **Required taxonomy for advisories.** Per CVE-Numbering-Authority practice, every CVE advisory cites a CWE. `CWE-1357 Reliance on Insufficiently Trustworthy Component` is invoked for supply-chain disclosures (MCP servers, AI dependencies); other CWEs per the specific class. |
112
112
  | `data/d3fend-catalog.json` | **Defensive mapping for advisory recommendations.** Advisories that recommend mitigations should cite D3FEND IDs so blue teams can map the recommendation to existing control surfaces. See Defensive Countermeasure Mapping section. |
@@ -47,7 +47,7 @@ d3fend_refs:
47
47
  - D3-PSEP
48
48
  - D3-RPA
49
49
  - D3-SCP
50
- last_threat_review: "2026-05-11"
50
+ last_threat_review: "2026-06-10"
51
51
  discovery_mode: "standalone" # operator-reached via `exceptd brief defensive-countermeasure-mapping` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
52
52
  ---
53
53
 
@@ -83,7 +83,7 @@ The skill exists because the inverse direction — given a CVE or TTP, produce t
83
83
 
84
84
  ## Framework Lag Declaration
85
85
 
86
- No major compliance framework requires technique-grained defensive mapping. Each requires controls; none require controls expressed in the D3FEND technique taxonomy that mirrors ATT&CK and ATLAS. The MITRE Center for Threat-Informed Defense ATT&CK Mappings project (the NIST 800-53 → ATT&CK and D3FEND → NIST 800-53 crosswalks) provides the bridge, but its latest published crosswalk targets ATT&CK Enterprise v16.1 — lagging the current v19.0 matrix — operator awareness is limited, and no framework yet requires its use.
86
+ No major compliance framework requires technique-grained defensive mapping. Each requires controls; none require controls expressed in the D3FEND technique taxonomy that mirrors ATT&CK and ATLAS. The MITRE Center for Threat-Informed Defense ATT&CK Mappings project (the NIST 800-53 → ATT&CK and D3FEND → NIST 800-53 crosswalks) provides the bridge, but its latest published crosswalk targets ATT&CK Enterprise v16.1 — lagging the current v19.1 matrix — operator awareness is limited, and no framework yet requires its use.
87
87
 
88
88
  | Jurisdiction | Framework / Control | What It Requires | Why It Is Insufficient at D3FEND Grain |
89
89
  |---|---|---|---|
@@ -294,7 +294,7 @@ This skill is itself the canonical mapper. The section name doubles as the secti
294
294
 
295
295
  The cross-walks the skill maintains:
296
296
 
297
- - **ATT&CK → D3FEND.** Sourced from the MITRE Center for Threat-Informed Defense ATT&CK Mappings NIST 800-53 → ATT&CK and D3FEND → ATT&CK crosswalks (latest crosswalk targets ATT&CK Enterprise v16.1; the live matrix is v19.0), materialized locally in `data/d3fend-catalog.json` as the `counters_attack_techniques` array on every D3FEND entry. To map an ATT&CK T-number to D3FEND, scan every catalog entry and collect those whose `counters_attack_techniques` includes the T-number. This skill never invents a mapping not present in the catalog; if a T-number has no coverage, the absence is a finding routed to `zeroday-gap-learn`.
297
+ - **ATT&CK → D3FEND.** Sourced from the MITRE Center for Threat-Informed Defense ATT&CK Mappings NIST 800-53 → ATT&CK and D3FEND → ATT&CK crosswalks (latest crosswalk targets ATT&CK Enterprise v16.1; the live matrix is v19.1), materialized locally in `data/d3fend-catalog.json` as the `counters_attack_techniques` array on every D3FEND entry. To map an ATT&CK T-number to D3FEND, scan every catalog entry and collect those whose `counters_attack_techniques` includes the T-number. This skill never invents a mapping not present in the catalog; if a T-number has no coverage, the absence is a finding routed to `zeroday-gap-learn`.
298
298
 
299
299
  - **ATLAS → D3FEND.** Sourced from cross-references in `data/atlas-ttps.json` (each ATLAS entry's defensive references) and from `data/d3fend-catalog.json` (each D3FEND entry's `counters_attack_techniques` array, which carries AML.T-numbers in addition to T-numbers). To map an AML.T technique to D3FEND, scan the catalog the same way as for ATT&CK. The bidirectional consistency is enforced by `lib/lint-skills.js` and by the schemas declared in the catalog `_meta` blocks.
300
300
 
@@ -61,7 +61,7 @@ d3fend_refs:
61
61
  - D3-IOPR
62
62
  - D3-NTA
63
63
  - D3-NTPM
64
- last_threat_review: "2026-05-15"
64
+ last_threat_review: "2026-06-10"
65
65
  ---
66
66
 
67
67
  # DLP Gap Analysis
@@ -124,13 +124,13 @@ A DLP gap analysis that maps only to NIST 800-53 SC-7, ISO 27001:2022 A.8.16, HI
124
124
 
125
125
  ---
126
126
 
127
- ## TTP Mapping (MITRE ATLAS v5.6.0 + MITRE ATT&CK)
127
+ ## TTP Mapping (MITRE ATLAS v2026.05 + MITRE ATT&CK)
128
128
 
129
129
  | ID | Source | Technique | DLP Relevance | Gap Flag — Which DLP Control Fails |
130
130
  |---|---|---|---|---|
131
- | AML.T0096 | ATLAS v5.6.0 | AI API as Covert C2 Channel | Direct: prompt and completion bodies as covert exfil. The same SesameOp pattern that is a C2 channel is also a DLP exfil channel — prompts encode payloads against allowlisted AI provider domains. Cross-references `DLP-CHAN-LLM-PROMPT` and `DLP-CHAN-LLM-CONTEXT` in `data/dlp-controls.json`. | Legacy email/web/USB DLP (`DLP-CHAN-EMAIL-OUT`, `DLP-CHAN-WEB-UPLOAD`, `DLP-CHAN-USB-REMOVABLE`) sees nothing. AI-aware DLP (`DLP-CHAN-LLM-PROMPT`) is the only effective control category. SC-7 boundary controls allowlist the AI provider domain — no protocol or destination anomaly fires. |
132
- | AML.T0017 | ATLAS v5.6.0 | Discover ML Model Ontology | Indirect but DLP-relevant: model inversion and membership-inference attacks against embedding stores and fine-tuned models extract training-corpus content (which is itself a protected surface — see `DLP-SURFACE-TRAINING-DATA`, `DLP-SURFACE-EMBEDDING-STORE`). | No legacy DLP control category exists. Modern controls: embedding-similarity classification at retrieval boundary (`DLP-CLASS-EMBEDDING-MATCH`), differential-privacy fine-tuning, query-rate limits on inference APIs. None of these are named in any compliance framework. |
133
- | AML.T0051 | ATLAS v5.6.0 | LLM Prompt Injection | Direct: prompt-injection-induced data extraction. A malicious document in a RAG corpus or a poisoned tool output (MCP) coerces the model into emitting protected content in a subsequent response. Cross-references `DLP-CHAN-LLM-CONTEXT` and `DLP-CHAN-MCP-TOOL-ARG`. | Egress-side classification on model output catches some cases but is fundamentally retroactive. Retrieval-time classification (`DLP-SURFACE-RAG-CORPUS`) and MCP tool-call argument inspection (`DLP-CHAN-MCP-TOOL-ARG`) are the primary controls. No compliance framework names either. |
131
+ | AML.T0096 | ATLAS v2026.05 | AI API as Covert C2 Channel | Direct: prompt and completion bodies as covert exfil. The same SesameOp pattern that is a C2 channel is also a DLP exfil channel — prompts encode payloads against allowlisted AI provider domains. Cross-references `DLP-CHAN-LLM-PROMPT` and `DLP-CHAN-LLM-CONTEXT` in `data/dlp-controls.json`. | Legacy email/web/USB DLP (`DLP-CHAN-EMAIL-OUT`, `DLP-CHAN-WEB-UPLOAD`, `DLP-CHAN-USB-REMOVABLE`) sees nothing. AI-aware DLP (`DLP-CHAN-LLM-PROMPT`) is the only effective control category. SC-7 boundary controls allowlist the AI provider domain — no protocol or destination anomaly fires. |
132
+ | AML.T0017 | ATLAS v2026.05 | Discover ML Model Ontology | Indirect but DLP-relevant: model inversion and membership-inference attacks against embedding stores and fine-tuned models extract training-corpus content (which is itself a protected surface — see `DLP-SURFACE-TRAINING-DATA`, `DLP-SURFACE-EMBEDDING-STORE`). | No legacy DLP control category exists. Modern controls: embedding-similarity classification at retrieval boundary (`DLP-CLASS-EMBEDDING-MATCH`), differential-privacy fine-tuning, query-rate limits on inference APIs. None of these are named in any compliance framework. |
133
+ | AML.T0051 | ATLAS v2026.05 | LLM Prompt Injection | Direct: prompt-injection-induced data extraction. A malicious document in a RAG corpus or a poisoned tool output (MCP) coerces the model into emitting protected content in a subsequent response. Cross-references `DLP-CHAN-LLM-CONTEXT` and `DLP-CHAN-MCP-TOOL-ARG`. | Egress-side classification on model output catches some cases but is fundamentally retroactive. Retrieval-time classification (`DLP-SURFACE-RAG-CORPUS`) and MCP tool-call argument inspection (`DLP-CHAN-MCP-TOOL-ARG`) are the primary controls. No compliance framework names either. |
134
134
  | T1567 | ATT&CK | Exfiltration Over Web Service | LLM and AI API endpoints are exactly the "legitimate web service used for exfil" pattern, pre-allowlisted in nearly every enterprise. | SC-7 sees only the destination domain (allowlisted). SDK-level prompt logging with identity binding is the only practical control. |
135
135
  | T1530 | ATT&CK | Data from Cloud Storage Object | Includes vector stores and model registries — embedding stores (Pinecone, Weaviate, Qdrant, pgvector, Vertex AI Matching Engine) and model artifacts in cloud object stores are 2026's high-value crown-jewel surface. See `DLP-SURFACE-EMBEDDING-STORE` and `DLP-SURFACE-TRAINING-DATA`. | Cloud DLP scanning of object stores is mature for files but not for vector indexes — index payloads are not classifiable as files. Vector-store-native ACL audit is the practical control. |
136
136
  | T1213 | ATT&CK | Data from Information Repositories | RAG corpora are exactly information repositories (SharePoint, Confluence, GitHub, Drive) ingested into vector indexes. Cross-cleared retrieval is a confused-deputy exfil channel. See `DLP-SURFACE-RAG-CORPUS`. | Repository-side ACL enforcement does not propagate to RAG context. Retrieval-time classification with user-clearance check is required (`DLP-CHAN-LLM-CONTEXT`). |
@@ -21,7 +21,7 @@ attack_refs: []
21
21
  framework_gaps:
22
22
  - CWE-Top-25-2024-meta
23
23
  - CIS-Controls-v8-Control7
24
- last_threat_review: "2026-05-18"
24
+ last_threat_review: "2026-06-10"
25
25
  ---
26
26
 
27
27
  # Real-World Exploit Priority (RWEP) Scoring
@@ -76,7 +76,7 @@ This skill is meta — it does not pin to a single TTP class. RWEP is the cross-
76
76
  | Catalog | Role for RWEP |
77
77
  |---|---|
78
78
  | `data/cve-catalog.json` | Source of factor values: CISA KEV flag, PoC availability, AI-discovery flag, active-exploitation status, patch and live-patch availability per CVE |
79
- | `data/atlas-ttps.json` (MITRE ATLAS v5.6.0) | Provides the AI/ML TTP context where AI-discovery and AI-acceleration factors apply (e.g., AML.T0016 Obtain Capabilities: Develop Capabilities, AML.T0017 Discover ML Model Ontology) |
79
+ | `data/atlas-ttps.json` (MITRE ATLAS v2026.05) | Provides the AI/ML TTP context where AI-discovery and AI-acceleration factors apply (e.g., AML.T0016 Obtain Capabilities: Develop Capabilities, AML.T0017 Discover ML Model Ontology) |
80
80
  | `data/exploit-availability.json` | Authoritative PoC + KEV + last-verified date snapshot — drives factor freshness |
81
81
  | `data/zeroday-lessons.json` | Closes the loop: zero-day's lesson entry feeds back the framework gap that RWEP's score implied |
82
82
 
@@ -20,7 +20,7 @@ data_deps:
20
20
  atlas_refs: []
21
21
  attack_refs: []
22
22
  framework_gaps: []
23
- last_threat_review: "2026-05-22"
23
+ last_threat_review: "2026-06-10"
24
24
  ---
25
25
 
26
26
  # Framework Gap Analysis
@@ -66,14 +66,14 @@ The global-first requirement binds against the full expanded catalog, not the EU
66
66
  - **China (CN):** PIPL, DSL, CSL, Cybersecurity Review Measures (2022).
67
67
  - **Brazil (BR):** LGPD + ANPD guidance.
68
68
  - **Saudi Arabia (KSA):** PDPL + SDAIA Implementing Regulation 2023.
69
- - **Global standards:** ISO 27001:2022 / 27002:2022, ISO/IEC 42001:2023, CSA CCM v4, CIS Controls v8, MITRE ATLAS v5.6.0.
69
+ - **Global standards:** ISO 27001:2022 / 27002:2022, ISO/IEC 42001:2023, CSA CCM v4, CIS Controls v8, MITRE ATLAS v2026.05.
70
70
  - **US sub-national:** NYDFS 23 NYCRR 500 (amended Nov 2023, phased through Nov 2025); state privacy laws (CA CCPA/CPRA, CO CPA, CT CTDPA, IL BIPA, NY SHIELD, TX DPSA, VA CDPA).
71
71
 
72
72
  A gap declaration that closes section 6 (Global coverage check) without referencing at least the EU, UK, AU, ISO, and a representative selection from {IL, CH, HK, TW, ID, VN, JP-expanded, KR, CN, BR, NYDFS} for any org operating in those jurisdictions is incomplete: a global-first analysis must cover every applicable jurisdiction, not a US-centric subset. The exact set required depends on the org's footprint — but the analyst must consult `data/global-frameworks.json` to enumerate it rather than defaulting to the legacy four-jurisdiction shorthand.
73
73
 
74
- ## TTP Mapping (MITRE ATLAS v5.6.0 and ATT&CK)
74
+ ## TTP Mapping (MITRE ATLAS v2026.05 and ATT&CK)
75
75
 
76
- This skill maps framework controls to attacker TTPs on demand rather than statically. The authoritative TTP catalog is `data/atlas-ttps.json` (pinned to MITRE ATLAS v5.6.0, May 2026) supplemented by MITRE ATT&CK Enterprise IDs for non-AI threats. The mapping convention used in every gap declaration this skill produces:
76
+ This skill maps framework controls to attacker TTPs on demand rather than statically. The authoritative TTP catalog is `data/atlas-ttps.json` (pinned to MITRE ATLAS v2026.05, May 2026) supplemented by MITRE ATT&CK Enterprise IDs for non-AI threats. The mapping convention used in every gap declaration this skill produces:
77
77
 
78
78
  | Built-in gap | Primary TTP(s) | Gap flag |
79
79
  |---|---|---|
@@ -44,7 +44,7 @@ d3fend_refs:
44
44
  - D3-EAL
45
45
  - D3-IOPR
46
46
  - D3-PSEP
47
- last_threat_review: "2026-05-11"
47
+ last_threat_review: "2026-06-10"
48
48
  discovery_mode: "standalone" # operator-reached via `exceptd brief fuzz-testing-strategy` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
49
49
  ---
50
50
 
@@ -87,7 +87,7 @@ By mid-2026 the asymmetry between offensive and defensive fuzzing has flipped. T
87
87
 
88
88
  ---
89
89
 
90
- ## TTP Mapping (MITRE ATLAS v5.6.0 + MITRE ATT&CK Enterprise)
90
+ ## TTP Mapping (MITRE ATLAS v2026.05 + MITRE ATT&CK Enterprise)
91
91
 
92
92
  Fuzz is a pre-exploit control: it surfaces weaknesses before they leave the build pipeline. Mapping is via the weakness root cause (CWE) rather than the post-exploit technique.
93
93
 
@@ -55,14 +55,14 @@ forward_watch:
55
55
  - AU SOCI Act expanded sector coverage (data-storage and processing entities added 2024; further mandatory-reporting tiers under review)
56
56
  - IL INCD Incident Response Process v4 (slated for 2026-2027) consolidating AI-incident sub-class
57
57
  - NYDFS 23 NYCRR 500.17 amendments tightening ransom-payment 24h disclosure operationalization
58
- last_threat_review: "2026-05-22"
58
+ last_threat_review: "2026-06-10"
59
59
  ---
60
60
 
61
61
  # Incident Response Playbook
62
62
 
63
63
  Incident response (IR) is the operational closure of every other skill in this catalog. A vulnerability becomes a CVE through `coordinated-vuln-disclosure`; a CVE becomes a lesson through `zeroday-gap-learn`; a lesson becomes a control through `framework-gap-analysis`; an attack on that control becomes an incident — and the incident handler runs the playbook this skill defines. If the playbook is wrong, every preceding investment leaks at the last yard.
64
64
 
65
- This skill operationalizes NIST SP 800-61r3 (Computer Security Incident Handling Guide, 2025 update integrating ATT&CK and Cyber Kill Chain), ISO/IEC 27035-1:2023 (principles and process) + ISO/IEC 27035-2:2023 (guidelines for incident response planning), and the SANS PICERL phases (Preparation, Identification, Containment, Eradication, Recovery, Lessons learned). It threads the Diamond Model and the MITRE Unified Kill Chain for adversary-narrative reconstruction, anchors detection engineering to MITRE ATT&CK v19.0 (April 2026), and treats three incident classes that the legacy IR literature predates: AI-class incidents (prompt-injection breach, model exfiltration, AI-API as C2 channel, AI-agent-initiated unauthorized action), AI-generated supply-chain compromise, and regulator-mandated notification under cross-jurisdiction clocks running in parallel.
65
+ This skill operationalizes NIST SP 800-61r3 (Computer Security Incident Handling Guide, 2025 update integrating ATT&CK and Cyber Kill Chain), ISO/IEC 27035-1:2023 (principles and process) + ISO/IEC 27035-2:2023 (guidelines for incident response planning), and the SANS PICERL phases (Preparation, Identification, Containment, Eradication, Recovery, Lessons learned). It threads the Diamond Model and the MITRE Unified Kill Chain for adversary-narrative reconstruction, anchors detection engineering to MITRE ATT&CK v19.1 (May 2026), and treats three incident classes that the legacy IR literature predates: AI-class incidents (prompt-injection breach, model exfiltration, AI-API as C2 channel, AI-agent-initiated unauthorized action), AI-generated supply-chain compromise, and regulator-mandated notification under cross-jurisdiction clocks running in parallel.
66
66
 
67
67
  ---
68
68
 
@@ -128,7 +128,7 @@ This skill is response-shaped — the TTPs below name the incident classes the p
128
128
  | **AML.T0017** | Discover ML Model Ontology | Adversary mapping of deployed model family, system-prompt structure, guardrails, and training-data signal — precursor to extraction and adversarial-input crafting | Identification: anomalous inference-API usage patterns (high-volume queries, structured probing, membership-inference signatures, repeated training-data extraction prompts). Containment: rate-limit + API-key revocation + IP block. Eradication: identify attacker access surface; assess what model-ontology data was exposed. Recovery: re-key, consider model-rotation if proprietary weights are at risk; for training-data exfiltration consider differential-privacy retraining. | No standardized detection signatures; org must build custom telemetry over AI inference APIs. |
129
129
  | **AML.T0051** | LLM Prompt Injection | Prompt-injection breach as incident trigger | Identification: AI-assistant or agentic-system anomalous action (unauthorized data access, anomalous tool invocation, identity-context confusion). Containment: revoke AI-system tool scopes, disable agent autonomy, isolate affected RAG corpus. Eradication: identify injection vector (web content, email signature, document metadata, RAG corpus poisoning) and remove. Recovery: re-deploy with hardened system prompt + tool-scoping per `mcp-agent-trust`. | Detection lags; most orgs discover the incident from downstream effect (unauthorized action) rather than detection at the prompt boundary. |
130
130
 
131
- ATLAS pinned to v5.6.0 (May 2026). ATT&CK pinned to v19.0 (April 2026); the Defense Evasion (TA0005) split into Stealth (TA0005) and Defense Impairment (TA0112) is traced via `tactic_moved_from` on affected `data/attack-techniques.json` entries and does not introduce breaking changes for the T-IDs cited above.
131
+ ATLAS pinned to v2026.05 (May 2026). ATT&CK pinned to v19.1 (May 2026); the Defense Evasion (TA0005) split into Stealth (TA0005) and Defense Impairment (TA0112) is traced via `tactic_moved_from` on affected `data/attack-techniques.json` entries and does not introduce breaking changes for the T-IDs cited above.
132
132
 
133
133
  ---
134
134
 
@@ -67,7 +67,7 @@ forward_watch:
67
67
  - Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — LiteLLM full SSRF + Code Injection by Out Of Bounds (Byung Young Yi); duplicate-class with the k3vg3n entry; track unified patch advisory
68
68
  - Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — LM Studio 5-bug exploit chain by STARLabs SG; impacts local MCP/agent runtime trust; track patch and integration advisories
69
69
  - Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — Claude Code MCP collision-scored entry by Viettel Cyber Security; CVE in flight; track MCP trust and tool-collision advisory
70
- last_threat_review: "2026-05-17"
70
+ last_threat_review: "2026-06-10"
71
71
  ---
72
72
 
73
73
  # MCP Agent Trust Assessment
@@ -165,7 +165,7 @@ Every MCP server listed in popular registries (MCP Hub, npm `@modelcontextprotoc
165
165
  |---|---|---|---|
166
166
  | AML.T0010 | ML Supply Chain Compromise | Direct: malicious MCP server in public registry compromises AI assistant's tool execution | ATLAS covers this conceptually; no framework has a technical control |
167
167
  | AML.T0054 | LLM Jailbreak | Indirect: adversarial prompt in tool response bypasses guardrails and triggers AI to call next malicious action | No framework control |
168
- | AML.T0096 | LLM Integration Abuse | AI assistant is the integration point being abused — MCP tool calls are the mechanism | Not in ATT&CK; only in ATLAS v5.6.0 |
168
+ | AML.T0096 | LLM Integration Abuse | AI assistant is the integration point being abused — MCP tool calls are the mechanism | Not in ATT&CK; only in ATLAS v2026.05 |
169
169
  | T1195.001 | Supply Chain Compromise: Compromise Software Dependencies | MCP server package as supply chain attack target | ATT&CK covers but enterprise controls don't reach developer MCP configs |
170
170
  | T1059 | Command and Script Interpreter | MCP server causes shell command execution via model-mediated tool call | Standard SI-3/EDR doesn't attribute this to the MCP server as origin |
171
171
  | T1190 | Exploit Public-Facing Application | CVE-2026-30615: MCP client vulnerability driven by a locally-installed malicious server (AV:L) | Standard vuln management covers client; MCP server trust is unaddressed |
@@ -60,8 +60,8 @@ forward_watch:
60
60
  - OpenSSF model-signing emergence to v1.0 — Sigstore-based model-weight signing; track for production adoption and admission-control integration
61
61
  - SLSA v1.1 ML profile (draft) — model-provenance extension for training-run attestation chains; track ID and section changes
62
62
  - EU AI Act high-risk technical-file implementing acts (2026-2027) — operational requirements for Article 10 / 13 / 15 documentation may pin ML-BOM or model-signing
63
- - MITRE ATLAS v5.6.0 (released May 2026) shipped the AML.T0010 sub-technique expansion this forecast tracked plus new techniques ("Publish Poisoned AI Agent Tool", "Escape to Host"); inventory now 16 tactics, 84 techniques, 56 sub-techniques. Forward watch: subsequent ATLAS minor and major releases — track next-cadence updates to agentic-AI TTPs and MLOps-pipeline-specific techniques
64
- last_threat_review: "2026-05-22"
63
+ - MITRE ATLAS v2026.05 (released May 2026) shipped the AML.T0010 sub-technique expansion this forecast tracked plus new techniques ("Publish Poisoned AI Agent Tool", "Escape to Host"); inventory now 16 tactics, 84 techniques, 56 sub-techniques. Forward watch: subsequent ATLAS minor and major releases — track next-cadence updates to agentic-AI TTPs and MLOps-pipeline-specific techniques
64
+ last_threat_review: "2026-06-10"
65
65
  discovery_mode: "standalone" # operator-reached via `exceptd brief mlops-security` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
66
66
  ---
67
67
 
@@ -111,7 +111,7 @@ This skill is distinct from `rag-pipeline-security` (which is retrieval-side of
111
111
 
112
112
  ## TTP Mapping
113
113
 
114
- Descriptions sourced from `data/atlas-ttps.json` (ATLAS v5.6.0, released 2026-05-08).
114
+ Descriptions sourced from `data/atlas-ttps.json` (ATLAS v2026.05, released 2026-05-27).
115
115
 
116
116
  | ATLAS / ATT&CK ID | Technique | MLOps Lifecycle Stage | Gap |
117
117
  |---|---|---|---|
@@ -43,7 +43,7 @@ cwe_refs:
43
43
  - CWE-306
44
44
  - CWE-1037
45
45
  d3fend_refs: []
46
- last_threat_review: "2026-05-11"
46
+ last_threat_review: "2026-06-10"
47
47
  discovery_mode: "standalone" # operator-reached via `exceptd brief ot-ics-security` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
48
48
  ---
49
49
 
@@ -100,11 +100,11 @@ ATT&CK for ICS is a separate matrix from Enterprise. Many IT-rooted SOCs do not
100
100
  | HMI host LPE | T1068 — Exploitation for Privilege Escalation | ATT&CK Enterprise | Windows 7/10 HMI host; un-rebootable; Copy Fail (CVE-2026-31431) on any Linux HMI; Print Spooler / win32k LPE family on Windows HMIs | IT patch SLAs (30 day) inapplicable to HMI hosts; no compensating-control baseline in NIST 800-82r3 |
101
101
  | Hard-coded / shared credentials | CWE-798 | CWE | Vendor default creds on PLC web UI; shared "operator" account across HMI fleet | IEC 62443-3-3 SR 1.5 (authenticator management) cannot land on devices that lack per-user accounts; NERC CIP-007-6 R5 password-management partially addresses but exempts cyber-asset classes lacking user-account features |
102
102
  | Firmware-image integrity | CWE-1037 (Processor Optimization Removal or Modification of Security-Critical Code) and CWE-345 family (insufficient verification of data authenticity, captured via cve-catalog supply-chain entries) | CWE | Unsigned firmware accepted by L1 device; vendor-side build pipeline compromise | NERC CIP-010 baseline-change management does not require firmware-image signature verification at install time |
103
- | AI-assistant prompt injection in HMI/engineering workflow | AML.T0010 — ML Supply Chain Compromise (closest existing ATLAS entry) | ATLAS v5.6.0 | Crafted historian tag value or vendor PDF poisons context; LLM proposes unsafe setpoint or misleads operator | No ATT&CK for ICS technique for AI-mediated operator deception; no IEC 62443 control on AI conduit; NIST 800-82r3 silent |
103
+ | AI-assistant prompt injection in HMI/engineering workflow | AML.T0010 — ML Supply Chain Compromise (closest existing ATLAS entry) | ATLAS v2026.05 | Crafted historian tag value or vendor PDF poisons context; LLM proposes unsafe setpoint or misleads operator | No ATT&CK for ICS technique for AI-mediated operator deception; no IEC 62443 control on AI conduit; NIST 800-82r3 silent |
104
104
 
105
105
  **Note on ATT&CK for ICS ID format.** ATT&CK for ICS uses `T0xxx` IDs (e.g., T0855, T0883, T0867). The linter regex `^T\d{4}(\.\d{3})?$` accepts this shape. For IT/OT convergence techniques (the IT side of the pivot), ATT&CK Enterprise IDs (T1190, T1068, T1078) are cited alongside.
106
106
 
107
- **Note on ATLAS coverage.** AML.T0010 (ML Supply Chain Compromise) is the closest current ATLAS v5.6.0 mapping for AI-augmented-HMI threats; it does not specifically cover prompt-injection-as-operator-deception in a control room. This is a tracked ATLAS gap — see `forward_watch`.
107
+ **Note on ATLAS coverage.** AML.T0010 (ML Supply Chain Compromise) is the closest current ATLAS v2026.05 mapping for AI-augmented-HMI threats; it does not specifically cover prompt-injection-as-operator-deception in a control room. This is a tracked ATLAS gap — see `forward_watch`.
108
108
 
109
109
  ---
110
110