@blamejs/exceptd-skills 0.9.1

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 (136) hide show
  1. package/AGENTS.md +232 -0
  2. package/ARCHITECTURE.md +267 -0
  3. package/CHANGELOG.md +616 -0
  4. package/CONTEXT.md +203 -0
  5. package/LICENSE +200 -0
  6. package/NOTICE +82 -0
  7. package/README.md +307 -0
  8. package/SECURITY.md +73 -0
  9. package/agents/README.md +81 -0
  10. package/agents/report-generator.md +156 -0
  11. package/agents/skill-updater.md +102 -0
  12. package/agents/source-validator.md +119 -0
  13. package/agents/threat-researcher.md +149 -0
  14. package/bin/exceptd.js +183 -0
  15. package/data/_indexes/_meta.json +88 -0
  16. package/data/_indexes/activity-feed.json +362 -0
  17. package/data/_indexes/catalog-summaries.json +229 -0
  18. package/data/_indexes/chains.json +7135 -0
  19. package/data/_indexes/currency.json +359 -0
  20. package/data/_indexes/did-ladders.json +451 -0
  21. package/data/_indexes/frequency.json +2072 -0
  22. package/data/_indexes/handoff-dag.json +476 -0
  23. package/data/_indexes/jurisdiction-clocks.json +967 -0
  24. package/data/_indexes/jurisdiction-map.json +536 -0
  25. package/data/_indexes/recipes.json +319 -0
  26. package/data/_indexes/section-offsets.json +3656 -0
  27. package/data/_indexes/stale-content.json +14 -0
  28. package/data/_indexes/summary-cards.json +1736 -0
  29. package/data/_indexes/theater-fingerprints.json +381 -0
  30. package/data/_indexes/token-budget.json +2137 -0
  31. package/data/_indexes/trigger-table.json +1374 -0
  32. package/data/_indexes/xref.json +818 -0
  33. package/data/atlas-ttps.json +282 -0
  34. package/data/cve-catalog.json +496 -0
  35. package/data/cwe-catalog.json +1017 -0
  36. package/data/d3fend-catalog.json +738 -0
  37. package/data/dlp-controls.json +1039 -0
  38. package/data/exploit-availability.json +67 -0
  39. package/data/framework-control-gaps.json +1255 -0
  40. package/data/global-frameworks.json +2913 -0
  41. package/data/rfc-references.json +324 -0
  42. package/data/zeroday-lessons.json +377 -0
  43. package/keys/public.pem +3 -0
  44. package/lib/framework-gap.js +328 -0
  45. package/lib/job-queue.js +195 -0
  46. package/lib/lint-skills.js +536 -0
  47. package/lib/prefetch.js +372 -0
  48. package/lib/refresh-external.js +713 -0
  49. package/lib/schemas/cve-catalog.schema.json +151 -0
  50. package/lib/schemas/manifest.schema.json +106 -0
  51. package/lib/schemas/skill-frontmatter.schema.json +113 -0
  52. package/lib/scoring.js +149 -0
  53. package/lib/sign.js +197 -0
  54. package/lib/ttp-mapper.js +80 -0
  55. package/lib/validate-catalog-meta.js +198 -0
  56. package/lib/validate-cve-catalog.js +213 -0
  57. package/lib/validate-indexes.js +83 -0
  58. package/lib/validate-package.js +162 -0
  59. package/lib/validate-vendor.js +85 -0
  60. package/lib/verify.js +216 -0
  61. package/lib/worker-pool.js +84 -0
  62. package/manifest-snapshot.json +1833 -0
  63. package/manifest.json +2108 -0
  64. package/orchestrator/README.md +124 -0
  65. package/orchestrator/dispatcher.js +140 -0
  66. package/orchestrator/event-bus.js +146 -0
  67. package/orchestrator/index.js +874 -0
  68. package/orchestrator/pipeline.js +201 -0
  69. package/orchestrator/scanner.js +327 -0
  70. package/orchestrator/scheduler.js +137 -0
  71. package/package.json +113 -0
  72. package/sbom.cdx.json +158 -0
  73. package/scripts/audit-cross-skill.js +261 -0
  74. package/scripts/audit-perf.js +160 -0
  75. package/scripts/bootstrap.js +205 -0
  76. package/scripts/build-indexes.js +721 -0
  77. package/scripts/builders/activity-feed.js +79 -0
  78. package/scripts/builders/catalog-summaries.js +67 -0
  79. package/scripts/builders/currency.js +109 -0
  80. package/scripts/builders/cwe-chains.js +105 -0
  81. package/scripts/builders/did-ladders.js +149 -0
  82. package/scripts/builders/frequency.js +89 -0
  83. package/scripts/builders/jurisdiction-clocks.js +126 -0
  84. package/scripts/builders/recipes.js +159 -0
  85. package/scripts/builders/section-offsets.js +162 -0
  86. package/scripts/builders/stale-content.js +171 -0
  87. package/scripts/builders/summary-cards.js +166 -0
  88. package/scripts/builders/theater-fingerprints.js +198 -0
  89. package/scripts/builders/token-budget.js +96 -0
  90. package/scripts/check-manifest-snapshot.js +217 -0
  91. package/scripts/predeploy.js +267 -0
  92. package/scripts/refresh-manifest-snapshot.js +57 -0
  93. package/scripts/refresh-sbom.js +222 -0
  94. package/skills/age-gates-child-safety/skill.md +456 -0
  95. package/skills/ai-attack-surface/skill.md +282 -0
  96. package/skills/ai-c2-detection/skill.md +440 -0
  97. package/skills/ai-risk-management/skill.md +311 -0
  98. package/skills/api-security/skill.md +287 -0
  99. package/skills/attack-surface-pentest/skill.md +381 -0
  100. package/skills/cloud-security/skill.md +384 -0
  101. package/skills/compliance-theater/skill.md +365 -0
  102. package/skills/container-runtime-security/skill.md +379 -0
  103. package/skills/coordinated-vuln-disclosure/skill.md +473 -0
  104. package/skills/defensive-countermeasure-mapping/skill.md +300 -0
  105. package/skills/dlp-gap-analysis/skill.md +337 -0
  106. package/skills/email-security-anti-phishing/skill.md +206 -0
  107. package/skills/exploit-scoring/skill.md +331 -0
  108. package/skills/framework-gap-analysis/skill.md +374 -0
  109. package/skills/fuzz-testing-strategy/skill.md +313 -0
  110. package/skills/global-grc/skill.md +564 -0
  111. package/skills/identity-assurance/skill.md +272 -0
  112. package/skills/incident-response-playbook/skill.md +546 -0
  113. package/skills/kernel-lpe-triage/skill.md +303 -0
  114. package/skills/mcp-agent-trust/skill.md +326 -0
  115. package/skills/mlops-security/skill.md +325 -0
  116. package/skills/ot-ics-security/skill.md +340 -0
  117. package/skills/policy-exception-gen/skill.md +437 -0
  118. package/skills/pqc-first/skill.md +546 -0
  119. package/skills/rag-pipeline-security/skill.md +294 -0
  120. package/skills/researcher/skill.md +310 -0
  121. package/skills/sector-energy/skill.md +409 -0
  122. package/skills/sector-federal-government/skill.md +302 -0
  123. package/skills/sector-financial/skill.md +398 -0
  124. package/skills/sector-healthcare/skill.md +373 -0
  125. package/skills/security-maturity-tiers/skill.md +464 -0
  126. package/skills/skill-update-loop/skill.md +463 -0
  127. package/skills/supply-chain-integrity/skill.md +318 -0
  128. package/skills/threat-model-currency/skill.md +404 -0
  129. package/skills/threat-modeling-methodology/skill.md +312 -0
  130. package/skills/webapp-security/skill.md +281 -0
  131. package/skills/zeroday-gap-learn/skill.md +350 -0
  132. package/vendor/blamejs/LICENSE +201 -0
  133. package/vendor/blamejs/README.md +54 -0
  134. package/vendor/blamejs/_PROVENANCE.json +54 -0
  135. package/vendor/blamejs/retry.js +335 -0
  136. package/vendor/blamejs/worker-pool.js +418 -0
