@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,331 @@
1
+ ---
2
+ name: exploit-scoring
3
+ version: "1.0.0"
4
+ description: Real-World Exploit Priority (RWEP) scoring — CVSS plus KEV, PoC, AI-acceleration, blast radius, live-patch factors
5
+ triggers:
6
+ - exploit scoring
7
+ - rwep
8
+ - real world priority
9
+ - how bad is this cve
10
+ - prioritize cve
11
+ - cve priority
12
+ - patch priority
13
+ - beyond cvss
14
+ data_deps:
15
+ - cve-catalog.json
16
+ - exploit-availability.json
17
+ atlas_refs: []
18
+ attack_refs: []
19
+ framework_gaps:
20
+ - CWE-Top-25-2024-meta
21
+ - CIS-Controls-v8-Control7
22
+ last_threat_review: "2026-05-01"
23
+ ---
24
+
25
+ # Real-World Exploit Priority (RWEP) Scoring
26
+
27
+ CVSS measures severity — the theoretical worst-case impact of a vulnerability. RWEP measures priority — how urgently a specific vulnerability requires action given real-world exploit availability, operational constraints, and blast radius.
28
+
29
+ A CVSS 9.8 vulnerability with no public exploit, no active exploitation, and a straightforward patch may be lower priority than a CVSS 7.8 vulnerability that is CISA KEV listed, has a public 732-byte deterministic exploit, and requires a reboot to patch.
30
+
31
+ ---
32
+
33
+ ## Threat Context (mid-2026)
34
+
35
+ RWEP exists because the exploit development cycle has compressed. The factors that CVSS does not model are now the dominant signal in real-world prioritization.
36
+
37
+ - **AI-accelerated exploit development is current operational reality, not emerging.** 41% of 2025 zero-days were discovered or weaponized with AI-assisted tooling (AGENTS.md DR-5). Copy Fail (CVE-2026-31431) was discovered by an AI system in approximately one hour. CVSS scoring assumes a human-speed gap between disclosure and reliable exploitation — that gap is gone for AI-capable threat actors.
38
+ - **CVSS undercounts AI-discovered + KEV-listed bugs.** CVE-2026-31431 scores CVSS 7.8 (High). Treated as a CVSS-band-7 item, it lands in a 30-day remediation queue. Treated honestly — CISA KEV listed, 732-byte deterministic public PoC, all Linux ≥ 4.14, AI-discovered — it is a 4-hour incident. CVSS misses every one of those amplifiers.
39
+ - **CVSS overscores supply-chain-prerequisite CVEs.** CVE-2026-30615 (Windsurf MCP) scores CVSS 9.8 because the worst-case is zero-interaction RCE. The actual exploitation rate is throttled by the requirement that a victim first install a malicious MCP server. RWEP correctly rates it 35, lower than Copy Fail at 90 despite the lower CVSS.
40
+ - **Compliance frameworks anchor SLAs on CVSS bands.** NIST 800-53 SI-2, PCI DSS 6.3.3, ISO 27001:2022 A.8.8, and most internal vuln-management policies translate CVSS High/Critical into 30-day/7-day windows. For AI-discovered KEV-listed LPEs with public PoCs, these windows are exploitation windows. RWEP is the layer that lets an org prioritize honestly without re-writing every framework control.
41
+
42
+ ---
43
+
44
+ ## Framework Lag Declaration
45
+
46
+ | Framework | Control | What It Assumes | Why It Fails (mid-2026) |
47
+ |---|---|---|---|
48
+ | NIST 800-53 Rev 5 | SI-2 (Flaw Remediation) | CVSS-banded patch cycles: 30 days for High, 7 days for Critical | No factor for CISA KEV listing, AI-discovered, public PoC byte-size, deterministic vs. race-condition exploits. A CVSS 7.8 AI-discovered KEV-listed LPE drops into the 30-day bin alongside CVSS 7.8 theoretical bugs. |
49
+ | NIST 800-53 Rev 5 | RA-5 (Vulnerability Monitoring and Scanning) | Scanner CVSS scores drive ticket priority | Scanners report CVSS. CVSS 7.8 Copy Fail and CVSS 7.8 obscure-config RCE generate identical ticket priorities. Operational queues cannot distinguish them without RWEP. |
50
+ | PCI DSS 4.0 | 6.3.3 | "Critical patches" (CVSS-defined) within 1 month, all others within 3 months | CVSS-anchored SLA. 1 month for a 732-byte CISA KEV public PoC is indefensible. No factor for AI-discovery or live-patch availability. |
51
+ | ISO 27001:2022 | A.8.8 (Management of technical vulnerabilities) | "Appropriate timescales" set by risk classification, typically CVSS-driven | Risk classification methodology is not specified; in practice orgs use CVSS bands. Standard offers no guidance distinguishing AI-discovered KEV-listed from theoretical High. |
52
+ | CIS Controls v8 | Control 7 (Continuous Vulnerability Management) | IG1/IG2/IG3 timelines indexed on CVSS Critical/High | Same CVSS-anchored SLA failure. No factor for KEV status as a re-prioritization trigger. |
53
+ | NIS2 Directive | Art. 21 (vulnerability handling) | "Appropriate measures" — methodology unspecified | In practice essential/important entities map this to CVSS-driven internal SLAs. Standard does not require any non-CVSS factor. |
54
+ | ASD Essential 8 | Patch Operating Systems ML1–ML3 | ML3: 48h for OS vulns "with working exploit" | Closest to adequate — at least incorporates exploit availability. Still does not model AI-discovery, KEV, blast radius, or live-patch availability. 48h window remains long for AI-accelerated weaponization. |
55
+ | FedRAMP Continuous Monitoring | Vuln scan cadence + CVSS-band remediation | Monthly scans, CVSS-banded SLAs | Cadence-based detection plus CVSS-banded remediation cannot respond inside the AI-accelerated exploit window. |
56
+
57
+ Across all of these, the framework lag is the same shape: **CVSS-as-risk-proxy.** RWEP is the operational corrective layer.
58
+
59
+ ---
60
+
61
+ ## TTP Mapping
62
+
63
+ This skill is meta — it does not pin to a single TTP class. RWEP is the cross-cutting prioritization layer applied **across all attack classes catalogued in `data/atlas-ttps.json` and `data/cve-catalog.json`**. Frontmatter `atlas_refs` and `attack_refs` are intentionally empty.
64
+
65
+ | Catalog | Role for RWEP |
66
+ |---|---|
67
+ | `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 |
68
+ | `data/atlas-ttps.json` (MITRE ATLAS v5.1.0) | Provides the AI/ML TTP context where AI-discovery and AI-acceleration factors apply (e.g., AML.T0017 Develop Capabilities) |
69
+ | `data/exploit-availability.json` | Authoritative PoC + KEV + last-verified date snapshot — drives factor freshness |
70
+ | `data/zeroday-lessons.json` | Closes the loop: zero-day's lesson entry feeds back the framework gap that RWEP's score implied |
71
+
72
+ Use the TTP-specific skills (e.g., `kernel-lpe-triage`, `ai-attack-surface`, `mcp-agent-trust`) to extract the attack vector. Use this skill to translate that attack vector's catalogued factors into an action timeline.
73
+
74
+ ---
75
+
76
+ ## Exploit Availability Matrix
77
+
78
+ How each RWEP factor maps to a real CVE in `data/cve-catalog.json`:
79
+
80
+ | CVE | KEV | PoC | AI-Discovered | Active Exploitation | Blast Radius | Patch | Live Patch | RWEP | CVSS |
81
+ |---|---|---|---|---|---|---|---|---|---|
82
+ | CVE-2026-31431 (Copy Fail) | Yes | Yes (732-byte) | Yes | Confirmed | All Linux ≥ 4.14 (30) | Yes | Yes (kpatch/livepatch/kGraft) | 90 | 7.8 |
83
+ | CVE-2026-43284 (Dirty Frag ESP/IPsec) | No | Yes (chain) | No | Suspected | IPsec-using systems (18) | Yes | RHEL-only kpatch | 38 | 7.8 |
84
+ | CVE-2026-43500 (Dirty Frag RxRPC) | No | Yes (chain) | No | Suspected | RxRPC-loaded systems | Yes | Partial | 32 | 7.6 |
85
+ | CVE-2025-53773 (Copilot prompt-injection RCE) | No | Yes (demonstrated) | Yes (AI tooling enables) | Suspected | GitHub Copilot users (22) | Yes (SaaS) | Yes (SaaS push) | 42 | 9.6 |
86
+ | CVE-2026-30615 (Windsurf MCP RCE) | No | Partial | No | Suspected (supply-chain) | 150M+ downloads but supply-chain prereq | Yes | Yes (IDE update) | 35 | 9.8 |
87
+
88
+ Key reads: Copy Fail (RWEP 90, CVSS 7.8) and Windsurf MCP (RWEP 35, CVSS 9.8) sit at opposite ends — Copy Fail is the canonical case of CVSS under-prioritization; Windsurf MCP is the canonical case of CVSS over-prioritization (supply-chain prerequisite as throttle).
89
+
90
+ ---
91
+
92
+ ## RWEP Formula
93
+
94
+ ```
95
+ RWEP = min(100, max(0,
96
+ (cisa_kev × 25) +
97
+ (poc_public × 20) +
98
+ (ai_assisted × 15) +
99
+ (active_expl × 20) +
100
+ (blast_radius × 15) -
101
+ (patch_avail × 15) -
102
+ (live_patch × 10) +
103
+ (reboot_req × 5)
104
+ ))
105
+ ```
106
+
107
+ ### Factor Definitions
108
+
109
+ **cisa_kev** (0 or 1): Is this CVE in the CISA Known Exploited Vulnerabilities catalog?
110
+ - Source: https://www.cisa.gov/known-exploited-vulnerabilities-catalog
111
+ - Score contribution: +25 points if listed
112
+ - Rationale: CISA KEV listing means active exploitation has been confirmed by CISA. This is the highest-confidence signal that exploitation is occurring in the wild.
113
+
114
+ **poc_public** (0 or 1): Is a working PoC publicly available?
115
+ - Score contribution: +20 points if public
116
+ - Rationale: A public PoC reduces attacker capability requirements to near-zero. Any actor with access to the PoC can execute the exploit. Lowers barrier from nation-state to script kiddie.
117
+
118
+ **ai_assisted** (0 or 1): Was this CVE discovered by an AI system, or has AI-assisted weaponization been documented?
119
+ - Score contribution: +15 points if yes
120
+ - Rationale: AI-assisted discovery (e.g., Copy Fail discovered in ~1 hour) indicates the vulnerability class is likely to be re-discovered or further exploited rapidly. AI-assisted weaponization compresses the time-to-reliable-exploit dramatically.
121
+
122
+ **active_expl** (0 or 1): Is active exploitation confirmed (beyond CISA KEV, e.g., incident reports, threat intelligence)?
123
+ - Score contribution: +20 points if confirmed
124
+ - Rationale: Confirmed exploitation means the threat is not theoretical. Treat as an incident-level response trigger.
125
+
126
+ **blast_radius** (0.0 to 1.0 scaled to 0–15): How broad is the affected population?
127
+ - 15 points: Affects all Linux systems since a specific kernel version (e.g., Copy Fail: all 4.14+)
128
+ - 10 points: Affects a major distribution's default configuration
129
+ - 7 points: Affects a specific distribution or configuration
130
+ - 3 points: Affects a narrow software version range
131
+ - 0 points: Affects only highly specific configurations
132
+
133
+ **patch_avail** (0 or 1): Is a patch available?
134
+ - Score contribution: -15 points if available
135
+ - Rationale: Patch availability dramatically reduces remediation timeline. The risk decays as patches are deployed.
136
+
137
+ **live_patch** (0 or 1): Is live kernel/application patching available (no reboot required)?
138
+ - Score contribution: -10 points if available
139
+ - Rationale: Live patching enables immediate remediation without service disruption. Systems that can live-patch have a lower operational burden for remediation.
140
+
141
+ **reboot_req** (0 or 1): Is a reboot required to apply the patch (and no live patch is available)?
142
+ - Score contribution: +5 points if reboot required with no live patch
143
+ - Rationale: Reboot requirements extend remediation timelines for production systems. Systems stay exposed longer.
144
+
145
+ ---
146
+
147
+ ## Pre-Calculated RWEP Scores
148
+
149
+ ### CVE-2026-31431 — Copy Fail
150
+
151
+ | Factor | Value | Points |
152
+ |---|---|---|
153
+ | CISA KEV | Yes | +25 |
154
+ | PoC Public | Yes (732-byte script) | +20 |
155
+ | AI-Assisted | Yes (discovered by AI in ~1h) | +15 |
156
+ | Active Exploitation | Confirmed | +20 |
157
+ | Blast Radius | All Linux kernel 4.14+ (all major distros, containers) | +30 |
158
+ | Patch Available | Yes | -15 |
159
+ | Live Patch Available | Yes (kpatch/livepatch/kGraft) | -10 |
160
+ | Reboot Required | Yes (always — live patch is temporary) | +5 |
161
+ | **RWEP** | | **90** |
162
+
163
+ **Interpretation:** RWEP 90 — the highest score in the current catalog. Formula: 25(KEV)+20(PoC)+15(AI-discovered)+20(confirmed)+30(blast)−15(patch)−10(live-patch)+5(reboot) = 90. The blast radius of 30 reflects all Linux >= 4.14 including containers and all major distributions since 2017.
164
+
165
+ **vs. CVSS:** CVSS 7.8 High. In traditional frameworks, this scores as a "30-day remediation" item. RWEP 90 means: patch or live-patch within 4 hours of availability, or document compensating controls. RWEP is 12 points higher than CVSS × 10 (78) — the AI-discovery factor, confirmed exploitation, and massive blast radius are what CVSS misses.
166
+
167
+ ---
168
+
169
+ ### CVE-2026-43284 — Dirty Frag (ESP/IPsec)
170
+
171
+ | Factor | Value | Points |
172
+ |---|---|---|
173
+ | CISA KEV | No | 0 |
174
+ | PoC Public | Yes (chain component) | +20 |
175
+ | AI-Assisted | No | 0 |
176
+ | Active Exploitation | Suspected | +10 (partial) |
177
+ | Blast Radius | IPsec-using systems, kernel 5.x | +18 |
178
+ | Patch Available | Yes | -15 |
179
+ | Live Patch Available | No (kpatch RHEL-only — not broadly available) | 0 |
180
+ | Reboot Required | Yes | +5 |
181
+ | **RWEP** | | **38** |
182
+
183
+ **Interpretation:** No CISA KEV, suspected (not confirmed) exploitation, and no broad live-patch availability. RWEP 38 vs. CVSS-equivalent 78 — RWEP shows this is less urgent than CVSS suggests absent confirmed exploitation at scale. Critical contextual risk: any host using IPsec for compliance controls (SC-8/SC-28) cannot claim those controls as compensating controls while this CVE is unpatched — the exploit runs through the IPsec implementation.
184
+
185
+ ---
186
+
187
+ ### CVE-2025-53773 — GitHub Copilot Prompt Injection RCE
188
+
189
+ | Factor | Value | Points |
190
+ |---|---|---|
191
+ | CISA KEV | No | 0 |
192
+ | PoC Public | Yes (demonstrated) | +20 |
193
+ | AI-Assisted | Yes (AI tooling enables) | +15 |
194
+ | Active Exploitation | Suspected | +10 |
195
+ | Blast Radius | GitHub Copilot users — large developer population | +22 |
196
+ | Patch Available | Yes (GitHub patched) | -15 |
197
+ | Live Patch Available | Yes (SaaS patch) | -10 |
198
+ | Reboot Required | No (SaaS update) | 0 |
199
+ | **RWEP** | | **42** |
200
+
201
+ **Interpretation:** CVSS 9.6 vs. RWEP 42 — significant divergence. CVSS is high because the worst-case impact is critical RCE. RWEP is lower because there's no CISA KEV listing and exploitation is suspected (not confirmed at scale). The lack of framework coverage for prompt injection as an attack class (no control in any major framework) makes this a critical monitoring gap regardless of the RWEP score.
202
+
203
+ ---
204
+
205
+ ### CVE-2026-30615 — Windsurf MCP Zero-Interaction RCE
206
+
207
+ | Factor | Value | Points |
208
+ |---|---|---|
209
+ | CISA KEV | No | 0 |
210
+ | PoC Public | Partial | +10 |
211
+ | AI-Assisted | No | 0 |
212
+ | Active Exploitation | Suspected (supply chain targeting) | +10 |
213
+ | Blast Radius | 150M+ AI coding assistant downloads (all affected IDEs) | +30 |
214
+ | Patch Available | Yes | -15 |
215
+ | Live Patch Available | Yes (IDE update) | -10 |
216
+ | Reboot Required | No | 0 |
217
+ | **RWEP** | | **35** |
218
+
219
+ **vs. CVSS:** CVSS 9.8 vs. RWEP 35 — the largest CVSS/RWEP divergence in the catalog. CVSS is high because zero-interaction network RCE with no-auth is the maximum-severity scenario. RWEP is lower because no CISA KEV, suspected-only exploitation, and the attack requires a malicious MCP server to be installed first (the supply-chain prerequisite is the limiting factor). Key insight: RWEP correctly signals that this is an elevated priority, not an emergency — unlike Copy Fail where RWEP signals emergency regardless of CVSS.
220
+
221
+ ---
222
+
223
+ ## RWEP vs. CVSS Delta Analysis
224
+
225
+ When CVSS and RWEP diverge significantly, it surfaces important context:
226
+
227
+ **CVSS high, RWEP low** — Severe vulnerability but low immediate priority:
228
+ - No PoC, no active exploitation, no CISA KEV
229
+ - Patch available with no reboot required
230
+ - Narrow blast radius (specific configuration)
231
+ - Example: An obscure CVSS 9.1 RCE in an enterprise appliance with no public PoC, patched by vendor, affecting 100 customers worldwide
232
+
233
+ **CVSS moderate, RWEP high** — The dangerous case — framework compliance prioritizes wrong things:
234
+ - CVSS 7.8 → "30-day remediation"
235
+ - RWEP 90 → "patch or live-patch within 4 hours"
236
+ - Example: Copy Fail — CVSS doesn't capture AI-discovered + deterministic + CISA KEV + all Linux
237
+ - Framework compliance that uses CVSS thresholds for SLA will deprioritize Copy Fail relative to a CVSS 9.8 with no public exploit
238
+
239
+ **High CVSS, moderate RWEP** — CVSS overstates urgency for AI/supply-chain threats:
240
+ - Copilot RCE (CVSS 9.6 / RWEP 42): no KEV, suspected exploitation — important but not emergency
241
+ - Windsurf MCP (CVSS 9.8 / RWEP 35): no KEV, supply-chain prerequisite limits actual exploitation rate
242
+ - RWEP correctly prioritizes Copy Fail (RWEP 90) over Windsurf MCP (RWEP 35) despite Windsurf having higher CVSS
243
+ - Framework compliance that uses CVSS alone will treat Windsurf MCP as MORE urgent than Copy Fail — incorrect
244
+
245
+ ---
246
+
247
+ ## Analysis Procedure
248
+
249
+ ### Step 1: Gather CVE data
250
+
251
+ For a CVE not in the pre-calculated catalog, collect:
252
+ - NVD CVSS score and vector
253
+ - CISA KEV status (direct lookup)
254
+ - PoC availability (public security databases, researcher announcements)
255
+ - AI-discovery or AI-assisted weaponization (researcher disclosure statements)
256
+ - Active exploitation (CISA KEV, threat intelligence, incident reports)
257
+ - Affected version range (blast radius assessment)
258
+ - Patch availability and reboot requirement
259
+ - Live patch support (kpatch, livepatch, kGraft, vendor live update)
260
+
261
+ ### Step 2: Apply RWEP formula
262
+
263
+ Calculate factor values (binary 0/1 or scaled 0–1 for blast radius) and apply formula.
264
+
265
+ ### Step 3: Generate remediation timeline
266
+
267
+ Map RWEP score to required action timeline:
268
+
269
+ | RWEP | Action | Timeline |
270
+ |---|---|---|
271
+ | 90–100 | Immediate — deploy live patch or isolate | Within 4 hours |
272
+ | 75–89 | Urgent — patch or compensating controls | Within 24 hours |
273
+ | 60–74 | High — patch within standard emergency window | Within 72 hours |
274
+ | 40–59 | Elevated — accelerated patching | Within 7 days |
275
+ | 20–39 | Standard — normal patch cycle | Within 30 days |
276
+ | 0–19 | Low — routine vulnerability management | Next scheduled maintenance |
277
+
278
+ ### Step 4: Framework compliance translation
279
+
280
+ Translate RWEP-based timeline to framework compliance language:
281
+ - "This CVE has RWEP 90. Per NIST 800-53 SI-2, the organizational SLA is 30 days for High. This SLA is insufficient for a CISA KEV vulnerability with public PoC and confirmed active exploitation. The RWEP-based remediation requirement (4 hours) represents a material gap between SI-2 compliance and actual security posture."
282
+
283
+ ---
284
+
285
+ ## Output Format
286
+
287
+ ```
288
+ ## Exploit Priority Assessment
289
+
290
+ **CVE:** [ID]
291
+ **Assessment Date:** YYYY-MM-DD
292
+
293
+ ### CVSS vs. RWEP
294
+ | Metric | Score | Priority Band |
295
+ |--------|-------|---------------|
296
+ | CVSS | [score] | [None/Low/Medium/High/Critical] |
297
+ | RWEP | [score] | [see table above] |
298
+ | Delta | [RWEP - CVSS×10] | [Explain if significant] |
299
+
300
+ ### RWEP Factor Breakdown
301
+ | Factor | Value | Points |
302
+ |--------|-------|--------|
303
+ | CISA KEV | Yes/No | +25/0 |
304
+ | PoC Public | Yes/No | +20/0 |
305
+ | AI-Assisted | Yes/No | +15/0 |
306
+ | Active Exploitation | Confirmed/Suspected/No | +20/+10/0 |
307
+ | Blast Radius | [description] | [0-15] |
308
+ | Patch Available | Yes/No | -15/0 |
309
+ | Live Patch Available | Yes/No | -10/0 |
310
+ | Reboot Required | Yes/No | +5/0 |
311
+ | **RWEP Total** | | **[score]** |
312
+
313
+ ### Required Action
314
+ **Timeline:** [4h / 24h / 72h / 7d / 30d / routine]
315
+ **Action:** [Live patch / Full patch + reboot / Compensating controls + timeline / Routine]
316
+
317
+ ### Framework Compliance Note
318
+ [If RWEP timeline conflicts with framework SLA: explicit statement of the gap]
319
+ ```
320
+
321
+ ---
322
+
323
+ ## Compliance Theater Check
324
+
325
+ Run this check against any organization claiming vulnerability-management compliance:
326
+
327
+ > "Pull your vulnerability-management policy. Find the remediation SLA table. Is the SLA anchored on CVSS bands — `Critical: within X days, High: within Y days, Medium: within Z days`? If yes, the policy is theater for the dominant 2026 threat class: AI-discovered, CISA KEV listed LPEs with public PoC scored CVSS 7.8 (High). Under a CVSS-banded SLA, CVE-2026-31431 (Copy Fail) gets the same 30-day clock as a CVSS 7.8 theoretical bug. The actual operational requirement — 4 hours to live-patch or isolate — is invisible to the policy. Re-anchor remediation SLAs on RWEP, not CVSS bands, or demonstrate that CVSS-banded SLAs are augmented by an explicit CISA-KEV-response override with a sub-24h timeline."
328
+
329
+ > "Open your last quarterly vuln-management metrics report. Does it report `mean time to remediate by CVSS band`? If that is the headline metric, the program optimizes for CVSS-band SLAs, not for actual exploit-priority response. The KPI itself is theater. The honest metric is: for CVEs that crossed RWEP ≥ 75 during the quarter, what was the mean time from RWEP-75 threshold crossing to deployed mitigation? If the org doesn't track RWEP at all, the program has no instrumentation to detect when CVSS-banded SLAs fail — which they do for every CISA KEV + AI-discovered class in `data/cve-catalog.json`."
330
+
331
+ > "Ask: when CVE-2026-31431 was published, what was the actual time from publication to deployed mitigation across the estate? Compare it to the policy's 30-day High SLA. The org likely met SLA. RWEP 90 required action in 4 hours. The gap between 'met SLA' and 'was exposed for ~30 days to a 732-byte public PoC on CISA KEV' is the size of the theater."