@blamejs/exceptd-skills 0.21.13 → 0.21.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/data/_indexes/_meta.json +23 -23
- package/data/_indexes/activity-feed.json +94 -94
- package/data/_indexes/catalog-summaries.json +6 -6
- package/data/_indexes/chains.json +2 -2
- package/data/_indexes/currency.json +28 -28
- package/data/_indexes/section-offsets.json +200 -200
- package/data/_indexes/summary-cards.json +14 -14
- package/data/_indexes/token-budget.json +99 -99
- package/data/attack-techniques.json +3 -1
- package/data/cve-catalog.json +107 -1
- package/data/cwe-catalog.json +2 -1
- package/data/framework-control-gaps.json +7 -1
- package/data/zeroday-lessons.json +99 -2
- package/manifest.json +81 -81
- package/package.json +2 -2
- package/sbom.cdx.json +69 -54
- package/scripts/check-skill-catalog-facts.js +304 -0
- package/scripts/predeploy.js +8 -0
- package/skills/ai-attack-surface/skill.md +2 -2
- package/skills/cloud-iam-incident/skill.md +6 -6
- package/skills/compliance-theater/skill.md +6 -6
- package/skills/container-runtime-security/skill.md +2 -2
- package/skills/exploit-scoring/skill.md +16 -14
- package/skills/framework-gap-analysis/skill.md +5 -5
- package/skills/idp-incident-response/skill.md +4 -4
- package/skills/kernel-lpe-triage/skill.md +15 -15
- package/skills/policy-exception-gen/skill.md +4 -4
- package/skills/sector-federal-government/skill.md +3 -3
- package/skills/security-maturity-tiers/skill.md +5 -5
- package/skills/supply-chain-integrity/skill.md +3 -3
- package/skills/threat-model-currency/skill.md +6 -6
- package/skills/zeroday-gap-learn/skill.md +8 -8
|
@@ -52,7 +52,7 @@ forward_watch:
|
|
|
52
52
|
- Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12 or sooner via Patch Tuesday) — Windows 11 LPE heap buffer overflow by Marcin Wiązowski; track MSRC advisory and KEV add
|
|
53
53
|
- Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12 or sooner via Patch Tuesday) — Windows 11 LPE 2x use-after-free by Kentaro Kawane (GMO); track MSRC advisory and KEV add
|
|
54
54
|
- Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — RHEL race-condition LPE by chompie / IBM X-Force XOR; track Red Hat advisory and KEV add
|
|
55
|
-
last_threat_review: "2026-
|
|
55
|
+
last_threat_review: "2026-09-28"
|
|
56
56
|
---
|
|
57
57
|
|
|
58
58
|
# Kernel LPE Triage
|
|
@@ -83,9 +83,9 @@ The attack abuses a write primitive in the copy-on-write path of the page cache.
|
|
|
83
83
|
### Dirty Frag — CVE-2026-43284 + CVE-2026-43500
|
|
84
84
|
|
|
85
85
|
**Classification:** Local Privilege Escalation Chain | Breaks IPsec Mitigations
|
|
86
|
-
**CVSS:**
|
|
86
|
+
**CVSS / RWEP:** CVE-2026-43284 (CVSS 8.8 High, RWEP 53/100), CVE-2026-43500 (CVSS 7.6 High, RWEP 47/100)
|
|
87
87
|
|
|
88
|
-
Discovered by Hyunwoo Kim. A two-CVE chain exploiting page-cache write primitives in:
|
|
88
|
+
Discovered by Hyunwoo Kim with AI assistance, per Sysdig's write-up. A two-CVE chain exploiting page-cache write primitives in:
|
|
89
89
|
- ESP/IPsec subsystem (CVE-2026-43284)
|
|
90
90
|
- RxRPC subsystem (CVE-2026-43500)
|
|
91
91
|
|
|
@@ -104,18 +104,18 @@ The IPsec dimension is critical: organizations with network segmentation control
|
|
|
104
104
|
|
|
105
105
|
### Fragnesia — CVE-2026-46300
|
|
106
106
|
|
|
107
|
-
**Classification:** Local Privilege Escalation | Dirty Frag family sequel |
|
|
108
|
-
**CVSS:** 7.8 (High) | **RWEP:**
|
|
107
|
+
**Classification:** Local Privilege Escalation | Dirty Frag family sequel | AI-Assisted Discovery
|
|
108
|
+
**CVSS:** 7.8 (High) | **RWEP:** 35/100 (60 on a CISA KEV listing)
|
|
109
109
|
|
|
110
|
-
Disclosed 2026-05-13 by William Bowling (V12 security team). Same primitive class as Dirty Frag — Fragnesia is the sibling bug introduced by the patch for CVE-2026-43284 / CVE-2026-43500. The defect is in `skb_try_coalesce()`: when transferring paged fragments between socket buffers, the kernel fails to propagate the `SKBFL_SHARED_FRAG` marker, losing track of externally-backed fragments (page-cache pages spliced from a file). An unprivileged local user can deterministically overwrite read-only file data in the kernel page cache without modifying the on-disk file. Public PoC targets `/usr/bin/su` for a one-line root shell.
|
|
110
|
+
Disclosed 2026-05-13 by William Bowling (V12 security team). The Hacker News and Help Net Security attribute the discovery to William Bowling of Zellic working with Zellic's AI-agentic software auditing tool. Same primitive class as Dirty Frag — Fragnesia is the sibling bug introduced by the patch for CVE-2026-43284 / CVE-2026-43500. The defect is in `skb_try_coalesce()`: when transferring paged fragments between socket buffers, the kernel fails to propagate the `SKBFL_SHARED_FRAG` marker, losing track of externally-backed fragments (page-cache pages spliced from a file). An unprivileged local user can deterministically overwrite read-only file data in the kernel page cache without modifying the on-disk file. Public PoC targets `/usr/bin/su` for a one-line root shell.
|
|
111
111
|
|
|
112
112
|
Key characteristics:
|
|
113
|
-
- **Deterministic exploitation** — no race condition, no kernel-version fingerprinting beyond the
|
|
113
|
+
- **Deterministic exploitation** — no race condition, no kernel-version fingerprinting beyond the affected version range.
|
|
114
114
|
- **Public PoC** — one-liner against `/usr/bin/su` from the V12 disclosure.
|
|
115
115
|
- **Page-cache corruption without on-disk write** — file-integrity tools that hash on-disk bytes (AIDE, Tripwire, IMA in measure-only mode) cannot detect the corruption.
|
|
116
116
|
- **Module-unload mitigation is identical to Dirty Frag** — blacklist `esp4`, `esp6`, `rxrpc` in `/etc/modprobe.d/`. Any host already mitigated for Dirty Frag by module blacklist is already mitigated for Fragnesia, with no further action required.
|
|
117
117
|
- **Live-patch is non-reboot** — AlmaLinux + CloudLinux kernels in testing as of 2026-05-13; Canonical Livepatch + kpatch follow standard cadence.
|
|
118
|
-
- **Not CISA KEV-listed as of 2026-
|
|
118
|
+
- **Not CISA KEV-listed as of the 2026-09-27 KEV catalog**, and no active exploitation has been observed in the wild. RWEP is 35; a KEV listing takes it to 60, and confirmed active exploitation to 80.
|
|
119
119
|
|
|
120
120
|
**Lesson for operators:** when a CVE patch lands, retain the pre-patch compensating controls (module blacklists, sysctl restrictions) until the patched code has soaked. Fragnesia is the canonical case — the Dirty Frag patch introduced Fragnesia, and the same `modprobe -r esp4 esp6 rxrpc` mitigation covers both.
|
|
121
121
|
|
|
@@ -168,9 +168,9 @@ Note: ATLAS refs are intentionally empty in frontmatter — these are Linux kern
|
|
|
168
168
|
| CVE | CVSS | RWEP | CISA KEV | PoC Public | AI-Discovered | Active Exploitation | Patch Available | Live Patch | Reboot Required |
|
|
169
169
|
|---|---|---|---|---|---|---|---|---|---|
|
|
170
170
|
| CVE-2026-31431 (Copy Fail) | 7.8 | 90 | Yes (2026-05-01, due 2026-05-15) | Yes — 732-byte script | Yes | Confirmed | Yes | Yes (kpatch/livepatch/kGraft) | Yes |
|
|
171
|
-
| CVE-2026-43284 (Dirty Frag ESP) |
|
|
172
|
-
| CVE-2026-43500 (Dirty Frag RxRPC) | 7.6 |
|
|
173
|
-
| CVE-2026-46300 (Fragnesia) | 7.8 |
|
|
171
|
+
| CVE-2026-43284 (Dirty Frag ESP) | 8.8 | 53 | No | Yes | Yes (AI-assisted) | Suspected | Yes | No (kpatch RHEL-only) | Yes |
|
|
172
|
+
| CVE-2026-43500 (Dirty Frag RxRPC) | 7.6 | 47 | No | Yes (chain component) | Yes (AI-assisted) | Suspected | Yes | No | Yes |
|
|
173
|
+
| CVE-2026-46300 (Fragnesia) | 7.8 | 35 | No (likely candidate) | Yes — one-liner vs /usr/bin/su | Yes (AI-assisted) | None observed | Yes (testing on Alma/CloudLinux) | Yes (kpatch / canonical-livepatch / KernelCare) | No (module-unload mitigation is non-reboot) |
|
|
174
174
|
|
|
175
175
|
---
|
|
176
176
|
|
|
@@ -338,9 +338,9 @@ Produce this structure:
|
|
|
338
338
|
|
|
339
339
|
### RWEP Scores
|
|
340
340
|
CVE-2026-31431: CVSS 7.8 / RWEP 90 — immediate action required (4h)
|
|
341
|
-
CVE-2026-43284: CVSS
|
|
342
|
-
CVE-2026-43500: CVSS 7.6 / RWEP
|
|
343
|
-
CVE-2026-46300: CVSS 7.8 / RWEP
|
|
341
|
+
CVE-2026-43284: CVSS 8.8 / RWEP 53 — remediate within 7 days; disable RxRPC/IPsec chain if not required
|
|
342
|
+
CVE-2026-43500: CVSS 7.6 / RWEP 47 — remediate within 7 days; consider disabling RxRPC module
|
|
343
|
+
CVE-2026-46300: CVSS 7.8 / RWEP 35 — patch within standard cycle; module unload (esp4/esp6/rxrpc) is the immediate non-reboot mitigation. Same mitigation set as Dirty Frag — already-blacklisted hosts are already covered. Reassess on a CISA KEV listing, which adds 25 points.
|
|
344
344
|
```
|
|
345
345
|
|
|
346
346
|
---
|
|
@@ -389,7 +389,7 @@ Maps the kernel LPE findings above to MITRE D3FEND techniques with explicit defe
|
|
|
389
389
|
|
|
390
390
|
After producing the kernel LPE triage output, the operator should chain into the following skills. Each entry names a downstream or sibling skill and the specific reason to invoke it from this finding.
|
|
391
391
|
|
|
392
|
-
- **`exploit-scoring`** — recalculate RWEP when any of the inputs that drive the score change post-triage: a new CISA KEV listing for Dirty Frag,
|
|
392
|
+
- **`exploit-scoring`** — recalculate RWEP when any of the inputs that drive the score change post-triage: a new CISA KEV listing for Dirty Frag, confirmed active exploitation of either leg, or an AI-discovery flag flip. RWEP, not CVSS, is the prioritisation signal — re-run scoring rather than re-reading the static value in the matrix above.
|
|
393
393
|
- **`defensive-countermeasure-mapping`** — map each kernel LPE finding to D3FEND counters (D3-EAL for executable allowlisting at the kernel-module layer, D3-ASLR for address-space layout randomisation hardening, D3-PSEP for process self-modification prevention, D3-PHRA for process hardening / runtime attestation) and produce the defence-in-depth, least-privilege, zero-trust layered remediation plan rather than a single-control patch ticket.
|
|
394
394
|
- **`attack-surface-pentest`** — verify that the kernel LPE class is in the organisation's pen-test scope (TIBER-EU / DORA TLPT for EU financial-sector orgs, CBEST for UK financial, or the equivalent red-team programme). Most 2025-vintage pen-test scopes are perimeter / web-app focused and do not exercise local LPE primitives against the patched-kernel claim.
|
|
395
395
|
- **`compliance-theater`** — test whether the org's SI-2 / A.8.8 / PCI 6.3.3 patch-management evidence is CVSS-anchored theater for a KEV-listed, AI-discovered, 732-byte deterministic LPE. The 30-day window is the exploitation window; if the org cannot show live-patch-within-4-hours capability or documented compensating controls, the patch-management control is theater for this CVE class.
|
|
@@ -23,7 +23,7 @@ forward_watch:
|
|
|
23
23
|
- EU CRA exceptions for AI pipeline components
|
|
24
24
|
- NIST SP 800-204 series updates for microservices
|
|
25
25
|
- FedRAMP updates for container/serverless authorization
|
|
26
|
-
last_threat_review: "2026-09-
|
|
26
|
+
last_threat_review: "2026-09-28"
|
|
27
27
|
---
|
|
28
28
|
|
|
29
29
|
# Policy Exception Generation
|
|
@@ -109,10 +109,10 @@ For each residual TTP an exception leaves in scope, the compensating control bun
|
|
|
109
109
|
|
|
110
110
|
| Residual TTP | Evidence CVE / class | CVSS | RWEP tier | KEV | Public PoC | AI-accelerated | Live-patchable | Implication for compensating bundle |
|
|
111
111
|
|---|---|---|---|---|---|---|---|---|
|
|
112
|
-
| T1068 (Privilege Escalation — Copy Fail class) | CVE-2026-31431 |
|
|
113
|
-
| T1190 (Exploit Public-Facing Application — IPsec subsystem) | CVE-2026-43284 (Dirty Frag) |
|
|
112
|
+
| T1068 (Privilege Escalation — Copy Fail class) | CVE-2026-31431 | 7.8 | 90 | Yes (2026-05-01) | Yes (732 bytes, deterministic) | Yes | Yes (kpatch/livepatch) | Live patch within 4 hours OR network isolation — anything weaker is non-defensible |
|
|
113
|
+
| T1190 (Exploit Public-Facing Application — IPsec subsystem) | CVE-2026-43284 (Dirty Frag) | 8.8 | 53 | No | Yes (chain component) | Yes (AI-assisted discovery) | Limited (kpatch RHEL-only) | eBPF kernel-text integrity monitoring + maintenance-window reboot SLA |
|
|
114
114
|
| AML.T0051 (LLM Prompt Injection — emergent on model upgrade) | CVE-2025-53773 (Copilot YOLO-mode RCE) | 7.8 (AV:L) | 30 | No | Yes | Yes | Yes (SaaS push / IDE update) | Behavioral regression suite + system-prompt hardening + tool allowlist |
|
|
115
|
-
| AML.T0010 (ML Supply Chain Compromise — MCP) | CVE-2026-30615 (Windsurf MCP local-vector RCE) | 8.0 (AV:L) | 35 | No |
|
|
115
|
+
| AML.T0010 (ML Supply Chain Compromise — MCP) | CVE-2026-30615 (Windsurf MCP local-vector RCE) | 8.0 (AV:L) | 35 | No | Yes | No | Yes (IDE update) | MCP server allowlist + signed-manifest enforcement + per-server auth |
|
|
116
116
|
| T1525 / T1610 (Implant Internal Image / Deploy Container) | Image-supply-chain class | Varies | High | N/A | Operational | Yes | N/A (image rebuild) | CI image scanning gate at CVSS ≥ 7.0, SBOM per image, image-registry signing |
|
|
117
117
|
|
|
118
118
|
An exception that names a residual TTP without a compensating-control bundle of equal or greater RWEP-justified strength is theater. The compliance-theater skill's universal test (demand the bypassing TTP for any claimed compensating control) should be run against the bundle before the exception is approved.
|
|
@@ -60,7 +60,7 @@ forward_watch:
|
|
|
60
60
|
- UK GovAssure replacing the legacy IT Health Check (ITHC) scheme — phased rollout for departments and ALBs through 2026
|
|
61
61
|
- EU Cybersecurity Certification Scheme on Common Criteria (EUCC) operational — first certificates issued 2024; high-assurance level for government use cases ramping
|
|
62
62
|
- Australia PSPF 2024 revision and ISM quarterly updates — track for Essential Eight Maturity Level requirements for federal entities
|
|
63
|
-
last_threat_review: "2026-09-
|
|
63
|
+
last_threat_review: "2026-09-28"
|
|
64
64
|
discovery_mode: "standalone" # operator-reached via `exceptd brief sector-federal-government` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
|
|
65
65
|
---
|
|
66
66
|
|
|
@@ -140,11 +140,11 @@ Sourced from `data/cve-catalog.json`, `data/exploit-availability.json`, and CISA
|
|
|
140
140
|
|
|
141
141
|
| Incident / Class | CVSS | RWEP | PoC Public? | CISA KEV? | AI-Accelerated? | Patch / Mitigation | FedRAMP-Visible? | CMMC-Visible? | SSDF-Attestable? |
|
|
142
142
|
|---|---|---|---|---|---|---|---|---|---|
|
|
143
|
-
| CVE-2026-30615 (Windsurf MCP local-vector RCE — DIB development environments) | 8.0 | 35 (see `cve-catalog.json`) |
|
|
143
|
+
| CVE-2026-30615 (Windsurf MCP local-vector RCE — DIB development environments) | 8.0 | 35 (see `cve-catalog.json`) | Yes | No (architectural class) | Rides on AI agent tool-call autonomy; AV:L (attacker-controlled HTML processed by the MCP client) | Vendor IDE update + manifest signing + MCP server allowlisting | Limited — developer workstation tooling typically outside FedRAMP boundary | Partially — CMMC Level 2 CM (configuration management) and AC (access control) families touch developer workstations handling CUI; MCP-specific controls absent | SSDF practice PS.2 covers software dependency integrity but does not specify MCP manifest signing |
|
|
144
144
|
| Volt Typhoon pre-positioning (PRC nation-state, CISA/FBI/NSA joint advisories ongoing since May 2023) | N/A (campaign) | N/A | Yes — public IOC sets and TTP descriptions | Multiple component CVEs in KEV | Yes — AI-assisted lateral movement reported in adjacent campaigns | Living-off-the-land detection; rigorous identity ZT (M-22-09 pillar 1); network ZT (M-22-09 pillar 3); credential hygiene | Partially — FedRAMP ConMon detects only the cloud-tenant surface | Partially — CMMC AC + AU + IR families address detection but not pre-positioning specifically | No — SSDF is producer-side |
|
|
145
145
|
| Salt Typhoon US telco intrusions (PRC nation-state, publicly disclosed late 2024) | N/A (campaign) | N/A | Yes — IOC sets and CISA/FBI joint advisories | Multiple component CVEs in KEV | Yes — large-scale exploitation of edge-device CVEs | Patch + replace EOL edge devices; lawful-intercept-interface hardening; segment carrier management plane | No — telco infrastructure outside FedRAMP scope | No — telco carriers outside CMMC scope | No |
|
|
146
146
|
| SolarWinds Orion supply-chain compromise (CVE-2020-10148 + SUNBURST backdoor, historical reference) | 9.8 | not in current `data/cve-catalog.json` — pre-scope incident | Yes — fully post-disclosure | Yes (KEV at time of disclosure) | No — long-game manual TTP | Patch; rotate all credentials handled by affected Orion deployments; rebuild from clean state | Yes — FedRAMP-authorized SolarWinds Orion ATOs were impacted; ConMon did not detect the implanted update | Yes — DIB contractors using Orion were impacted; current 800-171 SI-3 / SI-4 controls would not have detected the implant | Partially — SLSA L3 + in-toto + reproducible builds would have detected the build-time tampering; SSDF self-attestation alone would not |
|
|
147
|
-
| XZ Utils backdoor (CVE-2024-3094, 2024) | 10.0 |
|
|
147
|
+
| XZ Utils backdoor (CVE-2024-3094, 2024) | 10.0 | 45 (see `cve-catalog.json`; not KEV-listed, exploitation suspected, human-discovered) | Yes — fully public post-disclosure | No | No — multi-year human social-engineering long game | Distro rollback to 5.4.x; key revocation in federal build pipelines | Indirectly — federal-procured Linux distros downstream of upstream sshd were exposed | Yes — DIB development environments built against affected distros were in scope | Partially — SSDF PS.1 / PS.2 reference dependency integrity; do not require SLSA L3 detection |
|
|
148
148
|
| Typosquat against MCP / `@modelcontextprotocol/*` / Hugging Face namespaces targeting DIB AI developers (AML.T0010 class, ongoing) | N/A (technique class) | N/A | Yes — multiple public incidents | No (technique class) | Yes — AI assistants accelerate convincing tool-description authoring | Pin versions; verify publisher provenance; enforce private registry mirroring for CUI development environments | Limited | Partially — CMMC SC + SI families address some controls but MCP namespace specifically is not covered | Yes — SSDF practice PS.2 (software integrity) applies but does not specify the technique-class control |
|
|
149
149
|
| AI-generated code committed to federal / DIB codebases without provenance markers (no CVE — class risk) | N/A | N/A | Pervasive | No | Yes — by definition | Commit-trailer provenance markers; PR-level attestation; in-CI AI-code detector; restricted federal-codebase AI tool allowlist | No — not within FedRAMP control set | No — CMMC Level 2 does not address AI-codegen provenance | No — SSDF does not specify AI-codegen attribution |
|
|
150
150
|
| Edge / VPN appliance zero-days driving recent CISA Emergency Directives (ED 24-01 Ivanti Connect Secure class, ED 24-02 Microsoft / Midnight Blizzard, ongoing 2024-2026) | varies — multiple CVEs, most in KEV | varies | Yes — public PoCs typically within days | Yes | Yes — AI-assisted reverse engineering on appliance firmware reported | Vendor patch + agency-specific compensating controls per the ED text; ED-mandated actions within hours-to-days | Yes — affected appliances often within FedRAMP-authorized boundaries or boundary-adjacent | Yes — DIB contractors using affected appliances inherit the threat | Producer-side — appliance vendor SSDF attestations are downstream evidence |
|
|
@@ -44,7 +44,7 @@ forward_watch:
|
|
|
44
44
|
- Framework updates that change minimum compliance baselines
|
|
45
45
|
- New tooling that makes higher tiers more accessible
|
|
46
46
|
- PQC tooling maturity shifting overkill to practical
|
|
47
|
-
last_threat_review: "2026-09-
|
|
47
|
+
last_threat_review: "2026-09-28"
|
|
48
48
|
---
|
|
49
49
|
|
|
50
50
|
# Security Maturity Tiers
|
|
@@ -526,14 +526,14 @@ D3FEND references from `data/d3fend-catalog.json`. This skill prescribes a roadm
|
|
|
526
526
|
|
|
527
527
|
Tiered to the current `data/cve-catalog.json`, using RWEP (`lib/scoring.js`) as the priority metric, not CVSS:
|
|
528
528
|
|
|
529
|
-
| Tier | Coverage requirement | CVEs in scope
|
|
529
|
+
| Tier | Coverage requirement | Example CVEs in scope | Available exploits | Required protective state |
|
|
530
530
|
|---|---|---|---|---|
|
|
531
531
|
| MVP | RWEP >= 70 | CVE-2026-31431 (Copy Fail, RWEP 90, CVSS 7.8) | Public 732-byte deterministic PoC; KEV-listed 2026-05-01 (federal due 2026-05-15); AI-discovered; live-patch available (kpatch / canonical-livepatch / kGraft) | Live-patched within hours of KEV listing OR fully patched + rebooted OR network-isolated with documented reboot date |
|
|
532
|
-
| Practical | RWEP >= 30 | CVE-2026-31431 (90), CVE-2026-30615 (Windsurf MCP local-vector RCE, 35, CVSS 8.0), CVE-2025-53773 (Copilot YOLO-mode RCE, 30, CVSS 7.8) | Copy Fail as above; CVE-2026-30615 + CVE-2025-53773 both AV:L local-vector, demonstrated PoC, vendor-patchable; AI-coding-assistant scope | All MVP coverage plus: prompt-injection classifier in front of any LLM processing external content; phishing simulation using AI-generated content; org-wide AI-coding-assistant version management; MCP server allowlisting with signed manifests |
|
|
533
|
-
| Overkill | All catalog entries regardless of RWEP | CVE-2026-31431 (90), CVE-2026-43284 (Dirty Frag ESP/IPsec,
|
|
532
|
+
| Practical | RWEP >= 30 | CVE-2026-31431 (90), CVE-2026-43284 (Dirty Frag ESP/IPsec, 53, CVSS 8.8), CVE-2026-43500 (Dirty Frag RxRPC, 47, CVSS 7.6), CVE-2026-30615 (Windsurf MCP local-vector RCE, 35, CVSS 8.0), CVE-2025-53773 (Copilot YOLO-mode RCE, 30, CVSS 7.8) | Copy Fail as above; the Dirty Frag pair has a public chain PoC and no broad live patch (kpatch RHEL-only); CVE-2026-30615 + CVE-2025-53773 both AV:L local-vector, demonstrated PoC, vendor-patchable; AI-coding-assistant scope | All MVP coverage plus: prompt-injection classifier in front of any LLM processing external content; phishing simulation using AI-generated content; org-wide AI-coding-assistant version management; MCP server allowlisting with signed manifests |
|
|
533
|
+
| Overkill | All catalog entries regardless of RWEP | CVE-2026-31431 (90), CVE-2026-43284 (Dirty Frag ESP/IPsec, 53, CVSS 8.8), CVE-2026-30615 (Windsurf MCP local-vector RCE, 35, CVSS 8.0), CVE-2026-43500 (Dirty Frag RxRPC, 47, CVSS 7.6), CVE-2025-53773 (Copilot YOLO-mode RCE, 30, CVSS 7.8) | Public PoC for all; Dirty Frag pair has no live patch (kpatch RHEL-only); Windsurf is local-vector supply-chain class; chained Dirty Frag requires kernel-version fingerprinting | All Practical coverage plus: kernel hardening (unprivileged_userns_clone=0, unprivileged_userfaultfd=0, kptr_restrict=2); seccomp profiles on all containers; eBPF runtime detection; immutable infrastructure for the workloads that tolerate it; sandboxed MCP execution; per-invocation capability tokens for AI agents |
|
|
534
534
|
|
|
535
535
|
Refresh trigger: re-run `node lib/scoring.js` and rebuild this matrix whenever `data/cve-catalog.json` is updated. The zero-day learning loop also feeds back into the tier mapping when a new CVE is added.
|
|
536
536
|
|
|
537
|
-
Note on CVSS divergence: every CVE in this
|
|
537
|
+
Note on CVSS divergence: every CVE in this matrix has a CVSS between 7.6 and 8.8, so CVSS alone would prioritize the highest-band CVE without distinguishing the AI-discovered KEV-listed deterministic LPE (Copy Fail) from the local-vector MCP supply-chain class (Windsurf). RWEP correctly ranks Copy Fail (90) above Windsurf (35) because KEV listing, deterministic exploitability, AI discovery, and broad blast radius dominate. The MVP tier protects against the right thing first.
|
|
538
538
|
|
|
539
539
|
---
|
|
@@ -67,7 +67,7 @@ d3fend_refs:
|
|
|
67
67
|
- D3-CBAN
|
|
68
68
|
- D3-EAL
|
|
69
69
|
- D3-EHB
|
|
70
|
-
last_threat_review: "2026-09-
|
|
70
|
+
last_threat_review: "2026-09-28"
|
|
71
71
|
---
|
|
72
72
|
|
|
73
73
|
# Supply-Chain Integrity Assessment
|
|
@@ -167,8 +167,8 @@ Sourced from `data/cve-catalog.json`, `data/exploit-availability.json`, and publ
|
|
|
167
167
|
|
|
168
168
|
| Incident / Class | CVSS | RWEP | PoC Public? | CISA KEV? | AI-Accelerated? | Patch / Mitigation | SLSA-Detectable? | SBOM-Detectable? | VEX-Helpful? |
|
|
169
169
|
|---|---|---|---|---|---|---|---|---|---|
|
|
170
|
-
| CVE-2026-30615 (Windsurf MCP
|
|
171
|
-
| XZ Utils backdoor (CVE-2024-3094, 2024) | 10.0 |
|
|
170
|
+
| CVE-2026-30615 (Windsurf MCP local-vector RCE) | 8.0 | 35 (see `cve-catalog.json`) | Yes | No (architectural class) | No direct AI weaponization recorded; the attack rides on AI agent tool-call autonomy | Vendor IDE update + manifest signing | Partially — SLSA L3 on the MCP server build would attest the binary, but client-side trust verification is the actual control | Partially — SBOM lists the MCP server package; VEX from the publisher would mark unpatched versions as `affected` | Yes — CSAF 2.0 VEX from the vendor classifies versions |
|
|
171
|
+
| XZ Utils backdoor (CVE-2024-3094, 2024) | 10.0 | 45 (see `cve-catalog.json`; not KEV-listed, exploitation suspected, human-discovered) | Yes — fully public post-disclosure | No | No — multi-year human social-engineering long game | Distro rollback to 5.4.x; key revocation in build pipelines | Yes — SLSA L3 with reproducible builds would have detected divergence between source and binary | Partially — SBOM lists `xz` but not the modified release tarball provenance | Yes — VEX statements published rapidly after disclosure |
|
|
172
172
|
| Typosquat in `@modelcontextprotocol/*` namespace (AML.T0010 class, ongoing 2024-2026) | N/A (technique class) | N/A | Yes — multiple public incidents | No (technique class) | Yes — AI assistants accelerate convincing tool-description authoring | Mitigation only: pin versions, verify npm provenance attestation, enforce publisher allowlist | Yes — SLSA provenance from a known publisher fails for a typosquatted package | Yes — SBOM diff at install time flags new unrecognized package | Limited — VEX is about known vulns, not malicious-by-design packages |
|
|
173
173
|
| Hugging Face poisoned model weights (AML.T0018, ongoing) | N/A (technique class) | N/A | Yes — public research demonstrations of RCE in model artifacts using code-executing serialization formats | No | Yes — adversarial weights via training-data poisoning is AI-accelerated | Reject code-executing serialization formats; require safetensors; verify Sigstore / OpenSSF model-signing signatures | Yes — SLSA-style attestation of model training run | Partial — ML-BOM (CycloneDX 1.6) inventories models; does not by itself attest integrity | Limited — VEX semantics map weakly to model integrity |
|
|
174
174
|
| AI-coding-assistant generated code with no provenance markers (no CVE — class risk) | N/A | N/A | N/A — pervasive in 2024-2026 codebases | No | Yes — by definition | Mitigation: commit-message provenance markers, in-toto-style attestation that ties commit to model + prompt context | Partially — SLSA provenance can attest the human author of a commit; AI-co-author attribution is not standardized | No — SBOM does not currently inventory AI-generated code segments | Not applicable |
|
|
@@ -22,7 +22,7 @@ forward_watch:
|
|
|
22
22
|
- New CISA KEV entries in kernel/AI/supply chain categories
|
|
23
23
|
- New MCP or agent protocol security disclosures
|
|
24
24
|
- Emerging malware families using AI for evasion
|
|
25
|
-
last_threat_review: "2026-09-
|
|
25
|
+
last_threat_review: "2026-09-28"
|
|
26
26
|
discovery_mode: "standalone" # operator-reached via `exceptd brief threat-model-currency` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
|
|
27
27
|
---
|
|
28
28
|
|
|
@@ -294,12 +294,12 @@ A threat model is "current" only if it accounts for every `data/cve-catalog.json
|
|
|
294
294
|
|---|---|---|---|---|---|---|---|---|
|
|
295
295
|
| CVE-2026-31431 | Copy Fail | 7.8 | 90 | Yes (2026-05-01, due 2026-05-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. |
|
|
296
296
|
| CVE-2025-53773 | Copilot YOLO-mode RCE | 7.8 | 30 | No | Yes — demonstrated | AI-weaponized | Yes (SaaS vendor patch / IDE update) | Must include prompt-injection-driven YOLO-mode escalation as RCE vector if any developer uses Copilot. |
|
|
297
|
-
| CVE-2026-30615 | Windsurf MCP local-vector RCE | 8.0 | 35 | No |
|
|
298
|
-
| CVE-2026-43284 | Dirty Frag (ESP/IPsec) |
|
|
299
|
-
| CVE-2026-43500 | Dirty Frag (RxRPC) | 7.6 |
|
|
300
|
-
| CVE-2026-46300 | Fragnesia | 7.8 |
|
|
297
|
+
| CVE-2026-30615 | Windsurf MCP local-vector RCE | 8.0 | 35 | No | Yes | No | Yes (IDE update) | Must include MCP supply chain if any developer uses any MCP-capable assistant. |
|
|
298
|
+
| CVE-2026-43284 | Dirty Frag (ESP/IPsec) | 8.8 | 53 | No | Yes — chain component | AI-assisted discovery | No | Required if IPsec-based controls are claimed as compensating. |
|
|
299
|
+
| CVE-2026-43500 | Dirty Frag (RxRPC) | 7.6 | 47 | No | Yes — chain component | AI-assisted discovery | No | Required when chained with CVE-2026-43284 in IR scenario planning. |
|
|
300
|
+
| CVE-2026-46300 | Fragnesia | 7.8 | 35 (60 if KEV-listed) | No (candidate) | Yes — one-liner vs /usr/bin/su | AI-assisted discovery (Zellic's agentic auditing tool) | Yes (kpatch / canonical-livepatch / KernelCare) | Required when the threat model claims patches close bug families — Fragnesia is the sibling bug introduced by the Dirty Frag patch; the same `blacklist esp4 / esp6 / rxrpc` mitigation covers both. Treat as the canonical "today" example of threat-intel decay measured in days, not quarters. |
|
|
301
301
|
|
|
302
|
-
The hard rule for currency scoring: every CVE in the catalog with RWEP >= 50 (
|
|
302
|
+
The hard rule for currency scoring: every CVE in the catalog with RWEP >= 50 (query `data/cve-catalog.json` for the current set) 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.
|
|
303
303
|
|
|
304
304
|
Run `node lib/scoring.js` to recompute RWEP if `data/cve-catalog.json` has been updated since `last_threat_review`.
|
|
305
305
|
|
|
@@ -23,7 +23,7 @@ forward_watch:
|
|
|
23
23
|
- New ATLAS TTP additions in each ATLAS release
|
|
24
24
|
- Framework updates that close previously open gaps
|
|
25
25
|
- Vendor advisories for MCP/AI tool supply chain CVEs
|
|
26
|
-
last_threat_review: "2026-09-
|
|
26
|
+
last_threat_review: "2026-09-28"
|
|
27
27
|
discovery_mode: "standalone" # operator-reached via `exceptd brief zeroday-gap-learn` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
|
|
28
28
|
---
|
|
29
29
|
|
|
@@ -94,13 +94,13 @@ Status of the learning-loop entry for each CVE currently in `data/cve-catalog.js
|
|
|
94
94
|
| CVE | KEV | PoC | AI-Discovered / AI-Enabled | RWEP | Lesson-Entry Status in `zeroday-lessons.json` |
|
|
95
95
|
|---|---|---|---|---|---|
|
|
96
96
|
| CVE-2026-31431 (Copy Fail) | Yes | Yes (732-byte) | Yes (AI-discovered ~1h) | 90 | Complete — pre-run lesson encoded below; new control requirements CISA-KEV-RESPONSE-SLA, LIVE-PATCH-CAPABILITY, KERNEL-EXPLOITATION-DETECTION generated |
|
|
97
|
-
| CVE-2026-43284 (Dirty Frag — ESP/IPsec) | No | Yes (chain) |
|
|
98
|
-
| CVE-2026-43500 (Dirty Frag — RxRPC) | No | Yes (chain) |
|
|
97
|
+
| CVE-2026-43284 (Dirty Frag — ESP/IPsec) | No | Yes (chain) | Yes (AI-assisted discovery) | 53 | Complete — pre-run lesson encoded; new control requirements CRYPTO-SUBSYSTEM-INTEGRITY, PRE-PATCH-DISCLOSURE-RESPONSE generated |
|
|
98
|
+
| CVE-2026-43500 (Dirty Frag — RxRPC) | No | Yes (chain) | Yes (AI-assisted discovery) | 47 | Complete — covered jointly with CVE-2026-43284 (chain partner) |
|
|
99
99
|
| CVE-2025-53773 (Copilot YOLO-mode RCE) | No | Yes (demonstrated) | Yes (AI tooling enables) | 30 | Complete — pre-run lesson encoded; new control requirements AI-TOOL-ACTION-AUTHORIZATION, AI-TOOL-INPUT-SANITIZATION, PROMPT-INJECTION-MONITORING generated |
|
|
100
|
-
| CVE-2026-30615 (Windsurf MCP local-vector RCE) | No |
|
|
101
|
-
| CVE-2026-45321 (Mini Shai-Hulud TanStack npm worm) |
|
|
100
|
+
| CVE-2026-30615 (Windsurf MCP local-vector RCE) | No | Yes | No (supply-chain) | 35 | Complete — pre-run lesson encoded; new control requirements MCP-SERVER-SIGNING, MCP-TOOL-ALLOWLIST, MCP-SUPPLY-CHAIN-AUDIT generated |
|
|
101
|
+
| CVE-2026-45321 (Mini Shai-Hulud TanStack npm worm) | Yes (2026-05-27) | Yes (worm in-wild) | No (engineering-grade chain) | 70 | Pre-run exemplar lesson encoded below (chained CI/CD primitives — Pwn Request + pnpm-store poisoning + OIDC theft); new control requirements PR-WORKFLOW-PRIVILEGE-CAP, ACTIONS-CACHE-INTEGRITY, OIDC-PUBLISH-AUDIT generated |
|
|
102
102
|
| MAL-2026-3083 (Elementary-Data PyPI worm — forged release via GitHub Actions script-injection) | No (OSSF Malicious Packages dataset; CISA KEV catalogues vendor CVEs only) | Yes (orphan commit + exfil domain confirmed in-wild during 8h window) | No (manual chain) | n/a | Pre-run exemplar lesson encoded below; control requirements GHACTIONS-EVENT-INTERPOLATION-BAN, INSTALL-HOOK-AUDIT, OSSF-MALPACKAGES-INGEST generated |
|
|
103
|
-
| CVE-2026-46300 (Fragnesia — Dirty Frag sequel) | No (candidate within days) | Yes (one-liner vs /usr/bin/su) |
|
|
103
|
+
| CVE-2026-46300 (Fragnesia — Dirty Frag sequel) | No (candidate within days) | Yes (one-liner vs /usr/bin/su) | Yes (AI-assisted discovery with Zellic's agentic auditing tool) | 35 | Complete — pre-run lesson encoded below; control requirements PAGE-CACHE-INTEGRITY-VERIFICATION, BUG-FAMILY-MITIGATION-PERSISTENCE, SCANNER-PAPER-COMPLIANCE-TEST generated. Pattern: a patch for one bug class introduced a sibling bug in the same primitive class. |
|
|
104
104
|
|
|
105
105
|
Every new entry added to `data/cve-catalog.json` must produce a corresponding entry here and in `data/zeroday-lessons.json` before the catalog change ships. Any CVE in the catalog without a complete lesson entry is a pre-ship-checklist failure.
|
|
106
106
|
|
|
@@ -234,7 +234,7 @@ Output: Lesson entry for data/zeroday-lessons.json
|
|
|
234
234
|
3. **SCANNER-PAPER-COMPLIANCE-TEST**: A vulnerability scanner that reports "patched" based on kernel package version alone is paper compliance. The operational test: does the scan account for the module-unload mitigation surface, AND does it verify the kernel is on a build that includes the specific Fragnesia patch (not just any version newer than the Dirty Frag patch that introduced Fragnesia)?
|
|
235
235
|
|
|
236
236
|
**Exposure scoring:**
|
|
237
|
-
- RWEP:
|
|
237
|
+
- RWEP: 35 today. A CISA KEV listing adds 25 (60), and confirmed active exploitation adds 20 more (80).
|
|
238
238
|
- Audit-passing orgs still exposed: ~75%. Operators who retained the Dirty Frag module blacklist are already mitigated. Operators who relied on kernel-package-version alone with vanilla SI-2 / A.8.8 SLAs are exposed during the patch window.
|
|
239
239
|
- Coverage failure: on-disk file-integrity tools (AIDE, Tripwire) report clean while the page-cache copy of /usr/bin/su is corrupted.
|
|
240
240
|
|
|
@@ -296,7 +296,7 @@ Output: Lesson entry for data/zeroday-lessons.json
|
|
|
296
296
|
|
|
297
297
|
### Lesson: CVE-2026-45321 (Mini Shai-Hulud TanStack npm worm)
|
|
298
298
|
|
|
299
|
-
**Attack vector:** Engineering-grade three-primitive chain against the TanStack monorepo, disclosed 2026-05-11. (1) `pull_request_target` on `bundle-size.yml` runs fork-PR code with base-repo permissions (classic Pwn Request). (2) That run poisons the `actions/cache` pnpm-store under the key `Linux-pnpm-store-${hashFiles('**/pnpm-lock.yaml')}` that `release.yml` later restores. (3) On the next main push, `release.yml` (which has `id-token: write` for npm publish) restores the poisoned cache and the worm captures the OIDC token. 84 malicious versions published across 42 @tanstack/* packages between 2026-05-11 19:20-19:26 UTC. ~150M weekly downloads in scope. CVSS 9.6; CISA KEV
|
|
299
|
+
**Attack vector:** Engineering-grade three-primitive chain against the TanStack monorepo, disclosed 2026-05-11. (1) `pull_request_target` on `bundle-size.yml` runs fork-PR code with base-repo permissions (classic Pwn Request). (2) That run poisons the `actions/cache` pnpm-store under the key `Linux-pnpm-store-${hashFiles('**/pnpm-lock.yaml')}` that `release.yml` later restores. (3) On the next main push, `release.yml` (which has `id-token: write` for npm publish) restores the poisoned cache and the worm captures the OIDC token. 84 malicious versions published across 42 @tanstack/* packages between 2026-05-11 19:20-19:26 UTC. ~150M weekly downloads in scope. CVSS 9.6; CISA added it to KEV on 2026-05-27. Attribution: TeamPCP. No AI-assisted exploit-development attribution for this specific instance, but the chain shape is exactly what AML.T0017-class capability development produces at AI cadence — chained CI/CD primitives that no individual component owner recognises as exploitable.
|
|
300
300
|
|
|
301
301
|
**What control should have prevented this:**
|
|
302
302
|
- Workflow-privilege isolation: `pull_request_target` should never run fork-PR code with base-repo permissions in the same job as cache writes. The chain is broken if the bundle-size workflow runs with `permissions: contents: read` and writes to a separate cache key.
|