@@ -0,0 +1,404 @@
1
+ ---
2
+ name: threat-model-currency
3
+ version: "1.0.0"
4
+ description: Score how current an org's threat model is against 2026 reality — 14-item checklist, currency percentage, prioritized update roadmap
5
+ triggers:
6
+ - threat model currency
7
+ - update threat model
8
+ - threat model review
9
+ - is our threat model current
10
+ - threat model gap
11
+ - threat intelligence gap
12
+ data_deps:
13
+ - atlas-ttps.json
14
+ - cve-catalog.json
15
+ - framework-control-gaps.json
16
+ atlas_refs: []
17
+ attack_refs: []
18
+ framework_gaps: []
19
+ forward_watch:
20
+ - New AI attack classes as ATLAS v6 publishes
21
+ - Post-quantum adversary capability timeline
22
+ - New CISA KEV entries in kernel/AI/supply chain categories
23
+ - New MCP or agent protocol security disclosures
24
+ - Emerging malware families using AI for evasion
25
+ last_threat_review: "2026-05-01"
26
+ ---
27
+
28
+ # Threat Model Currency Assessment
29
+
30
+ ## Purpose
31
+
32
+ Most organizational threat models were last substantially revised 2–4 years ago. They describe the threat landscape of 2021–2022: ransomware, supply chain (SolarWinds-era), cloud misconfiguration, credential phishing using template emails. This is not the 2026 threat landscape.
33
+
34
+ This skill produces a currency score and a specific update roadmap. Currency is measured against 14 threat classes that define the mid-2026 threat reality. Each unchecked item is a specific gap, not a generic "keep monitoring" recommendation.
35
+
36
+ ---
37
+
38
+ ## The 14 Threat Class Checklist
39
+
40
+ ### Class 1: AI-Discovered Kernel Vulnerabilities
41
+
42
+ **2026 reality:** AI systems discovered Copy Fail (CVE-2026-31431) in approximately one hour. The vulnerability class — page-cache write primitives enabling deterministic LPE — had existed in every major Linux distribution since 2017. Human researchers did not find it in 9 years.
43
+
44
+ **Currency check questions:**
45
+ - Does the threat model include AI-accelerated vulnerability discovery as a threat actor capability?
46
+ - Does the threat model acknowledge that AI-discovered vulnerabilities may be weaponized faster than human-speed patch cycles?
47
+ - Does the patch management policy differentiate CISA KEV + public PoC from non-exploited High CVEs?
48
+
49
+ **If unchecked:** The threat model assumes human-speed exploit development. This assumption fails for Copy Fail class vulnerabilities.
50
+
51
+ **ATLAS/ATT&CK ref:** T1068 (Exploitation for Privilege Escalation)
52
+
53
+ ---
54
+
55
+ ### Class 2: Deterministic Kernel LPE (No Race Condition)
56
+
57
+ **2026 reality:** Copy Fail is deterministic. Previous privilege escalation class vulnerabilities (Dirty COW, etc.) had race conditions that introduced unreliability and noise. Copy Fail has none. A 732-byte script reliably escalates to root on every attempt.
58
+
59
+ **Currency check questions:**
60
+ - Does the threat model distinguish deterministic LPEs from probabilistic ones?
61
+ - Does the incident response plan treat a confirmed exploitation of a deterministic LPE as an immediate full-system compromise, not a "potential" compromise?
62
+
63
+ **If unchecked:** IR playbooks may underestimate the reliability and speed of privilege escalation on unpatched systems.
64
+
65
+ ---
66
+
67
+ ### Class 3: IPsec Subsystem Exploitation (Network Control Bypass)
68
+
69
+ **2026 reality:** Dirty Frag (CVE-2026-43284/43500) exploits the IPsec implementation itself. Network segmentation controls that rely on IPsec cannot be claimed as compensating controls for unpatched systems.
70
+
71
+ **Currency check questions:**
72
+ - Does the threat model include exploitation of cryptographic subsystems as a bypass for network isolation controls?
73
+ - Are IPsec-dependent network controls flagged for review when kernel CVEs affecting IPsec are published?
74
+
75
+ **If unchecked:** Network segmentation controls may be claimed as compensating controls when they are actually part of the attack surface.
76
+
77
+ ---
78
+
79
+ ### Class 4: Prompt Injection as Enterprise RCE
80
+
81
+ **2026 reality:** CVE-2025-53773 demonstrated prompt injection in a production developer tool (GitHub Copilot) achieving CVSS 9.6 RCE. This is not a research demo. It is a real CVE in a tool used by hundreds of millions of developers. Attack success rates against SOTA defenses exceed 85%.
82
+
83
+ **Currency check questions:**
84
+ - Does the threat model include prompt injection as an RCE vector (not just a chatbot annoyance)?
85
+ - Is prompt injection included in application threat models for any system with an LLM component?
86
+ - Are AI coding assistants in scope for the threat model?
87
+
88
+ **If unchecked:** Prompt injection is classified as a "trust and safety" issue, not a security control failure. The CVSS 9.6 data says otherwise.
89
+
90
+ ---
91
+
92
+ ### Class 5: MCP Supply Chain RCE
93
+
94
+ **2026 reality:** CVE-2026-30615 (Windsurf) demonstrated zero-user-interaction RCE via the MCP tool ecosystem. 150M+ affected. Every major AI coding assistant has the same architectural attack surface.
95
+
96
+ **Currency check questions:**
97
+ - Does the threat model include AI tool supply chain as an attack surface?
98
+ - Are MCP servers treated as third-party code with supply chain risk?
99
+ - Is developer workstation compromise via AI tool plugins in scope?
100
+
101
+ **If unchecked:** Supply chain threat model covers npm packages, Docker images, and cloud providers — but not AI tool plugins, which now have an equal or greater attack surface.
102
+
103
+ ---
104
+
105
+ ### Class 6: AI-Assisted Exploit Development (Attacker-Side)
106
+
107
+ **2026 reality:** 41% of 2025 zero-days involved AI-assisted reverse engineering on the attacker side. AI has compressed the weaponization timeline from weeks to hours for a significant class of vulnerabilities.
108
+
109
+ **Currency check questions:**
110
+ - Does the threat model account for AI-compressed exploit development timelines?
111
+ - Do patch SLAs reflect that "critical patch in 30 days" is now an exploitation window, not a safety window?
112
+ - Is AI-assisted vulnerability research by threat actors included in the threat actor capability section?
113
+
114
+ **If unchecked:** Risk assessments assume historical exploit development timelines. These timelines are broken.
115
+
116
+ ---
117
+
118
+ ### Class 7: AI as Covert C2 (SesameOp Pattern)
119
+
120
+ **2026 reality:** Adversaries are using legitimate AI API endpoints as covert C2 channels (ATLAS AML.T0096). Traffic is indistinguishable from legitimate AI usage. Traditional C2 detection (DGA, beaconing, protocol anomalies) has zero coverage.
121
+
122
+ **Currency check questions:**
123
+ - Does the threat model include AI APIs as potential C2 channels?
124
+ - Is AI API behavioral monitoring included in the detection architecture?
125
+ - Is there a detection control that would fire for a SesameOp-style C2 pattern?
126
+
127
+ **If unchecked:** The C2 detection architecture has a complete blind spot for a confirmed, documented threat technique.
128
+
129
+ ---
130
+
131
+ ### Class 8: AI-Generated Malware Evasion (PROMPTFLUX Pattern)
132
+
133
+ **2026 reality:** PROMPTFLUX queries public LLMs in real-time to generate novel evasion code. Every execution produces a unique sample. Signature-based detection has zero coverage.
134
+
135
+ **Currency check questions:**
136
+ - Does the threat model include AI-generated dynamic malware evasion?
137
+ - Does the detection architecture go beyond signature matching for malware detection?
138
+ - Is behavioral detection the primary malware detection mechanism?
139
+
140
+ **If unchecked:** Malware detection architecture is primarily signature-based. For PROMPTFLUX class, signature-based detection is bypassed by design.
141
+
142
+ ---
143
+
144
+ ### Class 9: RAG Data Exfiltration
145
+
146
+ **2026 reality:** Attackers can manipulate vector embeddings to force RAG retrieval mechanisms to surface and exfiltrate proprietary data. No framework covers this. Organizations deploying RAG for sensitive data have zero control guidance.
147
+
148
+ **Currency check questions:**
149
+ - Does the threat model include RAG pipeline attacks if the organization uses RAG?
150
+ - Are vector stores classified as sensitive data assets requiring access controls?
151
+ - Is retrieval behavior monitored for anomalous patterns?
152
+
153
+ **If unchecked:** RAG systems are deployed with the same security model as traditional databases (perimeter + access control), which doesn't account for semantic retrieval attacks.
154
+
155
+ ---
156
+
157
+ ### Class 10: Model Poisoning of Decision Systems
158
+
159
+ **2026 reality:** Training pipeline targeting has moved to biasing ML models used in decision systems (logistics, classification, fraud detection). The attack is subtle — the model performs normally on most inputs but produces adversary-favorable decisions on specific inputs.
160
+
161
+ **Currency check questions:**
162
+ - Does the threat model include model poisoning for any ML system used in consequential decisions?
163
+ - Is model integrity verification (behavioral testing, output monitoring) in place?
164
+ - Is the ML training pipeline in scope for supply chain security?
165
+
166
+ **If unchecked:** ML decision systems are treated as software (covered by standard SDLC security) without accounting for ML-specific attacks on model behavior.
167
+
168
+ ---
169
+
170
+ ### Class 11: AI-Speed Reconnaissance
171
+
172
+ **2026 reality:** AI-assisted reconnaissance is observed at 36,000 probes per second per campaign. Rate-based detection thresholds set for human-speed reconnaissance (hundreds to low thousands of probes per second) don't fire until significant intelligence has already been gathered.
173
+
174
+ **Currency check questions:**
175
+ - Do network monitoring thresholds account for AI-speed reconnaissance rates?
176
+ - Is asset exposure to the internet minimized given the AI-speed enumeration baseline?
177
+ - Are external attack surface management tools in place?
178
+
179
+ **If unchecked:** Reconnaissance detection thresholds allow complete infrastructure mapping before an alert fires.
180
+
181
+ ---
182
+
183
+ ### Class 12: AI-Generated Credential Phishing
184
+
185
+ **2026 reality:** 82.6% of phishing emails contain AI-generated content. AI-generated phishing is indistinguishable from legitimate emails by grammar/style analysis. Credential theft via AI-assisted phishing increased 160% in 2025.
186
+
187
+ **Currency check questions:**
188
+ - Does the threat model reflect AI-generated phishing as the baseline phishing capability (not an advanced technique)?
189
+ - Are phishing detection controls updated for AI-generated content?
190
+ - Is MFA phishing-resistant (passkeys/hardware keys)? SMS/TOTP remains vulnerable to real-time AI-assisted phishing.
191
+
192
+ **If unchecked:** Phishing threat model is built on detection of human-generated templates. 82.6% of actual phishing bypasses these detectors.
193
+
194
+ ---
195
+
196
+ ### Class 13: MITRE ATLAS v5.1.0 Coverage
197
+
198
+ **2026 reality:** MITRE ATLAS (November 2025, v5.1.0) is the primary AI threat framework. Most SOC detection engineering programs are built on ATT&CK, not ATLAS. AI-specific TTPs have zero detection coverage in ATT&CK-only programs.
199
+
200
+ **Currency check questions:**
201
+ - Is MITRE ATLAS v5.1.0 incorporated into the threat model?
202
+ - Are ATLAS TTPs mapped to detection controls?
203
+ - What is the current ATLAS version in use? (Current: 5.1.0, November 2025)
204
+
205
+ **If unchecked:** AI-specific threat techniques are not covered by the detection architecture. The SOC has no alerts for ATLAS TTPs.
206
+
207
+ ---
208
+
209
+ ### Class 14: Post-Quantum Adversary Timeline
210
+
211
+ **2026 reality:** NIST has standardized ML-KEM (FIPS 203), ML-DSA (FIPS 204), and SLH-DSA (FIPS 205). CISA and NSA have recommended PQC migration timelines. Harvest-now-decrypt-later attacks against encrypted traffic are ongoing. The "decrypt later" timeline is shortening.
212
+
213
+ **Currency check questions:**
214
+ - Does the threat model include quantum adversary capability timelines?
215
+ - Is there a PQC migration roadmap?
216
+ - Are long-lived sensitive communications (data with > 10-year sensitivity requirement) protected with post-quantum cryptography?
217
+
218
+ **If unchecked:** Adversaries conducting harvest-now-decrypt-later operations against sensitive traffic are not in the threat model.
219
+
220
+ ---
221
+
222
+ ## Threat Context
223
+
224
+ Most organizational threat models in circulation today are 2022–2024 vintage. They were written before the operational reality of mid-2026:
225
+
226
+ - **AI-discovered LPEs.** Copy Fail (CVE-2026-31431) was found by an AI system in roughly one hour in a code path that had been in every major Linux distribution for nine years. A threat model that does not name "AI-assisted vulnerability discovery" as an attacker capability cannot reason about Copy Fail-class exposure.
227
+ - **Zero-interaction MCP RCE.** CVE-2026-30615 (Windsurf) demonstrated that a malicious MCP server can drive an AI coding assistant to execute code in the developer's user context without any human action. 150M+ combined downloads of MCP-capable assistants share the same architectural surface. A threat model that lists "third-party software" but not "AI tool plugins" is no longer comprehensive.
228
+ - **AI-API C2 (SesameOp).** Adversaries are using legitimate AI API endpoints (ATLAS AML.T0096) as covert command-and-control channels. Traffic is indistinguishable from legitimate usage at the network layer. A threat model whose C2 chapter still lists only DGAs, beaconing, and protocol anomalies has a documented blind spot.
229
+ - **AI-accelerated weaponization.** 41% of 2025 zero-days involved AI-assisted reverse engineering on the attacker side. The window between disclosure and reliable exploitation has compressed from weeks to hours for a meaningful class of CVEs.
230
+ - **AI-generated phishing as baseline.** 82.6% of phishing in 2025 contained AI-generated content. Threat models that treat AI-generated phishing as an "emerging" or "advanced" capability are scoring below the actual median attacker.
231
+
232
+ Currency is the gap. The threat-model document is rarely "wrong" — it is usually correct *for 2022*. This skill measures the delta.
233
+
234
+ ---
235
+
236
+ ## Framework Lag Declaration
237
+
238
+ No major risk-assessment or threat-intelligence framework defines a currency metric or mandates a refresh cadence indexed to current TTPs. The gap is global, not US-specific.
239
+
240
+ | Framework | Control | What it misses |
241
+ |---|---|---|
242
+ | NIST | SP 800-30 Rev. 1 (Guide for Conducting Risk Assessments) | Process-only. Requires identifying threats, vulnerabilities, likelihood, impact — defines no metric for the *currency* of the threat catalog used. A 2022 threat model can be SP 800-30-compliant in 2026. |
243
+ | NIST | SP 800-39 / SP 800-37 (Risk Management Framework) | Mandates ongoing risk assessment but not threat-model refresh cycles tied to KEV/ATLAS updates. |
244
+ | NIST | AI RMF MAP-2.1 | Requires categorising AI-system risks; does not require the categorisation be re-run when new ATLAS TTPs publish. |
245
+ | ISO | 27005:2022 (Information security risk management) | Same shape as SP 800-30 — process guidance with no currency requirement. |
246
+ | ISO | 27001:2022 A.5.7 (Threat intelligence) | Requires collection and analysis of threat intelligence. Defines no recency requirement, no metric for "current", no test that distinguishes current threat intel from a 2022 PDF on a shelf. |
247
+ | EU | NIS2 Art. 21(2)(a) (Risk analysis and information system security policies) | Mandates risk analysis as a measure; is silent on threat-model age or refresh trigger. National competent authorities have not (mid-2026) issued binding guidance on threat-model currency. |
248
+ | EU | DORA Art. 6 (ICT risk management framework) | Requires identification of ICT risks "on an ongoing basis"; "ongoing" is undefined and unmetered. |
249
+ | EU | EU AI Act Art. 9 (Risk Management System for high-risk AI) | Mandates "continuous iterative" risk management; provides no currency test, no mapping to ATLAS, no required refresh trigger. |
250
+ | UK | NCSC CAF Principle A2 (Risk Management) | Principle-based, leaves currency to the assessor. No threat-class checklist, no minimum refresh cadence. |
251
+ | AU | ISM-0042 / Essential 8 governance | Requires documented risk assessment; no currency metric. ISM updates monthly but does not require organisations' threat models to track its cadence. |
252
+ | Global | COSO ERM / ISO 31000 | Enterprise risk frameworks treat cyber as one risk category; no operational threat-currency requirement. |
253
+
254
+ The recurring failure across all of the above: every framework treats threat modelling as a process to perform, not a knowledge artefact to keep fresh against external TTP catalogs. The 14-class checklist in this skill is the missing currency metric.
255
+
256
+ ---
257
+
258
+ ## TTP Mapping
259
+
260
+ The 14-class checklist above *is* the TTP map. Each class is a coverage requirement against the canonical sources of truth: `data/atlas-ttps.json` (MITRE ATLAS v5.1.0) and the ATT&CK techniques referenced in `data/cve-catalog.json`. A current threat model must address — explicitly or by reasoned exclusion — every TTP below.
261
+
262
+ | Class | Primary TTP | Catalog source | Gap if absent |
263
+ |---|---|---|---|
264
+ | 1 — AI-discovered kernel LPE | T1068 (Exploitation for Privilege Escalation) | cve-catalog.json: CVE-2026-31431 | Threat model assumes human-speed exploit discovery |
265
+ | 2 — Deterministic LPE | T1068 | cve-catalog.json: CVE-2026-31431 | IR plan treats LPE as probabilistic |
266
+ | 3 — IPsec subsystem LPE | T1068 | cve-catalog.json: CVE-2026-43284 / CVE-2026-43500 | Network-segmentation claimed as compensating control for the attack surface itself |
267
+ | 4 — Prompt injection RCE | AML.T0051 (LLM Prompt Injection), AML.T0054 (Craft Adversarial Data — NLP) | atlas-ttps.json + CVE-2025-53773 | Prompt injection treated as T&S, not security |
268
+ | 5 — MCP supply chain RCE | AML.T0010 (ML Supply Chain Compromise), T1190 (Exploit Public-Facing Application) | atlas-ttps.json + CVE-2026-30615 | AI plugin ecosystem out of supply-chain scope |
269
+ | 6 — AI-assisted weaponization | AML.T0017 (Develop Capabilities) | atlas-ttps.json | Patch SLAs sized for 2019 attacker speed |
270
+ | 7 — AI as covert C2 | AML.T0096 (LLM Integration Abuse — C2) | atlas-ttps.json | C2 detection architecture has total blind spot |
271
+ | 8 — AI-generated malware evasion | AML.T0016 (Acquire Public ML Artifacts) | atlas-ttps.json | Detection stack signature-bound; PROMPTFLUX bypasses by design |
272
+ | 9 — RAG exfiltration | AML.T0043 (Craft Adversarial Data) | atlas-ttps.json | Vector store treated as database, not as semantic exfil surface |
273
+ | 10 — Model poisoning | AML.T0020 (Poison Training Data) | atlas-ttps.json | ML decision systems treated as standard software |
274
+ | 11 — AI-speed reconnaissance | T1595 (Active Scanning), T1190 | ATT&CK | Rate-based detection thresholds calibrated for human-speed scans |
275
+ | 12 — AI-generated phishing | AML.T0016 (Acquire Public ML Artifacts — misuse), T1566 (Phishing) | atlas-ttps.json + ATT&CK | Detection rules tuned for 2021 phishing |
276
+ | 13 — ATLAS coverage | All AML.T* in atlas-ttps.json | atlas-ttps.json `_meta.atlas_version` | SOC detection programs are ATT&CK-only |
277
+ | 14 — Post-quantum adversary | T1557 (harvest-now-decrypt-later context) | global-frameworks.json (PQC standards) | Long-lived sensitive traffic captured today, decrypted later |
278
+
279
+ The truth set: every `AML.T*` key in `data/atlas-ttps.json` (excluding `_meta`) and every `attack_refs` entry across every CVE in `data/cve-catalog.json`. A threat model that does not address each, or document a reasoned exclusion for each, is non-current by construction.
280
+
281
+ ---
282
+
283
+ ## Exploit Availability Matrix
284
+
285
+ A threat model is "current" only if it accounts for every `data/cve-catalog.json` entry with RWEP >= 50 — with either a deployed mitigation or a documented, accepted residual risk. As of `last_threat_review: 2026-05-01`:
286
+
287
+ | CVE | Name | CVSS | RWEP | KEV | PoC | AI factor | Live-patchable | Required threat-model treatment |
288
+ |---|---|---|---|---|---|---|---|---|
289
+ | CVE-2026-31431 | Copy Fail | 7.8 | 90 | Yes (2026-03-15) | Yes — 732-byte deterministic | AI-discovered | Yes (kpatch / canonical-livepatch / kGraft) | Must name as named threat. Patch SLA must reflect KEV + deterministic class — live-patch within hours, not 30 days. |
290
+ | CVE-2025-53773 | Copilot prompt-injection RCE | 9.6 | 42 | No | Yes — demonstrated | AI-weaponized | Yes (SaaS vendor patch) | Must include prompt injection as RCE vector if any developer uses Copilot. |
291
+ | CVE-2026-30615 | Windsurf MCP zero-interaction RCE | 9.8 | 35 | No | Partial | No | Yes (IDE update) | Must include MCP supply chain if any developer uses any MCP-capable assistant. |
292
+ | CVE-2026-43284 | Dirty Frag (ESP/IPsec) | 7.8 | 38 | No | Yes — chain component | No | No | Required if IPsec-based controls are claimed as compensating. |
293
+ | CVE-2026-43500 | Dirty Frag (RxRPC) | 7.6 | 32 | No | Yes — chain component | No | No | Required when chained with CVE-2026-43284 in IR scenario planning. |
294
+
295
+ The hard rule for currency scoring: every CVE in the catalog with RWEP >= 50 (currently CVE-2026-31431) must appear in the threat model under its named threat or its CVE ID. RWEP 40–49 entries should appear if the org uses the affected technology. Sub-40 entries appear by exception.
296
+
297
+ Run `node lib/scoring.js` to recompute RWEP if `data/cve-catalog.json` has been updated since `last_threat_review`.
298
+
299
+ ---
300
+
301
+ ## Compliance Theater Check
302
+
303
+ Apply this single test to any "yes, we have a threat model" claim:
304
+
305
+ > "What was the publish or last-revision date of the version of the threat model that is currently authoritative inside your organisation? Now list every CISA KEV addition since that date that affects any technology in your stack (Linux kernel, AI coding assistants, MCP servers, identity providers, edge appliances). For each, point to the line in the threat model that addresses it, or the dated risk-acceptance memo. If the answer is 'we'll update it at next review' and the next review is more than 30 days out, the threat model is a compliance artefact, not an operational document. The control is documented; it is not operational."
306
+
307
+ A complementary test for AI surfaces:
308
+
309
+ > "Open `data/atlas-ttps.json`. Pick any three `AML.T*` IDs at random. For each, show where in your threat model the technique is named or where the equivalent attack is described. If the threat model has zero ATLAS IDs and the org operates any LLM-integrated system, the AI section is theater — the document predates the threat catalog that defines AI threats."
310
+
311
+ A complementary test for global orgs:
312
+
313
+ > "Your org is subject to DORA (4h initial incident notification). When did your threat model last refresh its incident-classification taxonomy against DORA's RTS on classification of major ICT-related incidents? If the answer is 'before January 2025', the threat model cannot drive DORA-compliant classification decisions — by definition, the taxonomy predates the regulation."
314
+
315
+ ---
316
+
317
+ ## Scoring
318
+
319
+ For each class, score:
320
+ - **2 points:** Explicitly addressed in threat model with specific controls
321
+ - **1 point:** Mentioned in threat model but without specific controls
322
+ - **0 points:** Not addressed
323
+
324
+ **Total: 28 points maximum**
325
+
326
+ | Score | Currency Rating |
327
+ |---|---|
328
+ | 25–28 | Current (≥ 89%) |
329
+ | 20–24 | Mostly current — 2–3 gaps |
330
+ | 14–19 | Partially current — systematic AI/modern threat gaps |
331
+ | 7–13 | Significantly stale — 2022 threat model |
332
+ | 0–6 | Critically stale — 2019-era threat model |
333
+
334
+ ---
335
+
336
+ ## Analysis Procedure
337
+
338
+ ### Step 1: Obtain the current threat model
339
+
340
+ Request or locate:
341
+ - Most recent threat model document
342
+ - Date of last substantive update (not just cosmetic/formatting)
343
+ - Which threat actors are in scope
344
+ - Which attack classes are documented
345
+
346
+ ### Step 2: Score each of the 14 classes
347
+
348
+ For each class:
349
+ 1. Is it explicitly in the threat model? If yes, with specific controls?
350
+ 2. Score 0/1/2
351
+
352
+ ### Step 3: Identify top gaps
353
+
354
+ Prioritize unchecked classes by RWEP impact:
355
+ 1. Classes where a real, exploited CVE (Copy Fail, Windsurf MCP) means current exposure
356
+ 2. Classes where detection architecture has zero coverage (AI C2, PROMPTFLUX)
357
+ 3. Classes that affect future risk posture (PQC, AI reconnaissance speed)
358
+
359
+ ### Step 4: Generate update roadmap
360
+
361
+ For each gap, produce a specific, actionable update:
362
+ - What text to add to the threat model
363
+ - What ATLAS/ATT&CK TTP to reference
364
+ - What control to add or update
365
+
366
+ ---
367
+
368
+ ## Output Format
369
+
370
+ ```
371
+ ## Threat Model Currency Assessment
372
+
373
+ **Date:** YYYY-MM-DD
374
+ **Threat Model Version:** [document version / last update date]
375
+
376
+ ### Currency Score: [X / 28] = [percentage]%
377
+ **Rating:** [Current / Mostly current / Partially current / Significantly stale / Critically stale]
378
+
379
+ ### Class-by-Class Scoring
380
+ | # | Threat Class | Score | Finding |
381
+ |---|---|---|---|
382
+ | 1 | AI-Discovered Kernel Vulnerabilities | 0/1/2 | [specific gap or confirmation] |
383
+ | 2 | Deterministic Kernel LPE | 0/1/2 | |
384
+ | 3 | IPsec Subsystem Exploitation | 0/1/2 | |
385
+ | 4 | Prompt Injection as Enterprise RCE | 0/1/2 | |
386
+ | 5 | MCP Supply Chain RCE | 0/1/2 | |
387
+ | 6 | AI-Assisted Exploit Development | 0/1/2 | |
388
+ | 7 | AI as Covert C2 | 0/1/2 | |
389
+ | 8 | AI-Generated Malware Evasion | 0/1/2 | |
390
+ | 9 | RAG Data Exfiltration | 0/1/2 | |
391
+ | 10 | Model Poisoning | 0/1/2 | |
392
+ | 11 | AI-Speed Reconnaissance | 0/1/2 | |
393
+ | 12 | AI-Generated Credential Phishing | 0/1/2 | |
394
+ | 13 | MITRE ATLAS v5.1.0 Coverage | 0/1/2 | |
395
+ | 14 | Post-Quantum Adversary Timeline | 0/1/2 | |
396
+
397
+ ### Priority Update Roadmap
398
+ [Ordered by current exposure risk: specific additions for each gap]
399
+
400
+ ### ATLAS Version Check
401
+ Current reference: MITRE ATLAS v5.1.0 (November 2025)
402
+ Threat model references: [version cited in document]
403
+ Gap: [if different]
404
+ ```