@blamejs/exceptd-skills 0.13.3 → 0.13.4
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/AGENTS.md +41 -4
- package/CHANGELOG.md +34 -0
- package/README.md +79 -13
- package/data/_indexes/_meta.json +44 -44
- package/data/_indexes/activity-feed.json +3 -3
- package/data/_indexes/catalog-summaries.json +3 -3
- package/data/_indexes/chains.json +0 -32
- package/data/_indexes/handoff-dag.json +127 -57
- package/data/_indexes/section-offsets.json +465 -411
- package/data/_indexes/summary-cards.json +34 -34
- package/data/_indexes/token-budget.json +298 -268
- package/data/cve-catalog.json +4 -146
- package/data/exploit-availability.json +0 -27
- package/data/framework-control-gaps.json +2 -2
- package/data/zeroday-lessons.json +0 -89
- package/lib/schemas/playbook.schema.json +5 -0
- package/manifest.json +80 -80
- package/package.json +1 -1
- package/sbom.cdx.json +53 -53
- package/skills/age-gates-child-safety/skill.md +2 -0
- package/skills/ai-attack-surface/skill.md +2 -0
- package/skills/ai-c2-detection/skill.md +2 -0
- package/skills/ai-risk-management/skill.md +2 -0
- package/skills/api-security/skill.md +2 -0
- package/skills/attack-surface-pentest/skill.md +2 -0
- package/skills/cloud-security/skill.md +2 -0
- package/skills/compliance-theater/skill.md +28 -2
- package/skills/container-runtime-security/skill.md +2 -0
- package/skills/coordinated-vuln-disclosure/skill.md +1 -1
- package/skills/defensive-countermeasure-mapping/skill.md +2 -0
- package/skills/dlp-gap-analysis/skill.md +2 -0
- package/skills/exploit-scoring/skill.md +30 -1
- package/skills/framework-gap-analysis/skill.md +28 -1
- package/skills/fuzz-testing-strategy/skill.md +4 -2
- package/skills/global-grc/skill.md +2 -0
- package/skills/identity-assurance/skill.md +2 -0
- package/skills/kernel-lpe-triage/skill.md +2 -0
- package/skills/mcp-agent-trust/skill.md +4 -0
- package/skills/mlops-security/skill.md +2 -0
- package/skills/ot-ics-security/skill.md +2 -0
- package/skills/policy-exception-gen/skill.md +28 -1
- package/skills/pqc-first/skill.md +2 -0
- package/skills/rag-pipeline-security/skill.md +2 -0
- package/skills/researcher/skill.md +2 -0
- package/skills/sector-energy/skill.md +2 -0
- package/skills/sector-federal-government/skill.md +2 -0
- package/skills/sector-financial/skill.md +2 -0
- package/skills/sector-healthcare/skill.md +2 -0
- package/skills/security-maturity-tiers/skill.md +2 -0
- package/skills/skill-update-loop/skill.md +2 -0
- package/skills/supply-chain-integrity/skill.md +2 -0
- package/skills/threat-model-currency/skill.md +37 -1
- package/skills/threat-modeling-methodology/skill.md +2 -0
- package/skills/webapp-security/skill.md +2 -0
- package/skills/zeroday-gap-learn/skill.md +33 -1
package/AGENTS.md
CHANGED
|
@@ -156,7 +156,7 @@ Cross-cutting playbook `framework` is the natural correlation layer — many pla
|
|
|
156
156
|
|
|
157
157
|
| Verb | What it does |
|
|
158
158
|
|---|---|
|
|
159
|
-
| `exceptd brief --all` | Grouped-by-scope summary of all
|
|
159
|
+
| `exceptd brief --all` | Grouped-by-scope summary of all 20 playbooks. `--scope <type>` filters. `--directives` expands directive IDs/titles per playbook. `--flat` for non-grouped. `exceptd plan` was removed in v0.13.0; invoking it returns a structured `ok:false` refusal pointing at this command. |
|
|
160
160
|
| `exceptd brief <pb>` | Phase 2 threat-context briefing — threat context, RWEP thresholds, skill chain, token budget, jurisdiction obligations. |
|
|
161
161
|
| `exceptd run <pb> --evidence <file>` | Phases 5-7 (analyze + validate + close) from agent evidence. Auto-detect cwd when no playbook positional. `--vex <file>` drops CycloneDX/OpenVEX `not_affected` CVEs. `--diff-from-latest` for drift mode. `--force-stale` overrides currency hard-block. |
|
|
162
162
|
| `exceptd ai-run <pb>` | Streaming variant of `run` for AI agents; emits phase-by-phase NDJSON. |
|
|
@@ -164,12 +164,14 @@ Cross-cutting playbook `framework` is the natural correlation layer — many pla
|
|
|
164
164
|
| `exceptd ci` | Top-level CI gate for a single playbook with exit-code semantics. Preferred over `run --ci`. |
|
|
165
165
|
| `exceptd discover` | Repo discovery — scans cwd and surfaces matching playbooks + collection hints. |
|
|
166
166
|
| `exceptd ask <pb> <question>` | Read-only Q&A against a playbook's directives, indicators, and threat context. |
|
|
167
|
-
| `exceptd attest diff <sid>` | Replay analyze against a stored evidence bundle for drift detection. `--against <other-sid>` compares two sessions. `--playbook <id>` + `--since <ISO>` accepted with `--latest`.
|
|
167
|
+
| `exceptd attest diff <sid>` | Replay analyze against a stored evidence bundle for drift detection. `--against <other-sid>` compares two sessions. `--playbook <id>` + `--since <ISO>` accepted with `--latest`. `exceptd reattest` remains a short-form alias — preserved (no removal scheduled). |
|
|
168
168
|
| `exceptd attest verify <sid>` | Verify a persisted attestation's signature + evidence hash. |
|
|
169
169
|
| `exceptd attest list` | Inventory `.exceptd/attestations/` — newest first. `--playbook <id>` filters. |
|
|
170
170
|
| `exceptd attest show <sid>` | Print the attestation body. |
|
|
171
|
-
| `exceptd doctor` | Health checks. `--signatures` verifies Ed25519 chains; `--cves` / `--rfcs` check catalog currency; `--fix` repairs recoverable state. |
|
|
171
|
+
| `exceptd doctor` | Health checks. `--signatures` verifies Ed25519 chains; `--cves` / `--rfcs` check catalog currency; `--fix` repairs recoverable state; `--ai-config` audits AI-assistant config-file permissions (`~/.claude`, `~/.cursor`, `~/.codeium`, `~/.aider`, `~/.continue`) and flags sensitive files not at mode `0o600` on POSIX (NEW-CTRL-050). |
|
|
172
172
|
| `exceptd lint` | Skill format lint — frontmatter completeness, required body sections, signature presence. |
|
|
173
|
+
| `exceptd refresh --check-advisories` | Poll 8 primary-source advisory feeds (Qualys TRU, Red Hat RHSA, Ubuntu USN, ZDI, kernel.org commits, oss-security mailing list, JFrog SecOps, CISA current advisories) for CVE IDs at T+0 to T+1 — typically 3-14 days ahead of NVD enrichment. Report-only; emits structured `diffs[]` without mutating the catalog. Route promising IDs through `refresh --advisory <CVE-ID> --apply` to enrich. |
|
|
174
|
+
| `exceptd watchlist` | Default: aggregate every skill's `forward_watch` entries. `--by-skill` inverts grouping. `--alerts` switches to CVE-catalog pattern alerts (5 patterns: `kernel_lpe_with_poc`, `supply_chain_family`, `ai_discovered_kev`, `active_exploitation_unpatched`, `recent_poc_no_kev_yet`); sorts critical-first, then by RWEP. `--org-scan --org <login>` probes GitHub Search for repos matching threat-actor naming patterns ("A Gift From TeamPCP", "Shai-Hulud", "TeamPCP"); custom patterns via repeatable `--pattern <s>`; set `GITHUB_TOKEN` for private-repo + rate-limit headroom (NEW-CTRL-052). |
|
|
173
175
|
|
|
174
176
|
All verbs support `--help` for per-verb usage. JSON output by default; `--pretty` for indented.
|
|
175
177
|
|
|
@@ -210,6 +212,37 @@ Right: every new CVE triggers a corresponding entry in `zeroday-lessons.json` ma
|
|
|
210
212
|
|
|
211
213
|
---
|
|
212
214
|
|
|
215
|
+
## New Control Requirements
|
|
216
|
+
|
|
217
|
+
When a zero-day surfaces a control class no existing framework covers, the learning loop produces a `NEW-CTRL-*` entry under `data/zeroday-lessons.json[<CVE-ID>].new_control_requirements[]`. These are the operator-actionable controls the framework set is missing. The IDs are stable — cite them in skill bodies, in operator reports, and in framework-gap analyses.
|
|
218
|
+
|
|
219
|
+
Recently added (use the IDs in skill prose and operator briefings; full text in `data/zeroday-lessons.json`):
|
|
220
|
+
|
|
221
|
+
| ID | Name | Surfacing zero-day | Coverage gap closed |
|
|
222
|
+
|---|---|---|---|
|
|
223
|
+
| `NEW-CTRL-048` | NPM-MAINTAINER-MFA-ENFORCEMENT / KERNEL-EXIT-RACE-CVE-CLASS-MONITORING | `MAL-2026-NODE-IPC-STEALER`, `CVE-2026-46333` | NIST-800-218 SSDF, NIST-800-53 IA-5/AU-2/SI-4, NIS2 Art.21 supply-chain |
|
|
224
|
+
| `NEW-CTRL-049` | LOCKFILE-INTEGRITY-VERIFIED-AT-CI-BOOT / SUID-MINIMIZATION-FOR-KERNEL-LPE-CARRIER-BINARIES | `MAL-2026-NODE-IPC-STEALER`, `CVE-2026-46333` | NIST-800-218 SSDF, EU CRA Art.13, SLSA Build L3, NIST-800-53 CM-6/AC-3 |
|
|
225
|
+
| `NEW-CTRL-050` | AI-ASSISTANT-CONFIG-FILE-PERMISSION-LOCKDOWN | `MAL-2026-SHAI-HULUD-OSS` | NIST-800-53 AC-3/CM-6. Enforced operationally by `exceptd doctor --ai-config`. |
|
|
226
|
+
| `NEW-CTRL-051` | NPM-PUBLISH-TOKEN-WORKSTATION-ISOLATION | `MAL-2026-SHAI-HULUD-OSS` | NIST-800-53 IA-5, NIST-800-218 SSDF PW.4 |
|
|
227
|
+
| `NEW-CTRL-052` | GITHUB-REPO-PATTERN-MONITORING-FOR-EXFIL-CHANNELS | `MAL-2026-SHAI-HULUD-OSS` | NIST-800-53 SI-4. Enforced operationally by `exceptd watchlist --org-scan`. |
|
|
228
|
+
| `NEW-CTRL-053` | MCP-SERVER-CONFIG-ALLOWLIST | `CVE-2026-30623` (Anthropic MCP SDK stdio injection) | NIST AI RMF MEASURE 2.7, OWASP LLM Top 10 2025 LLM05 |
|
|
229
|
+
| `NEW-CTRL-054` | BACKUP-TIER-NETWORK-ISOLATION | `CVE-2025-59389` (QNAP Hyper Data Protector preauth RCE) | ISO-27001-2022 A.8.13, NIS2 Art.21 business-continuity |
|
|
230
|
+
| `NEW-CTRL-055` | SECURITY-TOOL-INTEGRITY-VERIFICATION | `CVE-2025-11837` (QNAP Malware Remover code-injection) | NIST-800-53 SI-3, ISO-27001-2022 A.8.7, PCI-DSS 4.0 §5.1 |
|
|
231
|
+
|
|
232
|
+
When you cite a `NEW-CTRL-*` ID in a skill body, the lint reads the upstream `zeroday-lessons.json` entry as the authoritative source for the requirement text — do not paraphrase the description in the skill body, link to the ID instead.
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Operational threat-intake cadence
|
|
237
|
+
|
|
238
|
+
The toolkit ships with a `routine: exceptd-threat-intake` (claude.ai remote agent) that runs daily at 14:00 UTC. Sequence: `npm install` → `refresh --check-advisories` (poll the 8 primary-source feeds) → `watchlist --alerts` (5-pattern CVE-class scan) → `refresh --apply` → `refresh --advisory <CVE-ID>` for up to 5 newly-disclosed IDs from the primary-source diff → re-sign + rebuild-indexes if the catalog mutated → commit on `intake/<YYYY-MM-DD>` branch with the full diff in the report.
|
|
239
|
+
|
|
240
|
+
The routine is operator-managed at <https://claude.ai/code/routines>. Closes the cadence gap between vendor disclosure (T+0) and NVD enrichment (T+10) — operators no longer depend on manual intake to surface ssh-keysign-pwn-class or Shai-Hulud-class events.
|
|
241
|
+
|
|
242
|
+
When working on a fresh checkout: do not invoke the daily routine ad-hoc — it commits + pushes a branch. For one-off triage, use `exceptd refresh --check-advisories` (report-only) followed by `exceptd refresh --advisory <CVE-ID>` for the specific IDs you want to enrich.
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
213
246
|
## Skill File Format
|
|
214
247
|
|
|
215
248
|
Every `skills/*/skill.md` must have this frontmatter:
|
|
@@ -375,4 +408,8 @@ Maintainers convert approved requests into skill files. The contributor is credi
|
|
|
375
408
|
| cloud iam incident, aws account takeover, gcp account takeover, azure account takeover, cross-account assume-role, imds, access key leak, snowflake breach, scim, workload identity | cloud-iam-incident |
|
|
376
409
|
| email security, anti-phishing, dmarc, dkim, spf, bimi, arc, mta-sts, bec, vishing, deepfake phishing | email-security-anti-phishing |
|
|
377
410
|
| age gate, age verification, coppa, cipa, california aadc, uk children's code, kosa, gdpr article 8, dsa article 28, parental consent, csam, child safety, children's online safety | age-gates-child-safety |
|
|
378
|
-
| forward watch, watchlist, upcoming standards, horizon scan | `
|
|
411
|
+
| forward watch, watchlist, upcoming standards, horizon scan | `exceptd watchlist` (add `--by-skill` to invert) |
|
|
412
|
+
| CVE alert triage, kernel LPE PoC, supply-chain MAL, active exploitation | `exceptd watchlist --alerts` |
|
|
413
|
+
| github repo pattern scan, Shai-Hulud, TeamPCP, exfil-channel monitoring | `exceptd watchlist --org-scan --org <login>` |
|
|
414
|
+
| AI-assistant config permission audit, ~/.cursor, ~/.claude, ~/.codeium, MCP config lockdown | `exceptd doctor --ai-config` |
|
|
415
|
+
| primary-source advisory polling, Qualys TRU, Red Hat RHSA, Ubuntu USN, ZDI, kernel.org, oss-security, JFrog, CISA | `exceptd refresh --check-advisories` |
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.13.4 — 2026-05-18
|
|
4
|
+
|
|
5
|
+
Warning-cleanup pass + catalog hygiene + docs surfacing. The post-v0.13.3 state had ~43 skill lint warnings and 20 cosmetic playbook warnings that operators saw on every predeploy run; this release drives both to zero. README and AGENTS catch up with the v0.13.0 → v0.13.3 operator surface.
|
|
6
|
+
|
|
7
|
+
### Bugs
|
|
8
|
+
|
|
9
|
+
**Playbook `_meta.fed_by` is now schema-accepted.** v0.13.0 added the `_meta.fed_by[]` reverse-direction field to every playbook but never updated `lib/schemas/playbook.schema.json`; every playbook surfaced a cosmetic `unexpected property "fed_by"` warning. Schema now declares the field as an array of strings; warning count for `validate-playbooks` drops from 22 → 0. 20/20 playbooks now validate clean without warnings.
|
|
10
|
+
|
|
11
|
+
**Skill lint cleanup: 43 warnings → 0.** Two categories addressed:
|
|
12
|
+
|
|
13
|
+
- **Output Format section too short (32 skills):** the lint requires `## Output Format` carry ≥ 20 words of body text. Most skills had the section terminated early because H2 / H1 headings inside example-output code fences were detected as real headings by the lint's heading-finder. Each affected skill now carries 1-2 sentences of explanatory prose between the `## Output Format` heading and the first fenced code block — naming the report shape, the downstream consumers (compliance-theater, framework-gap-analysis, incident-response-playbook, global-grc, CSAF auditor bundles), and the load-bearing fields operators must preserve verbatim. Two skills (`mcp-agent-trust`, `fuzz-testing-strategy`) had analogous heading-collision issues in other sections; same fix pattern.
|
|
14
|
+
|
|
15
|
+
- **Missing Defensive Countermeasure Mapping section (6 skills):** the section is required for skills with `last_threat_review >= 2026-05-11`. Added to `framework-gap-analysis`, `compliance-theater`, `exploit-scoring`, `policy-exception-gen`, `threat-model-currency`, `zeroday-gap-learn`. Each section ships a 5-10 row table mapping offensive TTPs (ATLAS / ATT&CK) to D3FEND defensive technique IDs (all verified against `data/d3fend-catalog.json`), plus defense-in-depth posture, least-privilege scope, zero-trust posture, and AI-pipeline applicability notes per AGENTS.md Hard Rule #9. Updated `last_threat_review` to `2026-05-18`.
|
|
16
|
+
|
|
17
|
+
Final lint state: **42/42 skills passing, 0 warnings.**
|
|
18
|
+
|
|
19
|
+
**2 stuck-draft CVEs removed from catalog.** `MAL-2026-ANTHROPIC-MCP-STDIO` was a `_quarantine: true` duplicate of the verified `CVE-2026-30623` (Anthropic MCP SDK stdio command-injection). `CVE-2026-GTIG-AI-2FA` was a `_draft: true` placeholder for an embargoed/un-assigned CVE id. Both removed. Cross-references updated in `data/exploit-availability.json`, `data/framework-control-gaps.json` (inline text in `NIST-AI-RMF-MEASURE-2.7`), `data/_indexes/chains.json` (regenerated), `data/zeroday-lessons.json`. Catalog state now **38/38 verified, 0 drafts**.
|
|
20
|
+
|
|
21
|
+
### Features
|
|
22
|
+
|
|
23
|
+
**README.md catches up with v0.13.0 → v0.13.3 operator surface.** New documentation for: `exceptd watchlist --alerts` (CVE-class pattern matcher; 5 patterns), `exceptd watchlist --org-scan` (GitHub repo-pattern monitoring per NEW-CTRL-052; `--org`, `--pattern`, `GITHUB_TOKEN` env var), `exceptd doctor --ai-config` (file-mode audit per NEW-CTRL-050; walks ~/.claude / ~/.cursor / ~/.codeium / ~/.aider / ~/.continue), `exceptd refresh --check-advisories` (8-feed primary-source poller: Qualys / RHSA / USN / ZDI / kernel-org / oss-security / JFrog / CISA), and the daily scheduled `exceptd-threat-intake` remote agent. Playbook count updated 16 → 20 with the 4 v0.13.0 additions named. Legacy verb table split into "Removed in v0.13.0" (5 verbs) vs "Aliases — still functional, no removal scheduled" (10 verbs). Watchlist now has a first-class CLI block instead of the prior "no replacement yet" stub.
|
|
24
|
+
|
|
25
|
+
**AGENTS.md catches up.** Two new sections:
|
|
26
|
+
- **New Control Requirements** — table documenting NEW-CTRL-048 through NEW-CTRL-055 with name, surfacing zero-day, and coverage gap closed. Skill bodies should cite the IDs rather than paraphrase the upstream description.
|
|
27
|
+
- **Operational threat-intake cadence** — documents the daily `exceptd-threat-intake` routine, the sequence it runs (`refresh --check-advisories` → `watchlist --alerts` → `refresh --apply` → `refresh --advisory <CVE-ID>` for up to 5 new IDs → PR), and operator instructions for one-off triage.
|
|
28
|
+
|
|
29
|
+
CLI reference table extended: `exceptd brief --all` row updated 16 → 20 playbooks; `exceptd attest diff <sid>` row updated to describe `reattest` as a preserved short-form alias; `exceptd doctor` row added `--ai-config`; two new rows added for `exceptd refresh --check-advisories` and `exceptd watchlist`. Quick Skill Reference table replaced legacy `node orchestrator/index.js watchlist` invocation with `exceptd watchlist`.
|
|
30
|
+
|
|
31
|
+
### Internal
|
|
32
|
+
|
|
33
|
+
- 18 new tests: `tests/v0_13_4-fixes.test.js` (13 pins covering Phases A / C / E), `tests/doctor-ai-config-substantive.test.js` (5 fixture-driven tests, POSIX-only), `tests/watchlist-org-scan-substantive.test.js` (5 envelope-shape tests).
|
|
34
|
+
- Test-count baseline refreshed.
|
|
35
|
+
- Predeploy: 15/15 gates green; both `validate-playbooks` and `lint-skills` now run warning-free.
|
|
36
|
+
|
|
3
37
|
## 0.13.3 — 2026-05-18
|
|
4
38
|
|
|
5
39
|
Audit close-out continuation: the items the prior pass marked for follow-up. Workflow hardening, lint enforcement promoted from warning to hard error, two new operator-facing health checks for the Shai-Hulud lesson controls, and 4 more primary-source pollers covering kernel.org / oss-security / JFrog / CISA.
|
package/README.md
CHANGED
|
@@ -30,7 +30,7 @@ This platform surfaces what is actually happening right now. Every skill explici
|
|
|
30
30
|
|
|
31
31
|
## Status
|
|
32
32
|
|
|
33
|
-
Pre-1.0. Latest release lives on [GitHub Releases](https://github.com/blamejs/exceptd-skills/releases) and on npm as [`@blamejs/exceptd-skills`](https://www.npmjs.com/package/@blamejs/exceptd-skills) with signed npm provenance attestation and Ed25519-signed skill bodies. The package ships 42 skills across kernel LPE, MCP supply chain, AI-as-C2, prompt injection, post-quantum crypto, SBOM integrity, identity-incident response, and 35 other AI/security domains, plus 10 intelligence catalogs (CVE / ATLAS / ATT&CK / CWE / D3FEND / DLP / RFC / framework gaps / global frameworks / zero-day lessons) covering 35 jurisdictions, a CLI for discovery and seven-phase investigation runs (`govern → direct → look → detect → analyze → validate → close`), and a nightly auto-refresh job that pulls KEV / NVD / EPSS / GHSA / OSV / IETF deltas into auto-PRs for editorial review.
|
|
33
|
+
Pre-1.0. Latest release lives on [GitHub Releases](https://github.com/blamejs/exceptd-skills/releases) and on npm as [`@blamejs/exceptd-skills`](https://www.npmjs.com/package/@blamejs/exceptd-skills) with signed npm provenance attestation and Ed25519-signed skill bodies. The package ships 42 skills across kernel LPE, MCP supply chain, AI-as-C2, prompt injection, post-quantum crypto, SBOM integrity, identity-incident response, and 35 other AI/security domains, plus 10 intelligence catalogs (CVE / ATLAS / ATT&CK / CWE / D3FEND / DLP / RFC / framework gaps / global frameworks / zero-day lessons) covering 35 jurisdictions, 20 investigation playbooks (kernel, MCP, AI-API, framework, SBOM, runtime, hardening, secrets, cred-stores, containers, crypto, plus `webhook-callback-abuse`, `cicd-pipeline-compromise`, `identity-sso-compromise`, `llm-tool-use-exfil`, and more), a CLI for discovery and seven-phase investigation runs (`govern → direct → look → detect → analyze → validate → close`), and a nightly auto-refresh job that pulls KEV / NVD / EPSS / GHSA / OSV / IETF deltas plus primary-source advisories (Qualys TRU, Red Hat RHSA, Ubuntu USN, ZDI, kernel.org, oss-security, JFrog, CISA) into auto-PRs for editorial review.
|
|
34
34
|
|
|
35
35
|
---
|
|
36
36
|
|
|
@@ -154,6 +154,16 @@ Air-gapped operation: run `exceptd refresh --prefetch` on a connected host, copy
|
|
|
154
154
|
|
|
155
155
|
Fresh-disclosure workflow (v0.12.0): the nightly auto-PR job pulls KEV / NVD / EPSS / IETF / **GHSA** (added in v0.12.0) / **OSV** (added in v0.12.10). KEV typically takes days; NVD ~10 days; GHSA fires within hours of disclosure and covers npm + PyPI + Maven + Go + NuGet + …; OSV aggregates the OSSF Malicious Packages dataset (`MAL-*` keys) + Snyk + RustSec + Mageia + Ubuntu USN + Go Vuln DB + PYSEC + UVI on top of GHSA — useful for malicious-package compromises that don't have CVEs yet (`exceptd refresh --advisory MAL-2026-3083`). New IDs land as drafts (`_auto_imported: true`, `_draft: true`) that the catalog validator treats as warnings, not errors — operators get the fresh entry immediately, editorial review (framework gaps, IoCs, ATLAS/ATT&CK refs) follows via `exceptd refresh --curate <ID>`. For "I want this advisory today, not tomorrow": `exceptd refresh --advisory <CVE-or-GHSA-or-MAL-or-SNYK-or-RUSTSEC-ID> --apply`.
|
|
156
156
|
|
|
157
|
+
Primary-source advisory polling: `exceptd refresh --check-advisories` polls 8 vendor and coordinated-disclosure feeds (Qualys TRU, Red Hat RHSA, Ubuntu USN, Zero Day Initiative, kernel.org commits, oss-security mailing list, JFrog SecOps, CISA current advisories) that publish CVE IDs at T+0 to T+1 — typically 3–14 days ahead of NVD enrichment. The command is report-only: it returns a structured `diffs[]` listing each newly-seen CVE ID with its source attributions and advisory URLs, but does not mutate the catalog. Operators triage the output and route promising IDs through `exceptd refresh --advisory <CVE-ID> --apply`. Pairs naturally with the daily scheduled remote agent below.
|
|
158
|
+
|
|
159
|
+
CVE-class alert surfacing: `exceptd watchlist --alerts` matches the live `cve-catalog.json` against five operational patterns (`kernel_lpe_with_poc`, `supply_chain_family`, `ai_discovered_kev`, `active_exploitation_unpatched`, `recent_poc_no_kev_yet`) and returns the matches sorted critical-severity-first, then by RWEP. Use as a fast operational triage on a refreshed catalog without scanning every entry by hand.
|
|
160
|
+
|
|
161
|
+
GitHub repo-pattern monitoring: `exceptd watchlist --org-scan --org <login>` probes GitHub Search for repositories matching known threat-actor naming patterns ("A Gift From TeamPCP", "Shai-Hulud", "TeamPCP") scoped to one org. Custom patterns via repeatable `--pattern <s>`. Implements the canonical detection for the Shai-Hulud / TeamPCP supply-chain framework class — the attacker uses GitHub itself as the exfil channel. Set `GITHUB_TOKEN` for private-repo coverage and rate-limit headroom; public-repo search works without auth.
|
|
162
|
+
|
|
163
|
+
AI-assistant config-file audit: `exceptd doctor --ai-config` walks `~/.claude`, `~/.cursor`, `~/.codeium`, `~/.aider`, and `~/.continue`, flagging sensitive files (`settings.json`, `mcp.json`, `*.mcp_config.json`, `api_key*`, `*.token`, `*.credentials`) not at mode 0600 on POSIX. On Windows the mode bits aren't load-bearing; each finding is surfaced with an info-level "manual ACL review" note. Catches the AI-config-credential-exfil class that the Shai-Hulud framework targets. Opt-in — does not run as part of the default no-flag `doctor` pass.
|
|
164
|
+
|
|
165
|
+
Daily scheduled threat intake: a `routine: exceptd-threat-intake` (claude.ai remote agent) runs daily at 14:00 UTC. Sequence: `npm install` → `refresh --check-advisories` → `watchlist --alerts` → `refresh --apply` → `refresh --advisory <CVE-ID>` for up to 5 new CVE IDs from the primary-source feeds → re-sign + rebuild-indexes if the catalog mutated → commit on `intake/<YYYY-MM-DD>` branch with the full diff in the report. Closes the cadence gap that previously left fresh disclosures dependent on operator-triggered intake. Operator-managed at <https://claude.ai/code/routines>.
|
|
166
|
+
|
|
157
167
|
Optional env vars for higher rate budgets:
|
|
158
168
|
|
|
159
169
|
| Variable | Purpose |
|
|
@@ -270,6 +280,16 @@ exceptd doctor One-shot health check.
|
|
|
270
280
|
--currency Only skill currency report.
|
|
271
281
|
--cves Only CVE catalog drift check.
|
|
272
282
|
--rfcs Only RFC catalog drift check.
|
|
283
|
+
--ai-config Audit AI-assistant config-file permissions
|
|
284
|
+
across ~/.claude, ~/.cursor, ~/.codeium,
|
|
285
|
+
~/.aider, ~/.continue. Flags sensitive
|
|
286
|
+
files (settings.json, mcp.json,
|
|
287
|
+
*.mcp_config.json, api_key*, *.token,
|
|
288
|
+
*.credentials) not at mode 0600 on POSIX;
|
|
289
|
+
surfaces an info-level "manual ACL review"
|
|
290
|
+
note for each sensitive file on Windows.
|
|
291
|
+
Opt-in; not part of the default doctor
|
|
292
|
+
pass.
|
|
273
293
|
|
|
274
294
|
exceptd ci One-shot CI gate. Exits 2 on detected or
|
|
275
295
|
rwep ≥ rwep_threshold.escalate.
|
|
@@ -302,12 +322,56 @@ exceptd refresh Refresh upstream catalogs + indexes.
|
|
|
302
322
|
--curate <CVE-ID> (v0.12.0) Emit editorial questions + ranked
|
|
303
323
|
candidates (ATLAS/ATT&CK/CWE/framework) for
|
|
304
324
|
a draft catalog entry.
|
|
325
|
+
--check-advisories Poll 8 primary-source advisory feeds
|
|
326
|
+
(Qualys TRU, Red Hat RHSA, Ubuntu USN,
|
|
327
|
+
ZDI, kernel.org commits, oss-security
|
|
328
|
+
mailing list, JFrog SecOps, CISA current
|
|
329
|
+
advisories) for CVE IDs disclosed at T+0
|
|
330
|
+
to T+1 — days ahead of NVD enrichment.
|
|
331
|
+
Report-only: emits structured diffs[]
|
|
332
|
+
with {cve_id, sources[], advisory_urls[],
|
|
333
|
+
disclosed_at, title}; does NOT mutate the
|
|
334
|
+
catalog. Route promising IDs through
|
|
335
|
+
`refresh --advisory <CVE-ID>` to enrich.
|
|
305
336
|
--indexes-only Rebuild data/_indexes/*.json only.
|
|
306
337
|
|
|
307
|
-
Sources (default = all): kev | epss | nvd | rfc | pins | ghsa
|
|
308
|
-
GHSA covers npm, PyPI, Maven, Go, NuGet, etc
|
|
309
|
-
|
|
310
|
-
|
|
338
|
+
Sources (default = all): kev | epss | nvd | rfc | pins | ghsa | osv.
|
|
339
|
+
GHSA covers npm, PyPI, Maven, Go, NuGet, etc.; OSV layers Snyk, RustSec,
|
|
340
|
+
Mageia, Ubuntu USN, Go Vuln DB, PYSEC, UVI, plus the OSSF Malicious
|
|
341
|
+
Packages dataset (`MAL-*` keys). New IDs land as drafts that the catalog
|
|
342
|
+
validator treats as warnings, not errors — editorial review (framework
|
|
343
|
+
gaps, IoCs, ATLAS/ATT&CK refs) is still required.
|
|
344
|
+
|
|
345
|
+
exceptd watchlist Default mode: aggregate every skill's
|
|
346
|
+
forward_watch entries (upcoming standards,
|
|
347
|
+
RFC publications, new TTPs to monitor).
|
|
348
|
+
`--by-skill` inverts the grouping.
|
|
349
|
+
--alerts Switch to CVE-catalog pattern alerts.
|
|
350
|
+
Five patterns ship:
|
|
351
|
+
- kernel_lpe_with_poc (high) — kernel
|
|
352
|
+
LPE class with public PoC + blast
|
|
353
|
+
radius >= 25
|
|
354
|
+
- supply_chain_family (high) — MAL-*
|
|
355
|
+
entries or `type: malicious-*`
|
|
356
|
+
- ai_discovered_kev (high) — AI-
|
|
357
|
+
discovered AND CISA KEV-listed
|
|
358
|
+
- active_exploitation_unpatched
|
|
359
|
+
(critical) — confirmed in-the-wild
|
|
360
|
+
+ no patch available
|
|
361
|
+
- recent_poc_no_kev_yet (medium) —
|
|
362
|
+
public PoC verified within 14 days,
|
|
363
|
+
not yet KEV-listed
|
|
364
|
+
Sorted critical-severity first, then by
|
|
365
|
+
RWEP descending. JSON or human output.
|
|
366
|
+
--org-scan --org <login> Probe GitHub Search for repositories
|
|
367
|
+
matching known threat-actor naming
|
|
368
|
+
patterns ("A Gift From TeamPCP",
|
|
369
|
+
"Shai-Hulud", "TeamPCP") scoped to one
|
|
370
|
+
org. Custom patterns via repeatable
|
|
371
|
+
`--pattern <s>`. Set GITHUB_TOKEN for
|
|
372
|
+
private-repo coverage + higher rate
|
|
373
|
+
limit; without it, public-repo search
|
|
374
|
+
only.
|
|
311
375
|
|
|
312
376
|
exceptd skill <name> Show context for one skill.
|
|
313
377
|
exceptd framework-gap <FW> <ref> One framework + one CVE/scenario, JSON
|
|
@@ -319,31 +383,33 @@ exceptd help This help.
|
|
|
319
383
|
exceptd <verb> --help Per-verb usage with flag descriptions.
|
|
320
384
|
```
|
|
321
385
|
|
|
322
|
-
### Legacy v0.10.x verbs
|
|
386
|
+
### Legacy v0.10.x verbs
|
|
323
387
|
|
|
324
|
-
|
|
388
|
+
Five verbs removed in v0.13.0 after deprecation since v0.11.0. Invoking any of these now returns a structured `ok:false` refusal pointing at the replacement; pre-v0.13 scripts must migrate.
|
|
325
389
|
|
|
326
|
-
|
|
|
390
|
+
| Removed verb | Replacement |
|
|
327
391
|
|---|---|
|
|
328
392
|
| `plan` | `brief --all` |
|
|
329
393
|
| `govern <pb>` | `brief <pb> --phase govern` |
|
|
330
394
|
| `direct <pb>` | `brief <pb> --phase direct` |
|
|
331
395
|
| `look <pb>` | `brief <pb> --phase look` |
|
|
396
|
+
| `ingest` | `run` |
|
|
397
|
+
|
|
398
|
+
The remaining v0.10.x verbs are aliases — still functional, no banner, no removal scheduled:
|
|
399
|
+
|
|
400
|
+
| Alias | Canonical |
|
|
401
|
+
|---|---|
|
|
332
402
|
| `scan` | `discover --scan-only` |
|
|
333
403
|
| `dispatch` | `discover` |
|
|
334
404
|
| `currency` | `doctor --currency` |
|
|
335
405
|
| `verify` | `doctor --signatures` |
|
|
336
406
|
| `validate-cves` | `doctor --cves` |
|
|
337
407
|
| `validate-rfcs` | `doctor --rfcs` |
|
|
338
|
-
| `ingest` | `run` |
|
|
339
408
|
| `reattest <sid>` | `attest diff <sid>` |
|
|
340
409
|
| `list-attestations` | `attest list` |
|
|
341
|
-
| `watchlist` | (no replacement yet — kept) |
|
|
342
410
|
| `prefetch` | `refresh --no-network` |
|
|
343
411
|
| `build-indexes` | `refresh --indexes-only` |
|
|
344
412
|
|
|
345
|
-
Suppress the deprecation banner: `EXCEPTD_DEPRECATION_SHOWN=1`.
|
|
346
|
-
|
|
347
413
|
## Invoking a skill from your AI assistant
|
|
348
414
|
|
|
349
415
|
Once your assistant has loaded `AGENTS.md`, type a trigger phrase or skill name:
|
|
@@ -399,7 +465,7 @@ The `agents/` directory ships markdown role cards documenting authoring conventi
|
|
|
399
465
|
All skills pull from `data/`. Cross-validated against canonical upstream sources via `exceptd refresh` / `exceptd doctor --cves` / `exceptd doctor --rfcs`.
|
|
400
466
|
|
|
401
467
|
- `cve-catalog.json` — CVE metadata with RWEP scores, CISA KEV status, PoC availability, live-patch info
|
|
402
|
-
- `atlas-ttps.json` — MITRE ATLAS v5.4.0 TTPs with gap flags and exploitation examples
|
|
468
|
+
- `atlas-ttps.json` — MITRE ATLAS v5.4.0 TTPs with gap flags and exploitation examples. Each TTP now carries a `cve_refs[]` back-edge — operators reading an ATLAS entry see the catalogued CVEs that cite it without grepping `cve-catalog.json`. The same back-edge is populated on `attack-techniques.json`, and each playbook carries a `_meta.fed_by[]` reverse field naming the upstream playbooks that chain into it.
|
|
403
469
|
- `framework-control-gaps.json` — Per-framework, per-control: what it was designed for vs. what it misses
|
|
404
470
|
- `exploit-availability.json` — PoC locations, weaponization status, AI-assist factor
|
|
405
471
|
- `global-frameworks.json` — All major global compliance frameworks (35 jurisdictions) with control inventories and lag scores
|
package/data/_indexes/_meta.json
CHANGED
|
@@ -1,61 +1,61 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": "1.1.0",
|
|
3
|
-
"generated_at": "2026-05-
|
|
3
|
+
"generated_at": "2026-05-18T04:13:12.063Z",
|
|
4
4
|
"generator": "scripts/build-indexes.js",
|
|
5
5
|
"source_count": 54,
|
|
6
6
|
"source_hashes": {
|
|
7
|
-
"manifest.json": "
|
|
7
|
+
"manifest.json": "0d7cc1e5a718515519e81b973126f0fe316ad8252e4c8e04f54934ea575a9b80",
|
|
8
8
|
"data/atlas-ttps.json": "2b021f47355365d1ba59078dfa582397c7a64c2b4ebea4657ea260a66b76daf6",
|
|
9
9
|
"data/attack-techniques.json": "76461dbec048c5e072435d57e3a04b780e3992dab9f316b1b52608e0a997e355",
|
|
10
|
-
"data/cve-catalog.json": "
|
|
10
|
+
"data/cve-catalog.json": "4b8c05074744f9e099c776e0f9c3afd2b978fc52d702bc8805c3b5bfecdbafcb",
|
|
11
11
|
"data/cwe-catalog.json": "4a0036f9ec17af29e0df111ac77b94f8be6a52742bfd89ff3583096d23b75e35",
|
|
12
12
|
"data/d3fend-catalog.json": "a1fc2827ceb344669e148d55197dbf1b0e5b20bcc618e90517639c17d67ee82d",
|
|
13
13
|
"data/dlp-controls.json": "d2406c482dddd30e49203879999dc4b3a7fd4d0494d6a61d86b91ee76415df19",
|
|
14
|
-
"data/exploit-availability.json": "
|
|
15
|
-
"data/framework-control-gaps.json": "
|
|
14
|
+
"data/exploit-availability.json": "ec2656f0d9a893610e27b43eb6035fe9b18e057c9f6dfaac7e7d4959bbcbb795",
|
|
15
|
+
"data/framework-control-gaps.json": "994bf3203f3a2c80fe21194d00f67ecffa77b80193ba3f4b046e9d38e7b09f0f",
|
|
16
16
|
"data/global-frameworks.json": "9ba563a85f7f8d6c3c957de64945e20925a89d0ed6ea6fc561cf093811acf558",
|
|
17
17
|
"data/rfc-references.json": "e253a548c8a829d178d5aea601e268724b85c936ccbfa51c2e5d80c5f8efe2b0",
|
|
18
|
-
"data/zeroday-lessons.json": "
|
|
19
|
-
"skills/kernel-lpe-triage/skill.md": "
|
|
20
|
-
"skills/ai-attack-surface/skill.md": "
|
|
21
|
-
"skills/mcp-agent-trust/skill.md": "
|
|
22
|
-
"skills/framework-gap-analysis/skill.md": "
|
|
23
|
-
"skills/compliance-theater/skill.md": "
|
|
24
|
-
"skills/exploit-scoring/skill.md": "
|
|
25
|
-
"skills/rag-pipeline-security/skill.md": "
|
|
26
|
-
"skills/ai-c2-detection/skill.md": "
|
|
27
|
-
"skills/policy-exception-gen/skill.md": "
|
|
28
|
-
"skills/threat-model-currency/skill.md": "
|
|
29
|
-
"skills/global-grc/skill.md": "
|
|
30
|
-
"skills/zeroday-gap-learn/skill.md": "
|
|
31
|
-
"skills/pqc-first/skill.md": "
|
|
32
|
-
"skills/skill-update-loop/skill.md": "
|
|
33
|
-
"skills/security-maturity-tiers/skill.md": "
|
|
34
|
-
"skills/researcher/skill.md": "
|
|
35
|
-
"skills/attack-surface-pentest/skill.md": "
|
|
36
|
-
"skills/fuzz-testing-strategy/skill.md": "
|
|
37
|
-
"skills/dlp-gap-analysis/skill.md": "
|
|
38
|
-
"skills/supply-chain-integrity/skill.md": "
|
|
39
|
-
"skills/defensive-countermeasure-mapping/skill.md": "
|
|
40
|
-
"skills/identity-assurance/skill.md": "
|
|
41
|
-
"skills/ot-ics-security/skill.md": "
|
|
42
|
-
"skills/coordinated-vuln-disclosure/skill.md": "
|
|
43
|
-
"skills/threat-modeling-methodology/skill.md": "
|
|
44
|
-
"skills/webapp-security/skill.md": "
|
|
45
|
-
"skills/ai-risk-management/skill.md": "
|
|
46
|
-
"skills/sector-healthcare/skill.md": "
|
|
47
|
-
"skills/sector-financial/skill.md": "
|
|
48
|
-
"skills/sector-federal-government/skill.md": "
|
|
49
|
-
"skills/sector-energy/skill.md": "
|
|
18
|
+
"data/zeroday-lessons.json": "3d4c18977f2100f200e209dc55331931a5d0adc54af35879fc58f1b43deac56f",
|
|
19
|
+
"skills/kernel-lpe-triage/skill.md": "08b3e9815ba481c57c80f5fc0ccbf5bb7cbb41f570c235ba6ff9596b8c07354d",
|
|
20
|
+
"skills/ai-attack-surface/skill.md": "d1361c53c8360999e1ec6a403bcbfaa53d0afc11689e8781d26081196dd079d4",
|
|
21
|
+
"skills/mcp-agent-trust/skill.md": "19a6b54375808e59143070011328d8c936836845bca4a484108738bbef290694",
|
|
22
|
+
"skills/framework-gap-analysis/skill.md": "04e841fc426f92f20c254497b3b92b54d603062a0e6a617f3e9d607d6115c097",
|
|
23
|
+
"skills/compliance-theater/skill.md": "42babdc846b3e91af6be4698c7b5e876d9dd5cdb214d1aa2b4faceb6773e4ed1",
|
|
24
|
+
"skills/exploit-scoring/skill.md": "9f50b4d52c470d5616fc1626589843a5b2602d209436ded08cc9cc9885df770c",
|
|
25
|
+
"skills/rag-pipeline-security/skill.md": "4a64b4bc317141a219bcba40593f1994f791103381fd91c17ce23d06b0f6bc4e",
|
|
26
|
+
"skills/ai-c2-detection/skill.md": "490511ad517a0c3ad64f6a951c36cffb3109fed2c5da6376b5efc50e799e02a9",
|
|
27
|
+
"skills/policy-exception-gen/skill.md": "1e758322d74386f5c48d5bf5d7a4b4adfcef29553aca6d7c610845953beb8228",
|
|
28
|
+
"skills/threat-model-currency/skill.md": "38dc4369132fd199d10cebf3287ed8e35ffb0cf3eefbb98ec17d57027a5df7f1",
|
|
29
|
+
"skills/global-grc/skill.md": "57ca729034e9d33c527d869c1c4aa82fe37e496878a3cbcd9e5043cb62b7105d",
|
|
30
|
+
"skills/zeroday-gap-learn/skill.md": "adcb681f90ab3c58a98c7935fd8bad102d7ed16b6db6235661483ec1be6cf410",
|
|
31
|
+
"skills/pqc-first/skill.md": "07b38278b60d2437603a541c1ee954999abfe3a192f94b43cd384023738a0c1f",
|
|
32
|
+
"skills/skill-update-loop/skill.md": "eb67e2466230e143784b6e741c6ce7ea3e0c0e4385e5ab21b81b8de04f0168e2",
|
|
33
|
+
"skills/security-maturity-tiers/skill.md": "c1e699e4d48a7f89c32fbc9f2fe64c721a61603624eb93afae7148348cc4637d",
|
|
34
|
+
"skills/researcher/skill.md": "959aeba706eea43a69136561968d7942dcd981d0a6c3da7db47673c51943b6df",
|
|
35
|
+
"skills/attack-surface-pentest/skill.md": "e845c4e08adef038888a025bf920a042c851df41ca53f41aa5fc11ec02a37fbb",
|
|
36
|
+
"skills/fuzz-testing-strategy/skill.md": "1088d1ef5a0b4b2e50b356e3ff766a3ba6c66ba3435caf394d7c9c493d45b17e",
|
|
37
|
+
"skills/dlp-gap-analysis/skill.md": "6aa0960d85465006cdffcce3478dc790a14fd1cc95c73e124d5809836c26a4c4",
|
|
38
|
+
"skills/supply-chain-integrity/skill.md": "aea9c61c09e1ec714e129a6000d7b91ddbc74db52a64aa8bc95d3c698bf4ece6",
|
|
39
|
+
"skills/defensive-countermeasure-mapping/skill.md": "331a0248dd8ed3b509b759c41a9a4d6d8d6dc67fb732ad31d1a4c2d9a0865054",
|
|
40
|
+
"skills/identity-assurance/skill.md": "f3c29ce17aaa426b65b58238e5bc9ccabcda23a8d350e597840e5d6d664aa102",
|
|
41
|
+
"skills/ot-ics-security/skill.md": "33d3d82c87ed8708839f5211bb7b59a924c2e3d9c5d915dc2cc101c53176145e",
|
|
42
|
+
"skills/coordinated-vuln-disclosure/skill.md": "6c85b8761e557069ae0623400a2218a81356e5426f0a4e3ddebdc2a569735c9b",
|
|
43
|
+
"skills/threat-modeling-methodology/skill.md": "ba175224737571f9c6148e4cbe47b9ebaa762592cc659b7fb2cf0e9a6b3679c0",
|
|
44
|
+
"skills/webapp-security/skill.md": "135ca1cd01476b4df9ba7fbba2f194d0cac521480b51d479d60045d9abfc0350",
|
|
45
|
+
"skills/ai-risk-management/skill.md": "686f53c2aee3a44108d1fa3e5f52fc7d971edc00946cfc1f082e4658af25fddc",
|
|
46
|
+
"skills/sector-healthcare/skill.md": "9f3164def71c1f6f78b074ffc452bd02d8b71b313f2feb1554289bd5a099b4e9",
|
|
47
|
+
"skills/sector-financial/skill.md": "4c4c6fb95c6c2fd6cad3fec8ab8e08076fd4ddfa89ad5f00de017e546e01044d",
|
|
48
|
+
"skills/sector-federal-government/skill.md": "91e3eecdc18d108c669d49db1221ac89041a43c8294c8be65d4397cd149d75d0",
|
|
49
|
+
"skills/sector-energy/skill.md": "efc7681d62b23aaad277e9018687362717bb1fcfb29d7ada844dfb7196870c78",
|
|
50
50
|
"skills/sector-telecom/skill.md": "59193e39c2fd73fdd7fede38a956bc730bbe4b712d7d6020788bb4d85f001ad8",
|
|
51
|
-
"skills/api-security/skill.md": "
|
|
52
|
-
"skills/cloud-security/skill.md": "
|
|
53
|
-
"skills/container-runtime-security/skill.md": "
|
|
54
|
-
"skills/mlops-security/skill.md": "
|
|
51
|
+
"skills/api-security/skill.md": "8a79a28b7b1c3088672bc09017a0d2481e45fb1c0f89768e87642268b62d4808",
|
|
52
|
+
"skills/cloud-security/skill.md": "84844b369f3195eae06115b392b4ceb41d96c1b3fda254f82c37cd8165858e7f",
|
|
53
|
+
"skills/container-runtime-security/skill.md": "d608fc7cc9e7c89640101078623490596b1610f7020eecde0d696e5c5084f932",
|
|
54
|
+
"skills/mlops-security/skill.md": "44fc3a4a6118e764a4bef840358c98d01b87f6e47bac9dd88e2df7633573414a",
|
|
55
55
|
"skills/incident-response-playbook/skill.md": "2017515d899c1b2bcb878bc6731e4059623ac52345b2cebbd92204583657bf60",
|
|
56
56
|
"skills/ransomware-response/skill.md": "2e4fc488f86ed1ba7791ab0e7021160d8ca5ad33a02cdf92a5b916c8afecaa54",
|
|
57
57
|
"skills/email-security-anti-phishing/skill.md": "250f266908f51f99a4cb3aec0d5dacfcf91fac9f3d95e5a117429a40ed2ff45a",
|
|
58
|
-
"skills/age-gates-child-safety/skill.md": "
|
|
58
|
+
"skills/age-gates-child-safety/skill.md": "51ffbbc0743daa26d6c7fe55ff6ec223dccb2087ddca981e06ab7133230e9ec5",
|
|
59
59
|
"skills/cloud-iam-incident/skill.md": "5ec3800a0049b2123aff67bfab4ff28491a86d2daeb712283e5e88b10c3d5d7b",
|
|
60
60
|
"skills/idp-incident-response/skill.md": "e67a2576e7f1c3bf89f499f5c977bc470ef29e8b3e3e45f4cb5bd45a82674282"
|
|
61
61
|
},
|
|
@@ -72,13 +72,13 @@
|
|
|
72
72
|
"dlp_refs": 0
|
|
73
73
|
},
|
|
74
74
|
"trigger_table_entries": 538,
|
|
75
|
-
"chains_cve_entries":
|
|
75
|
+
"chains_cve_entries": 34,
|
|
76
76
|
"chains_cwe_entries": 55,
|
|
77
77
|
"jurisdictions_indexed": 29,
|
|
78
78
|
"handoff_dag_nodes": 42,
|
|
79
79
|
"summary_cards": 42,
|
|
80
80
|
"section_offsets_skills": 42,
|
|
81
|
-
"token_budget_total_approx":
|
|
81
|
+
"token_budget_total_approx": 416983,
|
|
82
82
|
"recipes": 8,
|
|
83
83
|
"jurisdiction_clocks": 29,
|
|
84
84
|
"did_ladders": 8,
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"artifact": "data/exploit-availability.json",
|
|
56
56
|
"path": "data/exploit-availability.json",
|
|
57
57
|
"schema_version": "1.1.0",
|
|
58
|
-
"entry_count":
|
|
58
|
+
"entry_count": 28
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
61
|
"date": "2026-05-15",
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"artifact": "data/zeroday-lessons.json",
|
|
88
88
|
"path": "data/zeroday-lessons.json",
|
|
89
89
|
"schema_version": "1.1.0",
|
|
90
|
-
"entry_count":
|
|
90
|
+
"entry_count": 38
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
93
|
"date": "2026-05-15",
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
"artifact": "data/cve-catalog.json",
|
|
103
103
|
"path": "data/cve-catalog.json",
|
|
104
104
|
"schema_version": "1.0.0",
|
|
105
|
-
"entry_count":
|
|
105
|
+
"entry_count": 38
|
|
106
106
|
},
|
|
107
107
|
{
|
|
108
108
|
"date": "2026-05-13",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"rebuild_after_days": 365,
|
|
63
63
|
"note": "Per-entry last_verified governs decay. Skills depending on this catalog must check entry freshness before high-stakes use."
|
|
64
64
|
},
|
|
65
|
-
"entry_count":
|
|
65
|
+
"entry_count": 38,
|
|
66
66
|
"sample_keys": [
|
|
67
67
|
"CVE-2025-53773",
|
|
68
68
|
"CVE-2026-30615",
|
|
@@ -150,7 +150,7 @@
|
|
|
150
150
|
"rebuild_after_days": 365,
|
|
151
151
|
"note": "Per-entry last_verified governs decay. Skills depending on this catalog must check entry freshness before high-stakes use."
|
|
152
152
|
},
|
|
153
|
-
"entry_count":
|
|
153
|
+
"entry_count": 28,
|
|
154
154
|
"sample_keys": [
|
|
155
155
|
"CVE-2025-53773",
|
|
156
156
|
"CVE-2026-30615",
|
|
@@ -238,7 +238,7 @@
|
|
|
238
238
|
"rebuild_after_days": 365,
|
|
239
239
|
"note": "Per-entry last_verified governs decay. Skills depending on this catalog must check entry freshness before high-stakes use."
|
|
240
240
|
},
|
|
241
|
-
"entry_count":
|
|
241
|
+
"entry_count": 38,
|
|
242
242
|
"sample_keys": [
|
|
243
243
|
"CVE-2026-31431",
|
|
244
244
|
"CVE-2025-53773",
|
|
@@ -4359,38 +4359,6 @@
|
|
|
4359
4359
|
"rfc_refs": []
|
|
4360
4360
|
}
|
|
4361
4361
|
},
|
|
4362
|
-
"MAL-2026-ANTHROPIC-MCP-STDIO": {
|
|
4363
|
-
"name": "Anthropic SDK MCP STDIO command-injection (embargoed)",
|
|
4364
|
-
"rwep": 25,
|
|
4365
|
-
"cvss": 9,
|
|
4366
|
-
"cisa_kev": false,
|
|
4367
|
-
"epss_score": null,
|
|
4368
|
-
"referencing_skills": [],
|
|
4369
|
-
"chain": {
|
|
4370
|
-
"cwes": [],
|
|
4371
|
-
"atlas": [],
|
|
4372
|
-
"d3fend": [],
|
|
4373
|
-
"framework_gaps": [],
|
|
4374
|
-
"attack_refs": [],
|
|
4375
|
-
"rfc_refs": []
|
|
4376
|
-
}
|
|
4377
|
-
},
|
|
4378
|
-
"CVE-2026-GTIG-AI-2FA": {
|
|
4379
|
-
"name": "GTIG-tracked AI-built 2FA-bypass zero-day (placeholder)",
|
|
4380
|
-
"rwep": 55,
|
|
4381
|
-
"cvss": 8.1,
|
|
4382
|
-
"cisa_kev": false,
|
|
4383
|
-
"epss_score": null,
|
|
4384
|
-
"referencing_skills": [],
|
|
4385
|
-
"chain": {
|
|
4386
|
-
"cwes": [],
|
|
4387
|
-
"atlas": [],
|
|
4388
|
-
"d3fend": [],
|
|
4389
|
-
"framework_gaps": [],
|
|
4390
|
-
"attack_refs": [],
|
|
4391
|
-
"rfc_refs": []
|
|
4392
|
-
}
|
|
4393
|
-
},
|
|
4394
4362
|
"CVE-2026-30623": {
|
|
4395
4363
|
"name": "Anthropic MCP SDK stdio command-injection",
|
|
4396
4364
|
"rwep": 30,
|