@blamejs/exceptd-skills 0.12.36 → 0.12.38
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 +49 -0
- package/README.md +7 -0
- package/bin/exceptd.js +102 -4
- package/data/_indexes/_meta.json +9 -9
- package/data/_indexes/section-offsets.json +37 -37
- package/data/_indexes/token-budget.json +20 -20
- package/data/cve-catalog.json +4 -1
- package/manifest-snapshot.json +1 -1
- package/manifest-snapshot.sha256 +1 -1
- package/manifest.json +49 -49
- package/package.json +1 -1
- package/sbom.cdx.json +20 -20
- package/skills/cloud-iam-incident/skill.md +1 -1
- package/skills/ot-ics-security/skill.md +2 -2
- package/skills/sector-energy/skill.md +2 -2
- package/skills/sector-federal-government/skill.md +1 -1
- package/skills/supply-chain-integrity/skill.md +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,54 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.12.38 — 2026-05-16
|
|
4
|
+
|
|
5
|
+
Cycle 18 security fix + state refresh. The P1 closes a multi-tenant attestation-file-mode gap; cycle 18 A inventoried the full v0.13.0 readiness list (60 items, 11-15 days) for the next minor bump.
|
|
6
|
+
|
|
7
|
+
### Security
|
|
8
|
+
|
|
9
|
+
**Attestation files now write at mode 0o600 (owner-read/write only).** Pre-fix `~/.exceptd/attestations/<tag>/<sid>/attestation.json` was written with the umask-derived mode — typically 0o644 (group/world-readable) on Linux/macOS. On multi-tenant shared hosts a different user account could read the operator's evidence submission, jurisdiction obligations, and consent records. Both the primary `persistAttestation` write site and the `reattest` replay-record write site now use `fs.writeFileSync(..., { mode: 0o600 })` plus the existing `restrictWindowsAcl` helper from `lib/sign.js` for Windows ACL inheritance stripping. New `tests/attestation-mode-0600.test.js` pins the contract on POSIX hosts (skipped on Windows where ACLs are the surface, not mode bits).
|
|
10
|
+
|
|
11
|
+
### Bugs
|
|
12
|
+
|
|
13
|
+
**`EXCEPTD_HOME` now documented in README.** Cycle 18 B finding: the env-var override was only mentioned in an inline `attest list` help string. Multi-tenant operators had no way to discover it without grepping the binary. README's flag-reference section now cross-references the env-var path.
|
|
14
|
+
|
|
15
|
+
**MAL-2026-NODE-IPC-STEALER `remediation_status: removed_from_registry`.** Cycle 18 C verified npm removed the 3 malicious versions (9.1.6, 9.2.3, 12.0.1) within ~2 hours of publication on 2026-05-14. Catalog now surfaces the registry-cleanup state so operators upgrading to a clean version know they're not racing the active-in-registry phase. The expired-domain TTP class (per `NEW-CTRL-047` in zeroday-lessons) still applies — domain-expiry monitoring is the durable control, not the npm-side cleanup.
|
|
16
|
+
|
|
17
|
+
**CVE-2026-42897 (Exchange OWA) `patch_available: false` regression-tested.** Verified Microsoft has not shipped a binary security update; Exchange Emergency Mitigation Service Mitigation M2 is still the only remediation. Catalog truth aligned with current vendor state.
|
|
18
|
+
|
|
19
|
+
### Internal
|
|
20
|
+
|
|
21
|
+
- Cycle 18 audit dispatched 3 read-only agents (v0.13.0 readiness, attestation persistence, 24h CVE intake). All 3 returned.
|
|
22
|
+
- Cycle 18 A v0.13.0 readiness inventory: 60 items total — 5 `will hard-fail in v0.13.0` markers + 17 legacy verbs to remove + 20 draft CVEs + 13 unresolved xrefs + 3 informational→required gate flips + 2 schema deprecations. Total effort 11-15 days for a single-maintainer minor bump. Detailed list in audit transcript.
|
|
23
|
+
- Cycle 18 B P1 F1 (submission redaction) and F3 (git remote URL in attestation root path) deferred to v0.13 — both are larger schema-or-behavior changes that need design before implementation.
|
|
24
|
+
- 4 new tests in `tests/attestation-mode-0600.test.js` (1 skipped on Windows). Test count 1145 → 1149. 14/14 predeploy gates green.
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
## 0.12.37 — 2026-05-16
|
|
28
|
+
|
|
29
|
+
Cycle 17 UX + cross-skill consistency pass. Two CLI UX gaps closed (empty-stdin nudge, did-you-mean for typos), one operator-misleading factual error fixed in 3 skills (CVE-2024-3094 claim drift), and one cosmetic naming inconsistency cleaned up.
|
|
30
|
+
|
|
31
|
+
### Bugs
|
|
32
|
+
|
|
33
|
+
**`--evidence -` empty-stdin nudge.** Cycle 15 + cycle 17 audits both flagged this: when an operator pipes nothing to `--evidence -`, the runner silently treated it as `{}` and proceeded with a "successful" run on no evidence. Pre-fix the only signal was a deterministic `evidence_hash: 572a0e...` that meant nothing to a first-time operator. Now stderr emits an informational note pointing at `exceptd brief <playbook>` for the expected evidence shape; the run still proceeds (legitimate posture-only-walk use case preserved) but the operator at least sees the empty-stdin signal.
|
|
34
|
+
|
|
35
|
+
**Did-you-mean for unknown verbs.** Pre-fix `exceptd discoer` exited 10 with the generic "Run `exceptd help`" hint. Now the dispatcher runs a Levenshtein-1 check against the union of `COMMANDS` + `PLAYBOOK_VERBS` + `ORCHESTRATOR_PASSTHROUGH` (includes transposition detection so `disocver` → `discover`). Suggestion surfaces in both the human hint string and a new `did_you_mean[]` JSON field for tooling consumers. Distance >1 still returns the generic hint with `did_you_mean: []` — no false-positive flood.
|
|
36
|
+
|
|
37
|
+
**CVE-2024-3094 (xz-utils) operator-misleading claims.** Cycle 17 audit A surfaced 3 skill bodies that contradicted each other and the catalog:
|
|
38
|
+
- `supply-chain-integrity` skill said "not in current `data/cve-catalog.json` — pre-scope incident" — false, the entry has been in the catalog with RWEP 70.
|
|
39
|
+
- `sector-federal-government` skill same wording — false.
|
|
40
|
+
- `cloud-iam-incident` skill table row quoted RWEP 95 / `ai_discovered: Partially` / `active_exploitation: Confirmed` — catalog says RWEP 70 / `ai_discovered: false` / `active_exploitation: suspected`.
|
|
41
|
+
All 3 corrected to match catalog ground truth (RWEP 70, KEV 2024-04-03, `active_exploitation: suspected`, `ai_discovered: false`). Operator running `exceptd dispatch` against an xz-affected estate now gets one consistent story across all 3 skills.
|
|
42
|
+
|
|
43
|
+
**Volt Typhoon hyphenation drift.** `ot-ics-security` and `sector-energy` used `Volt-Typhoon-aligned` / `Volt-Typhoon-style`; the rest of the catalog uses unhyphenated `Volt Typhoon`. Standardized to the unhyphenated form. New regression test refuses any future re-introduction of the hyphenated form in any skill body.
|
|
44
|
+
|
|
45
|
+
### Internal
|
|
46
|
+
|
|
47
|
+
- 3 cycle 17 audit agents dispatched (cross-skill consistency, data_deps integrity, error-path UX). All 3 returned successfully — first cycle since 14 without rate-limit issues.
|
|
48
|
+
- Cycle 17 B (data_deps integrity) surfaced 35 skills declaring incomplete `data_deps` arrays vs body content references. Investigation found `data_deps` is only consumed by `lib/lint-skills.js` for file-existence validation, not by the runner for preload gating (all catalogs load on-demand via `lib/cross-ref-api.js` mtime-keyed cache). Cosmetic correctness issue; deferred to v0.13 bulk-fix when the schema's purpose can be clarified.
|
|
49
|
+
- 8 new tests in `tests/cycle17-ux-fixes.test.js`. Test count 1136 → 1144. 14/14 predeploy gates green.
|
|
50
|
+
|
|
51
|
+
|
|
3
52
|
## 0.12.36 — 2026-05-16
|
|
4
53
|
|
|
5
54
|
Hard Rule forcing-function coverage pass. Three of the eight AGENTS.md Hard Rules had no binding test — they were policy-only and easy to violate in future PRs without CI catching it. v0.12.36 closes those gaps and adds a cross-format bundle consistency contract.
|
package/README.md
CHANGED
|
@@ -233,6 +233,13 @@ exceptd run [playbook] Phases 4-7. Auto-detects cwd context when
|
|
|
233
233
|
--force-overwrite Override session collision refusal.
|
|
234
234
|
--session-key <hex> HMAC sign evidence_package (≥ 16 hex chars).
|
|
235
235
|
--attestation-root <path> Override ~/.exceptd/attestations/ root.
|
|
236
|
+
Alternative: set EXCEPTD_HOME=<dir>
|
|
237
|
+
env var (attestations land in
|
|
238
|
+
$EXCEPTD_HOME/attestations/). Useful for
|
|
239
|
+
multi-tenant shared hosts where each
|
|
240
|
+
operator wants a private attestation
|
|
241
|
+
root, or for CI runners that should
|
|
242
|
+
scope attestations to the job workspace.
|
|
236
243
|
--explain Dry-run: preconditions + artifacts +
|
|
237
244
|
signal keys + submission skeleton.
|
|
238
245
|
--signal-list Lighter than --explain; enumerate signal
|
package/bin/exceptd.js
CHANGED
|
@@ -160,6 +160,49 @@ const ORCHESTRATOR_PASSTHROUGH = new Set([
|
|
|
160
160
|
"framework-gap", "framework-gap-analysis",
|
|
161
161
|
]);
|
|
162
162
|
|
|
163
|
+
// Cycle 17 P2 S13 (v0.12.37): Levenshtein-1 did-you-mean for unknown verbs.
|
|
164
|
+
// Catches common single-char / transposition typos against the COMMANDS
|
|
165
|
+
// table without false-positive flood: only suggests verbs within distance
|
|
166
|
+
// 1 (one insert / delete / substitute / transpose). For typed-distance 2+
|
|
167
|
+
// the operator probably mistyped intent and `exceptd help` is the right
|
|
168
|
+
// route. The function is exported via the closure into the dispatch
|
|
169
|
+
// site; no module.exports — bin/exceptd.js is the CLI entry, not a library.
|
|
170
|
+
function levenshtein1(a, b) {
|
|
171
|
+
if (a === b) return 0;
|
|
172
|
+
const la = a.length, lb = b.length;
|
|
173
|
+
if (Math.abs(la - lb) > 1) return 2; // short-circuit: can't be ≤ 1
|
|
174
|
+
// single-edit distance check, early-out at first 2nd mismatch
|
|
175
|
+
let i = 0, j = 0, edits = 0;
|
|
176
|
+
while (i < la && j < lb) {
|
|
177
|
+
if (a.charCodeAt(i) !== b.charCodeAt(j)) {
|
|
178
|
+
if (++edits > 1) return 2;
|
|
179
|
+
// adjacent-swap transposition (e.g. "discoer" ↔ "discover") counts
|
|
180
|
+
// as a single edit operationally, even though pure-Levenshtein
|
|
181
|
+
// distance would be 2. Detect + treat as 1.
|
|
182
|
+
if (la === lb && i + 1 < la && j + 1 < lb
|
|
183
|
+
&& a.charCodeAt(i) === b.charCodeAt(j + 1)
|
|
184
|
+
&& a.charCodeAt(i + 1) === b.charCodeAt(j)) {
|
|
185
|
+
i += 2; j += 2;
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
if (la > lb) i++;
|
|
189
|
+
else if (la < lb) j++;
|
|
190
|
+
else { i++; j++; }
|
|
191
|
+
} else { i++; j++; }
|
|
192
|
+
}
|
|
193
|
+
edits += (la - i) + (lb - j);
|
|
194
|
+
return edits <= 1 ? edits : 2;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
function suggestVerb(cmd, known) {
|
|
198
|
+
if (!cmd || typeof cmd !== 'string') return [];
|
|
199
|
+
const matches = [];
|
|
200
|
+
for (const v of known) {
|
|
201
|
+
if (levenshtein1(cmd, v) <= 1) matches.push(v);
|
|
202
|
+
}
|
|
203
|
+
return matches.sort();
|
|
204
|
+
}
|
|
205
|
+
|
|
163
206
|
// Seven-phase playbook verbs handled in-process (no subprocess dispatch).
|
|
164
207
|
// v0.11.0 introduces: brief (collapses plan/govern/direct/look), discover (scan + dispatch),
|
|
165
208
|
// doctor (currency + verify + validate-cves + validate-rfcs), ci (CI gate),
|
|
@@ -549,7 +592,30 @@ function main() {
|
|
|
549
592
|
// so the stderr JSON drains before teardown; promote the exit code to
|
|
550
593
|
// UNKNOWN_COMMAND (10) afterwards. Cycle 9 split this away from
|
|
551
594
|
// DETECTED_ESCALATE (2) — the two semantics had collided since v0.12.24.
|
|
552
|
-
|
|
595
|
+
//
|
|
596
|
+
// Cycle 17 P2 S13 (v0.12.37): add a did-you-mean suggestion when the
|
|
597
|
+
// unknown verb is within Levenshtein-1 of a real verb (catches the
|
|
598
|
+
// common single-char typos: `discoer` → `discover`, `attst` → `attest`,
|
|
599
|
+
// `valdiate-cves` → `validate-cves`).
|
|
600
|
+
// Union of every verb the dispatcher knows: standalone COMMANDS (scan,
|
|
601
|
+
// currency, build-indexes, etc.), in-process PLAYBOOK_VERBS (run, ci,
|
|
602
|
+
// discover, attest, ...), and ORCHESTRATOR_PASSTHROUGH. Strip the
|
|
603
|
+
// flag-aliases (--version/-v/--help/-h) which already get caught above
|
|
604
|
+
// the dispatch path. De-dup via Set — these collections deliberately
|
|
605
|
+
// overlap (scan/dispatch/etc appear in both COMMANDS and
|
|
606
|
+
// ORCHESTRATOR_PASSTHROUGH) and a naive union would surface duplicate
|
|
607
|
+
// suggestions like `did_you_mean: ["scan", "scan"]`. (codex P2,
|
|
608
|
+
// v0.12.37 follow-up.)
|
|
609
|
+
const known = [...new Set([
|
|
610
|
+
...Object.keys(COMMANDS),
|
|
611
|
+
...PLAYBOOK_VERBS,
|
|
612
|
+
...ORCHESTRATOR_PASSTHROUGH,
|
|
613
|
+
])].filter((v) => v && !v.startsWith('-'));
|
|
614
|
+
const dym = suggestVerb(cmd, known);
|
|
615
|
+
const hint = dym.length > 0
|
|
616
|
+
? `Did you mean \`${dym.join("` or `")}\`? Run \`exceptd help\` for the full verb list.`
|
|
617
|
+
: "Run `exceptd help` for the list of verbs.";
|
|
618
|
+
emitError(`unknown command "${cmd}"`, { hint, verb: cmd, did_you_mean: dym });
|
|
553
619
|
process.exitCode = EXIT_CODES.UNKNOWN_COMMAND;
|
|
554
620
|
return;
|
|
555
621
|
}
|
|
@@ -757,7 +823,22 @@ function readEvidence(evidenceFlag) {
|
|
|
757
823
|
chunks.push(Buffer.from(buf.subarray(0, n)));
|
|
758
824
|
}
|
|
759
825
|
const text = Buffer.concat(chunks).toString("utf8");
|
|
760
|
-
if (!text.trim())
|
|
826
|
+
if (!text.trim()) {
|
|
827
|
+
// Cycle 17 P1 S4 (v0.12.37): pre-fix empty stdin silently became {}
|
|
828
|
+
// — operator got a "successful" run on no evidence with no warning,
|
|
829
|
+
// and the evidence_hash for `{}` is deterministic so subsequent
|
|
830
|
+
// runs didn't even reveal the mistake. Emit a stderr nudge so the
|
|
831
|
+
// operator at least sees that stdin was empty when they almost
|
|
832
|
+
// certainly meant to pipe something. Don't change exit semantics;
|
|
833
|
+
// the empty-payload path is still legitimately useful for posture-
|
|
834
|
+
// only playbooks (govern + direct + look-only walks).
|
|
835
|
+
process.stderr.write(
|
|
836
|
+
`[exceptd] note: --evidence - read 0 bytes from stdin. Treating as empty evidence {}. ` +
|
|
837
|
+
`If you meant to pipe a submission, run \`exceptd brief <playbook>\` to see the expected shape; ` +
|
|
838
|
+
`if you wanted a posture-only walk, this message is informational and the run will proceed.\n`,
|
|
839
|
+
);
|
|
840
|
+
return {};
|
|
841
|
+
}
|
|
761
842
|
return JSON.parse(text);
|
|
762
843
|
}
|
|
763
844
|
let stat;
|
|
@@ -3574,7 +3655,18 @@ function persistAttestation(args) {
|
|
|
3574
3655
|
// between existsSync and writeFileSync. Two concurrent run-with-same-
|
|
3575
3656
|
// session-id invocations now produce one winner + one EEXIST loser,
|
|
3576
3657
|
// not silent last-write-wins.
|
|
3577
|
-
|
|
3658
|
+
//
|
|
3659
|
+
// v0.12.38 (cycle 18 P1 F2): mode 0o600 + Windows ACL hardening.
|
|
3660
|
+
// Pre-fix attestations were written world-readable (umask-derived
|
|
3661
|
+
// 0o644). On multi-tenant shared hosts a different user could read
|
|
3662
|
+
// the operator's evidence submission, jurisdiction obligations,
|
|
3663
|
+
// and consent records. Mirrors the existing private-key handling
|
|
3664
|
+
// in lib/sign.js (mode 0o600 + restrictWindowsAcl).
|
|
3665
|
+
fs.writeFileSync(filePath, JSON.stringify(attestation, null, 2), { flag, mode: 0o600 });
|
|
3666
|
+
try {
|
|
3667
|
+
const { restrictWindowsAcl } = require(path.join(PKG_ROOT, "lib", "sign.js"));
|
|
3668
|
+
restrictWindowsAcl(filePath);
|
|
3669
|
+
} catch { /* sign.js not loadable in some test paths — best-effort */ }
|
|
3578
3670
|
maybeSignAttestation(filePath);
|
|
3579
3671
|
};
|
|
3580
3672
|
|
|
@@ -4267,7 +4359,13 @@ function cmdReattest(runner, args, runOpts, pretty) {
|
|
|
4267
4359
|
const suffix = i === 0 ? "" : "-" + crypto.randomBytes(3).toString("hex");
|
|
4268
4360
|
const candidate = path.join(dir, replayBaseName + suffix + ".json");
|
|
4269
4361
|
try {
|
|
4270
|
-
|
|
4362
|
+
// v0.12.38 cycle 18 P1 F2: mode 0o600 + Windows ACL hardening
|
|
4363
|
+
// (matches the primary attestation write site).
|
|
4364
|
+
fs.writeFileSync(candidate, JSON.stringify(replayBody, null, 2), { flag: "wx", mode: 0o600 });
|
|
4365
|
+
try {
|
|
4366
|
+
const { restrictWindowsAcl } = require(path.join(PKG_ROOT, "lib", "sign.js"));
|
|
4367
|
+
restrictWindowsAcl(candidate);
|
|
4368
|
+
} catch { /* best-effort */ }
|
|
4271
4369
|
replayPath = candidate;
|
|
4272
4370
|
written = true;
|
|
4273
4371
|
break;
|
package/data/_indexes/_meta.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": "1.1.0",
|
|
3
|
-
"generated_at": "2026-05-
|
|
3
|
+
"generated_at": "2026-05-16T14:53:58.590Z",
|
|
4
4
|
"generator": "scripts/build-indexes.js",
|
|
5
5
|
"source_count": 54,
|
|
6
6
|
"source_hashes": {
|
|
7
|
-
"manifest.json": "
|
|
7
|
+
"manifest.json": "46518d99e0b18b4522982bcd2867c43dacba010390a2cc5e75d4c17c5d0f5b4c",
|
|
8
8
|
"data/atlas-ttps.json": "259e76e4252c7a56c17bbe96982a5e37ac89131c2d37a547fe38d64dcacfd763",
|
|
9
9
|
"data/attack-techniques.json": "51f60819aef36e960fd768e44dcc725e137781534fbbb028e5ef6baa21defa1d",
|
|
10
|
-
"data/cve-catalog.json": "
|
|
10
|
+
"data/cve-catalog.json": "5bfd08a3fc62850e0cdaf454a2dce3e6719acb8917b7c7249c4c02bf945b62f5",
|
|
11
11
|
"data/cwe-catalog.json": "6e7349a0fac39bdf9c4cb4598e101e51400f67d64c5d653bbca462f28bc1a0cb",
|
|
12
12
|
"data/d3fend-catalog.json": "a1fc2827ceb344669e148d55197dbf1b0e5b20bcc618e90517639c17d67ee82d",
|
|
13
13
|
"data/dlp-controls.json": "d2406c482dddd30e49203879999dc4b3a7fd4d0494d6a61d86b91ee76415df19",
|
|
@@ -35,18 +35,18 @@
|
|
|
35
35
|
"skills/attack-surface-pentest/skill.md": "9cb02d9d428ef674ba8af8c935f86ddca197f0ba1f7d216d76ce1b268ae4bb6a",
|
|
36
36
|
"skills/fuzz-testing-strategy/skill.md": "eaab866236c8cb8a6c8ddc5e65d786ee6d598682de6014ed4e83c6cd163a2128",
|
|
37
37
|
"skills/dlp-gap-analysis/skill.md": "ee9fd4928d96b2e9957d8db9dec90c844443fbcf2a292e69040bfa47c78a4f4b",
|
|
38
|
-
"skills/supply-chain-integrity/skill.md": "
|
|
38
|
+
"skills/supply-chain-integrity/skill.md": "497f1ef20f3e506ce1bec5ec65730ffc58300054ff3e8e563e0862838164491a",
|
|
39
39
|
"skills/defensive-countermeasure-mapping/skill.md": "e62c71ba3be2b4d0f7dfa529fec007cba6bee3013f76b93756e3e6310f2d22ab",
|
|
40
40
|
"skills/identity-assurance/skill.md": "6fd734d5cf8eed031537c9ccb1ad11c09ec4e88d31c45d86046a2154a6770990",
|
|
41
|
-
"skills/ot-ics-security/skill.md": "
|
|
41
|
+
"skills/ot-ics-security/skill.md": "258003e15bd4e939a1ec1f71c22ffa4dccd6d3194411281f4685abfe840d7cd3",
|
|
42
42
|
"skills/coordinated-vuln-disclosure/skill.md": "0e875953bb8a38a89c8ec5d2a9ef967b12e9a9f166dc9356723f10304fd0535e",
|
|
43
43
|
"skills/threat-modeling-methodology/skill.md": "bb34933a1eee2cd1da98da5a5dada2c7fc7ebb0bddf5afb39e1f6ee26064d151",
|
|
44
44
|
"skills/webapp-security/skill.md": "6fdae41856963df0f8655fb52df7cd26b6b47031f55dfe897003ed9647a73ab5",
|
|
45
45
|
"skills/ai-risk-management/skill.md": "10d31ca594449e1fef4c34ea45448ab30a6ffdc2fe1faf4ccaf0a1dd05d67774",
|
|
46
46
|
"skills/sector-healthcare/skill.md": "217066e5961fbc3fcd1b5e3df42f299d7aeaf3b5f25e913152836b77f211f96d",
|
|
47
47
|
"skills/sector-financial/skill.md": "77f6355eb7672f2157bf3d18bfe1d6042efe302468ebddd48ffc385655bf4d10",
|
|
48
|
-
"skills/sector-federal-government/skill.md": "
|
|
49
|
-
"skills/sector-energy/skill.md": "
|
|
48
|
+
"skills/sector-federal-government/skill.md": "981bd7aea1b3ba7875d1222f077126d4eb9462bed46e3e6f5cfed5f94378b152",
|
|
49
|
+
"skills/sector-energy/skill.md": "44b635b9c52bb10ee2f8d786400926e018c7581387324f59ee3a815de4929c9c",
|
|
50
50
|
"skills/sector-telecom/skill.md": "3489410b0905cbf6b392ea7f7cde35ccd4b03de0d22d2d1b0c671e46d70962c9",
|
|
51
51
|
"skills/api-security/skill.md": "75dcb1b9395de2be4ca60e53f900692721b7ef66ded3e510a20d17f35daf982d",
|
|
52
52
|
"skills/cloud-security/skill.md": "56f0d5d6cf182d347e84baa95a04c39be51e82da3360dac48fcf5d8c4e56a9c3",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"skills/ransomware-response/skill.md": "15de039c5679215b7ceb9a55494f614b06fe618aa0f69ce8aff004dc9a841fa4",
|
|
57
57
|
"skills/email-security-anti-phishing/skill.md": "b5a7693b3ddbd6cd83303d092bc5e324db431245d25c4945d9f65fcffa1995e7",
|
|
58
58
|
"skills/age-gates-child-safety/skill.md": "66c7f6537077e4e949214ebf3864cb75de0f50f80fa25d25365c6d7fe485dc7a",
|
|
59
|
-
"skills/cloud-iam-incident/skill.md": "
|
|
59
|
+
"skills/cloud-iam-incident/skill.md": "f124d1170cffb490ddd093ad6fc9876591515643fb2f51379023a08548c7290d",
|
|
60
60
|
"skills/idp-incident-response/skill.md": "3d75d7a0fc5b9a3c584ac5c6510f8b6bd63b7b780488541eb193250ae795b4e2"
|
|
61
61
|
},
|
|
62
62
|
"skill_count": 42,
|
|
@@ -78,7 +78,7 @@
|
|
|
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": 397769,
|
|
82
82
|
"recipes": 8,
|
|
83
83
|
"jurisdiction_clocks": 29,
|
|
84
84
|
"did_ladders": 8,
|
|
@@ -2039,7 +2039,7 @@
|
|
|
2039
2039
|
},
|
|
2040
2040
|
"supply-chain-integrity": {
|
|
2041
2041
|
"path": "skills/supply-chain-integrity/skill.md",
|
|
2042
|
-
"total_bytes":
|
|
2042
|
+
"total_bytes": 40250,
|
|
2043
2043
|
"total_lines": 325,
|
|
2044
2044
|
"frontmatter": {
|
|
2045
2045
|
"line_start": 1,
|
|
@@ -2080,16 +2080,16 @@
|
|
|
2080
2080
|
"normalized_name": "exploit-availability-matrix",
|
|
2081
2081
|
"line": 161,
|
|
2082
2082
|
"byte_start": 21416,
|
|
2083
|
-
"byte_end":
|
|
2084
|
-
"bytes":
|
|
2083
|
+
"byte_end": 25986,
|
|
2084
|
+
"bytes": 4570,
|
|
2085
2085
|
"h3_count": 0
|
|
2086
2086
|
},
|
|
2087
2087
|
{
|
|
2088
2088
|
"name": "Analysis Procedure",
|
|
2089
2089
|
"normalized_name": "analysis-procedure",
|
|
2090
2090
|
"line": 178,
|
|
2091
|
-
"byte_start":
|
|
2092
|
-
"byte_end":
|
|
2091
|
+
"byte_start": 25986,
|
|
2092
|
+
"byte_end": 33443,
|
|
2093
2093
|
"bytes": 7457,
|
|
2094
2094
|
"h3_count": 4
|
|
2095
2095
|
},
|
|
@@ -2097,8 +2097,8 @@
|
|
|
2097
2097
|
"name": "Output Format",
|
|
2098
2098
|
"normalized_name": "output-format",
|
|
2099
2099
|
"line": 252,
|
|
2100
|
-
"byte_start":
|
|
2101
|
-
"byte_end":
|
|
2100
|
+
"byte_start": 33443,
|
|
2101
|
+
"byte_end": 35545,
|
|
2102
2102
|
"bytes": 2102,
|
|
2103
2103
|
"h3_count": 9
|
|
2104
2104
|
},
|
|
@@ -2106,8 +2106,8 @@
|
|
|
2106
2106
|
"name": "Compliance Theater Check",
|
|
2107
2107
|
"normalized_name": "compliance-theater-check",
|
|
2108
2108
|
"line": 292,
|
|
2109
|
-
"byte_start":
|
|
2110
|
-
"byte_end":
|
|
2109
|
+
"byte_start": 35545,
|
|
2110
|
+
"byte_end": 37833,
|
|
2111
2111
|
"bytes": 2288,
|
|
2112
2112
|
"h3_count": 0
|
|
2113
2113
|
},
|
|
@@ -2115,8 +2115,8 @@
|
|
|
2115
2115
|
"name": "Defensive Countermeasure Mapping",
|
|
2116
2116
|
"normalized_name": "defensive-countermeasure-mapping",
|
|
2117
2117
|
"line": 308,
|
|
2118
|
-
"byte_start":
|
|
2119
|
-
"byte_end":
|
|
2118
|
+
"byte_start": 37833,
|
|
2119
|
+
"byte_end": 40250,
|
|
2120
2120
|
"bytes": 2417,
|
|
2121
2121
|
"h3_count": 0
|
|
2122
2122
|
}
|
|
@@ -2979,7 +2979,7 @@
|
|
|
2979
2979
|
},
|
|
2980
2980
|
"sector-federal-government": {
|
|
2981
2981
|
"path": "skills/sector-federal-government/skill.md",
|
|
2982
|
-
"total_bytes":
|
|
2982
|
+
"total_bytes": 44157,
|
|
2983
2983
|
"total_lines": 306,
|
|
2984
2984
|
"frontmatter": {
|
|
2985
2985
|
"line_start": 1,
|
|
@@ -3020,16 +3020,16 @@
|
|
|
3020
3020
|
"normalized_name": "exploit-availability-matrix",
|
|
3021
3021
|
"line": 137,
|
|
3022
3022
|
"byte_start": 20115,
|
|
3023
|
-
"byte_end":
|
|
3024
|
-
"bytes":
|
|
3023
|
+
"byte_end": 26300,
|
|
3024
|
+
"bytes": 6185,
|
|
3025
3025
|
"h3_count": 0
|
|
3026
3026
|
},
|
|
3027
3027
|
{
|
|
3028
3028
|
"name": "Analysis Procedure",
|
|
3029
3029
|
"normalized_name": "analysis-procedure",
|
|
3030
3030
|
"line": 156,
|
|
3031
|
-
"byte_start":
|
|
3032
|
-
"byte_end":
|
|
3031
|
+
"byte_start": 26300,
|
|
3032
|
+
"byte_end": 34340,
|
|
3033
3033
|
"bytes": 8040,
|
|
3034
3034
|
"h3_count": 4
|
|
3035
3035
|
},
|
|
@@ -3037,8 +3037,8 @@
|
|
|
3037
3037
|
"name": "Output Format",
|
|
3038
3038
|
"normalized_name": "output-format",
|
|
3039
3039
|
"line": 213,
|
|
3040
|
-
"byte_start":
|
|
3041
|
-
"byte_end":
|
|
3040
|
+
"byte_start": 34340,
|
|
3041
|
+
"byte_end": 36828,
|
|
3042
3042
|
"bytes": 2488,
|
|
3043
3043
|
"h3_count": 10
|
|
3044
3044
|
},
|
|
@@ -3046,8 +3046,8 @@
|
|
|
3046
3046
|
"name": "Compliance Theater Check",
|
|
3047
3047
|
"normalized_name": "compliance-theater-check",
|
|
3048
3048
|
"line": 267,
|
|
3049
|
-
"byte_start":
|
|
3050
|
-
"byte_end":
|
|
3049
|
+
"byte_start": 36828,
|
|
3050
|
+
"byte_end": 39696,
|
|
3051
3051
|
"bytes": 2868,
|
|
3052
3052
|
"h3_count": 0
|
|
3053
3053
|
},
|
|
@@ -3055,8 +3055,8 @@
|
|
|
3055
3055
|
"name": "Defensive Countermeasure Mapping",
|
|
3056
3056
|
"normalized_name": "defensive-countermeasure-mapping",
|
|
3057
3057
|
"line": 281,
|
|
3058
|
-
"byte_start":
|
|
3059
|
-
"byte_end":
|
|
3058
|
+
"byte_start": 39696,
|
|
3059
|
+
"byte_end": 42696,
|
|
3060
3060
|
"bytes": 3000,
|
|
3061
3061
|
"h3_count": 0
|
|
3062
3062
|
},
|
|
@@ -3064,8 +3064,8 @@
|
|
|
3064
3064
|
"name": "Hand-Off",
|
|
3065
3065
|
"normalized_name": "hand-off",
|
|
3066
3066
|
"line": 295,
|
|
3067
|
-
"byte_start":
|
|
3068
|
-
"byte_end":
|
|
3067
|
+
"byte_start": 42696,
|
|
3068
|
+
"byte_end": 44157,
|
|
3069
3069
|
"bytes": 1461,
|
|
3070
3070
|
"h3_count": 0
|
|
3071
3071
|
}
|
|
@@ -4013,7 +4013,7 @@
|
|
|
4013
4013
|
},
|
|
4014
4014
|
"cloud-iam-incident": {
|
|
4015
4015
|
"path": "skills/cloud-iam-incident/skill.md",
|
|
4016
|
-
"total_bytes":
|
|
4016
|
+
"total_bytes": 44562,
|
|
4017
4017
|
"total_lines": 420,
|
|
4018
4018
|
"frontmatter": {
|
|
4019
4019
|
"line_start": 1,
|
|
@@ -4054,16 +4054,16 @@
|
|
|
4054
4054
|
"normalized_name": "exploit-availability-matrix",
|
|
4055
4055
|
"line": 167,
|
|
4056
4056
|
"byte_start": 19519,
|
|
4057
|
-
"byte_end":
|
|
4058
|
-
"bytes":
|
|
4057
|
+
"byte_end": 22891,
|
|
4058
|
+
"bytes": 3372,
|
|
4059
4059
|
"h3_count": 0
|
|
4060
4060
|
},
|
|
4061
4061
|
{
|
|
4062
4062
|
"name": "Analysis Procedure",
|
|
4063
4063
|
"normalized_name": "analysis-procedure",
|
|
4064
4064
|
"line": 189,
|
|
4065
|
-
"byte_start":
|
|
4066
|
-
"byte_end":
|
|
4065
|
+
"byte_start": 22891,
|
|
4066
|
+
"byte_end": 30516,
|
|
4067
4067
|
"bytes": 7625,
|
|
4068
4068
|
"h3_count": 12
|
|
4069
4069
|
},
|
|
@@ -4071,8 +4071,8 @@
|
|
|
4071
4071
|
"name": "Output Format",
|
|
4072
4072
|
"normalized_name": "output-format",
|
|
4073
4073
|
"line": 279,
|
|
4074
|
-
"byte_start":
|
|
4075
|
-
"byte_end":
|
|
4074
|
+
"byte_start": 30516,
|
|
4075
|
+
"byte_end": 32714,
|
|
4076
4076
|
"bytes": 2198,
|
|
4077
4077
|
"h3_count": 15
|
|
4078
4078
|
},
|
|
@@ -4080,8 +4080,8 @@
|
|
|
4080
4080
|
"name": "Compliance Theater Check",
|
|
4081
4081
|
"normalized_name": "compliance-theater-check",
|
|
4082
4082
|
"line": 342,
|
|
4083
|
-
"byte_start":
|
|
4084
|
-
"byte_end":
|
|
4083
|
+
"byte_start": 32714,
|
|
4084
|
+
"byte_end": 37313,
|
|
4085
4085
|
"bytes": 4599,
|
|
4086
4086
|
"h3_count": 0
|
|
4087
4087
|
},
|
|
@@ -4089,8 +4089,8 @@
|
|
|
4089
4089
|
"name": "Defensive Countermeasure Mapping",
|
|
4090
4090
|
"normalized_name": "defensive-countermeasure-mapping",
|
|
4091
4091
|
"line": 378,
|
|
4092
|
-
"byte_start":
|
|
4093
|
-
"byte_end":
|
|
4092
|
+
"byte_start": 37313,
|
|
4093
|
+
"byte_end": 41389,
|
|
4094
4094
|
"bytes": 4076,
|
|
4095
4095
|
"h3_count": 0
|
|
4096
4096
|
},
|
|
@@ -4098,8 +4098,8 @@
|
|
|
4098
4098
|
"name": "Hand-Off / Related Skills",
|
|
4099
4099
|
"normalized_name": "hand-off",
|
|
4100
4100
|
"line": 400,
|
|
4101
|
-
"byte_start":
|
|
4102
|
-
"byte_end":
|
|
4101
|
+
"byte_start": 41389,
|
|
4102
|
+
"byte_end": 44562,
|
|
4103
4103
|
"bytes": 3173,
|
|
4104
4104
|
"h3_count": 0
|
|
4105
4105
|
}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"schema_version": "1.0.0",
|
|
4
4
|
"tokenizer_note": "Character-density approximation: 1 token ≈ 4 chars. This is the canonical rule-of-thumb for OpenAI tokenizers on English+technical text. Claude's tokenizer is typically more efficient on prose; treat this as an upper-bound budget for both. Consumers with stricter precision needs should re-tokenize with their own tokenizer.",
|
|
5
5
|
"approx_chars_per_token": 4,
|
|
6
|
-
"total_chars":
|
|
7
|
-
"total_approx_tokens":
|
|
6
|
+
"total_chars": 1591052,
|
|
7
|
+
"total_approx_tokens": 397769,
|
|
8
8
|
"skill_count": 42
|
|
9
9
|
},
|
|
10
10
|
"skills": {
|
|
@@ -1185,10 +1185,10 @@
|
|
|
1185
1185
|
},
|
|
1186
1186
|
"supply-chain-integrity": {
|
|
1187
1187
|
"path": "skills/supply-chain-integrity/skill.md",
|
|
1188
|
-
"bytes":
|
|
1189
|
-
"chars":
|
|
1188
|
+
"bytes": 40250,
|
|
1189
|
+
"chars": 40112,
|
|
1190
1190
|
"lines": 325,
|
|
1191
|
-
"approx_tokens":
|
|
1191
|
+
"approx_tokens": 10028,
|
|
1192
1192
|
"approx_chars_per_token": 4,
|
|
1193
1193
|
"sections": {
|
|
1194
1194
|
"threat-context": {
|
|
@@ -1207,9 +1207,9 @@
|
|
|
1207
1207
|
"approx_tokens": 779
|
|
1208
1208
|
},
|
|
1209
1209
|
"exploit-availability-matrix": {
|
|
1210
|
-
"bytes":
|
|
1211
|
-
"chars":
|
|
1212
|
-
"approx_tokens":
|
|
1210
|
+
"bytes": 4570,
|
|
1211
|
+
"chars": 4510,
|
|
1212
|
+
"approx_tokens": 1128
|
|
1213
1213
|
},
|
|
1214
1214
|
"analysis-procedure": {
|
|
1215
1215
|
"bytes": 7457,
|
|
@@ -1735,10 +1735,10 @@
|
|
|
1735
1735
|
},
|
|
1736
1736
|
"sector-federal-government": {
|
|
1737
1737
|
"path": "skills/sector-federal-government/skill.md",
|
|
1738
|
-
"bytes":
|
|
1739
|
-
"chars":
|
|
1738
|
+
"bytes": 44157,
|
|
1739
|
+
"chars": 43984,
|
|
1740
1740
|
"lines": 306,
|
|
1741
|
-
"approx_tokens":
|
|
1741
|
+
"approx_tokens": 10996,
|
|
1742
1742
|
"approx_chars_per_token": 4,
|
|
1743
1743
|
"sections": {
|
|
1744
1744
|
"threat-context": {
|
|
@@ -1757,9 +1757,9 @@
|
|
|
1757
1757
|
"approx_tokens": 603
|
|
1758
1758
|
},
|
|
1759
1759
|
"exploit-availability-matrix": {
|
|
1760
|
-
"bytes":
|
|
1761
|
-
"chars":
|
|
1762
|
-
"approx_tokens":
|
|
1760
|
+
"bytes": 6185,
|
|
1761
|
+
"chars": 6103,
|
|
1762
|
+
"approx_tokens": 1526
|
|
1763
1763
|
},
|
|
1764
1764
|
"analysis-procedure": {
|
|
1765
1765
|
"bytes": 8040,
|
|
@@ -2340,10 +2340,10 @@
|
|
|
2340
2340
|
},
|
|
2341
2341
|
"cloud-iam-incident": {
|
|
2342
2342
|
"path": "skills/cloud-iam-incident/skill.md",
|
|
2343
|
-
"bytes":
|
|
2344
|
-
"chars":
|
|
2343
|
+
"bytes": 44562,
|
|
2344
|
+
"chars": 44404,
|
|
2345
2345
|
"lines": 420,
|
|
2346
|
-
"approx_tokens":
|
|
2346
|
+
"approx_tokens": 11101,
|
|
2347
2347
|
"approx_chars_per_token": 4,
|
|
2348
2348
|
"sections": {
|
|
2349
2349
|
"threat-context": {
|
|
@@ -2362,9 +2362,9 @@
|
|
|
2362
2362
|
"approx_tokens": 1129
|
|
2363
2363
|
},
|
|
2364
2364
|
"exploit-availability-matrix": {
|
|
2365
|
-
"bytes":
|
|
2366
|
-
"chars":
|
|
2367
|
-
"approx_tokens":
|
|
2365
|
+
"bytes": 3372,
|
|
2366
|
+
"chars": 3368,
|
|
2367
|
+
"approx_tokens": 842
|
|
2368
2368
|
},
|
|
2369
2369
|
"analysis-procedure": {
|
|
2370
2370
|
"bytes": 7625,
|
package/data/cve-catalog.json
CHANGED
|
@@ -3568,6 +3568,9 @@
|
|
|
3568
3568
|
"last_updated": "2026-05-15",
|
|
3569
3569
|
"discovery_attribution_note": "Concurrent ecosystem-detection by Socket (https://socket.dev/blog/node-ipc-package-compromised), StepSecurity (https://www.stepsecurity.io/blog/node-ipc-npm-supply-chain-attack), Semgrep (https://semgrep.dev/blog/2026/not-your-ipc-but-node-ipc-npm-hit-again-with-supply-chain-attack-but-this-time-its-not-a-worm/), and Datadog Security Labs (https://securitylabs.datadoghq.com/articles/node-ipc-npm-malware-analysis/) within hours of the 2026-05-14 publish window. Consolidated coverage by The Hacker News (https://thehackernews.com/2026/05/stealer-backdoor-found-in-3-node-ipc.html). No single human researcher credited; no AI-tool credit on the defender side. Discovery class: ecosystem-detection (telemetry-driven, no AI tool). Source-data ambiguity noted: monthly-download figure reported as 3.35M (npm registry direct) but Socket cited 822K weekly and The Hacker News cited 10M weekly — npm-registry-direct figure carried in the affected description; alternative figures retained in this note so future audits can reconcile against npm's API once the live counter rolls forward past the yank.",
|
|
3570
3570
|
"_editorial_promoted": "2026-05-15",
|
|
3571
|
-
"_editorial_note": "Cycle 13 intake (v0.12.33): cycle 13 agent C surfaced node-ipc 2026-05-14 publish event in the 24h-window check. Novel attack precondition (expired-domain re-registration + npm password-reset abuse) makes this a distinct supply-chain class from the Shai-Hulud (token-compromise) and elementary-data (typosquat + orphan-commit) precedents; warrants its own NEW-CTRL-047 in zeroday-lessons.json. RWEP factors satisfy Shape B invariant (0 + 20 + 0 + 20 + 28 - 15 - 10 + 0 = 43); discovery_attribution_note cites multiple firms with URLs."
|
|
3571
|
+
"_editorial_note": "Cycle 13 intake (v0.12.33): cycle 13 agent C surfaced node-ipc 2026-05-14 publish event in the 24h-window check. Novel attack precondition (expired-domain re-registration + npm password-reset abuse) makes this a distinct supply-chain class from the Shai-Hulud (token-compromise) and elementary-data (typosquat + orphan-commit) precedents; warrants its own NEW-CTRL-047 in zeroday-lessons.json. RWEP factors satisfy Shape B invariant (0 + 20 + 0 + 20 + 28 - 15 - 10 + 0 = 43); discovery_attribution_note cites multiple firms with URLs.",
|
|
3572
|
+
"remediation_status": "removed_from_registry",
|
|
3573
|
+
"remediation_note": "npm removed all 3 malicious versions (9.1.6, 9.2.3, 12.0.1) within ~2 hours of publication on 2026-05-14. Publisher account atiertant was deactivated. The expired-domain TTP (atlantis-software.net re-registered via Namecheap on 2026-05-07 after Jan 2025 expiry) remains the novel attack class to defend against — see zeroday-lessons NEW-CTRL-047 (PACKAGE-MAINTAINER-DOMAIN-EXPIRY-MONITORING).",
|
|
3574
|
+
"remediation_status_verified_at": "2026-05-16"
|
|
3572
3575
|
}
|
|
3573
3576
|
}
|
package/manifest-snapshot.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_comment": "Auto-generated by scripts/refresh-manifest-snapshot.js — do not hand-edit. Public skill surface used by check-manifest-snapshot.js to detect breaking removals.",
|
|
3
|
-
"_generated_at": "2026-05-
|
|
3
|
+
"_generated_at": "2026-05-16T14:53:21.883Z",
|
|
4
4
|
"atlas_version": "5.4.0",
|
|
5
5
|
"skill_count": 42,
|
|
6
6
|
"skills": [
|
package/manifest-snapshot.sha256
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
774078803a8ee8679906902c59ed3d3cf10651a6e239504663c8b238a900bde4 manifest-snapshot.json
|
package/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "exceptd-security",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.38",
|
|
4
4
|
"description": "AI security skills grounded in mid-2026 threat reality, not stale framework documentation",
|
|
5
5
|
"homepage": "https://exceptd.com",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
],
|
|
54
54
|
"last_threat_review": "2026-05-01",
|
|
55
55
|
"signature": "N6H4u/u1fCFE6f/3QVkAr2cumZvLNE+xYBC91CCxKoeaSKm5zqbwzb2mvFDk9XKUegUy5W6npLFGi75yxNMIAg==",
|
|
56
|
-
"signed_at": "2026-05-
|
|
56
|
+
"signed_at": "2026-05-16T14:53:21.507Z",
|
|
57
57
|
"cwe_refs": [
|
|
58
58
|
"CWE-125",
|
|
59
59
|
"CWE-362",
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
],
|
|
118
118
|
"last_threat_review": "2026-05-01",
|
|
119
119
|
"signature": "CmPu9xiYnUQyug3+aQ8jwuros3EGIIxL4/vaSgvaBVgI0Zd96ehlSBHw9ISd3eXzEImvGTdFEYZEpSHoH76fBw==",
|
|
120
|
-
"signed_at": "2026-05-
|
|
120
|
+
"signed_at": "2026-05-16T14:53:21.509Z",
|
|
121
121
|
"cwe_refs": [
|
|
122
122
|
"CWE-1039",
|
|
123
123
|
"CWE-1426",
|
|
@@ -180,7 +180,7 @@
|
|
|
180
180
|
],
|
|
181
181
|
"last_threat_review": "2026-05-01",
|
|
182
182
|
"signature": "5jdS7h9+CgfkXIf0OOLEIBxoBFv9TSQh0HPEs2Ra6hmpFbyBPV6zAs7yFi+66EAXoHicasGL04QA10L0MGZyAg==",
|
|
183
|
-
"signed_at": "2026-05-
|
|
183
|
+
"signed_at": "2026-05-16T14:53:21.510Z",
|
|
184
184
|
"cwe_refs": [
|
|
185
185
|
"CWE-22",
|
|
186
186
|
"CWE-345",
|
|
@@ -226,7 +226,7 @@
|
|
|
226
226
|
"framework_gaps": [],
|
|
227
227
|
"last_threat_review": "2026-05-01",
|
|
228
228
|
"signature": "ZfW88vN0se3O9AEpjsfImRFCEC9ayOsNYthRSrj+eIOO8XVu4C0Jk9INSBwX+8ws6ZVsEMvQ3htyouTGIapcCQ==",
|
|
229
|
-
"signed_at": "2026-05-
|
|
229
|
+
"signed_at": "2026-05-16T14:53:21.510Z"
|
|
230
230
|
},
|
|
231
231
|
{
|
|
232
232
|
"name": "compliance-theater",
|
|
@@ -257,7 +257,7 @@
|
|
|
257
257
|
],
|
|
258
258
|
"last_threat_review": "2026-05-01",
|
|
259
259
|
"signature": "OTu6DScKDWxaR1+TZ3S6FGBmf7c6WKkXOdP2MdMwMNjY5OJ7RSSXrOWg4XnT32VRtGncOetlHG47VZ0KgwWNCA==",
|
|
260
|
-
"signed_at": "2026-05-
|
|
260
|
+
"signed_at": "2026-05-16T14:53:21.510Z"
|
|
261
261
|
},
|
|
262
262
|
{
|
|
263
263
|
"name": "exploit-scoring",
|
|
@@ -286,7 +286,7 @@
|
|
|
286
286
|
],
|
|
287
287
|
"last_threat_review": "2026-05-01",
|
|
288
288
|
"signature": "T34BtDdNUzPblA+dG4LSAqNycM1kEFQpQAX6bvXWX3B02LB7VNBfQnD/52sDteAi+ishRf5IihuEYez8wRHGBA==",
|
|
289
|
-
"signed_at": "2026-05-
|
|
289
|
+
"signed_at": "2026-05-16T14:53:21.511Z"
|
|
290
290
|
},
|
|
291
291
|
{
|
|
292
292
|
"name": "rag-pipeline-security",
|
|
@@ -323,7 +323,7 @@
|
|
|
323
323
|
],
|
|
324
324
|
"last_threat_review": "2026-05-01",
|
|
325
325
|
"signature": "kApombCESpQjg17tecmcOIPKxzKuYrkQM78S8eX8jA5ovjGgzl3kIJjcjKib15Vgy/MOpsh0GaWYpCEhCLRyDw==",
|
|
326
|
-
"signed_at": "2026-05-
|
|
326
|
+
"signed_at": "2026-05-16T14:53:21.511Z",
|
|
327
327
|
"cwe_refs": [
|
|
328
328
|
"CWE-1395",
|
|
329
329
|
"CWE-1426"
|
|
@@ -380,7 +380,7 @@
|
|
|
380
380
|
],
|
|
381
381
|
"last_threat_review": "2026-05-01",
|
|
382
382
|
"signature": "DRqLIBG1cJKMeTc5gpzWdb0ThvBTLrWl9CaFx4mNesIImUEWSEycrhILfPQ4fbA1jyhD1dsBJzttTZFKbezFDA==",
|
|
383
|
-
"signed_at": "2026-05-
|
|
383
|
+
"signed_at": "2026-05-16T14:53:21.512Z",
|
|
384
384
|
"d3fend_refs": [
|
|
385
385
|
"D3-CA",
|
|
386
386
|
"D3-CSPP",
|
|
@@ -415,7 +415,7 @@
|
|
|
415
415
|
"framework_gaps": [],
|
|
416
416
|
"last_threat_review": "2026-05-01",
|
|
417
417
|
"signature": "87pHjZe0xEuYR18owLqCHDtHNQ7bf8YzF6RaJlILN0n7ohgAdkmhWVODpTMA+/Ku0RLhMwz8dSkx48ue3VfLAw==",
|
|
418
|
-
"signed_at": "2026-05-
|
|
418
|
+
"signed_at": "2026-05-16T14:53:21.512Z",
|
|
419
419
|
"cwe_refs": [
|
|
420
420
|
"CWE-1188"
|
|
421
421
|
]
|
|
@@ -443,7 +443,7 @@
|
|
|
443
443
|
"framework_gaps": [],
|
|
444
444
|
"last_threat_review": "2026-05-01",
|
|
445
445
|
"signature": "X8BQpeJFFTxvE9jWkmqF1J5EnSB63TMNF/VCU6RQLf/+XsGYarOokZ5lWvZT2IL3djwxzzbWhr0BMtuLMtEcAg==",
|
|
446
|
-
"signed_at": "2026-05-
|
|
446
|
+
"signed_at": "2026-05-16T14:53:21.513Z"
|
|
447
447
|
},
|
|
448
448
|
{
|
|
449
449
|
"name": "global-grc",
|
|
@@ -475,7 +475,7 @@
|
|
|
475
475
|
"framework_gaps": [],
|
|
476
476
|
"last_threat_review": "2026-05-01",
|
|
477
477
|
"signature": "7yVjZkanFMKDQqXdX4B/7oLc2Rz72xHC1zscYd8F/+e5UAbR7ikK8Bn5EKZt3aBEOhHPAviSQNCMxpZD9U00CA==",
|
|
478
|
-
"signed_at": "2026-05-
|
|
478
|
+
"signed_at": "2026-05-16T14:53:21.513Z"
|
|
479
479
|
},
|
|
480
480
|
{
|
|
481
481
|
"name": "zeroday-gap-learn",
|
|
@@ -502,7 +502,7 @@
|
|
|
502
502
|
"framework_gaps": [],
|
|
503
503
|
"last_threat_review": "2026-05-01",
|
|
504
504
|
"signature": "iwosQ4gcFZc+6QSmxUOhHB3jse8tHxd3XsXl155mU4K5UgbctHNhOUKMmF7WnUVfOUQ7PafHiMzZIbevvenNBA==",
|
|
505
|
-
"signed_at": "2026-05-
|
|
505
|
+
"signed_at": "2026-05-16T14:53:21.513Z"
|
|
506
506
|
},
|
|
507
507
|
{
|
|
508
508
|
"name": "pqc-first",
|
|
@@ -554,7 +554,7 @@
|
|
|
554
554
|
],
|
|
555
555
|
"last_threat_review": "2026-05-01",
|
|
556
556
|
"signature": "V+qn5FqUlETfsEjvvi6jZGuQdqLFtFejfgPA6KSYxSlBXBTbOBXP3BGk5S+ba9akIzgbKh1j9VGB1MqsIt56DA==",
|
|
557
|
-
"signed_at": "2026-05-
|
|
557
|
+
"signed_at": "2026-05-16T14:53:21.514Z",
|
|
558
558
|
"cwe_refs": [
|
|
559
559
|
"CWE-327"
|
|
560
560
|
],
|
|
@@ -601,7 +601,7 @@
|
|
|
601
601
|
],
|
|
602
602
|
"last_threat_review": "2026-05-01",
|
|
603
603
|
"signature": "mqjxjEhZiF+yOlqFr6ak39+NkNsasDxW9in5EBczWDxD9ngIxfnpVjKbnr5g+prB4qz3cG28UBtu8cHz9vJbBw==",
|
|
604
|
-
"signed_at": "2026-05-
|
|
604
|
+
"signed_at": "2026-05-16T14:53:21.514Z"
|
|
605
605
|
},
|
|
606
606
|
{
|
|
607
607
|
"name": "security-maturity-tiers",
|
|
@@ -638,7 +638,7 @@
|
|
|
638
638
|
],
|
|
639
639
|
"last_threat_review": "2026-05-01",
|
|
640
640
|
"signature": "cZnSuh0PwPZjzxgfOoKNYDGz9bbdfDIAlQrUuavmRFxWmdAIoarOYsPwPG8NXYRqzxVdRbu8R7eF/+dssbfZDw==",
|
|
641
|
-
"signed_at": "2026-05-
|
|
641
|
+
"signed_at": "2026-05-16T14:53:21.514Z",
|
|
642
642
|
"cwe_refs": [
|
|
643
643
|
"CWE-1188"
|
|
644
644
|
]
|
|
@@ -673,7 +673,7 @@
|
|
|
673
673
|
"framework_gaps": [],
|
|
674
674
|
"last_threat_review": "2026-05-11",
|
|
675
675
|
"signature": "/lGgWehCMQUXjI6w4FUa+5wrbyRnct+txvVcXA+D2/ZEkoJKh+J/psO3j5HPf7Hpv+Y5SmkH71CoO+9qilyVDQ==",
|
|
676
|
-
"signed_at": "2026-05-
|
|
676
|
+
"signed_at": "2026-05-16T14:53:21.515Z"
|
|
677
677
|
},
|
|
678
678
|
{
|
|
679
679
|
"name": "attack-surface-pentest",
|
|
@@ -744,7 +744,7 @@
|
|
|
744
744
|
"PTES revision incorporating AI-surface enumeration"
|
|
745
745
|
],
|
|
746
746
|
"signature": "Zo+2DFJhxNkEvQ8X+eYnqtLKepukif9IyD7LmqK/MX6tyfOp/gXGl9KEOddhubuV2a79zEc/OGOYfTHsEVzcAg==",
|
|
747
|
-
"signed_at": "2026-05-
|
|
747
|
+
"signed_at": "2026-05-16T14:53:21.515Z"
|
|
748
748
|
},
|
|
749
749
|
{
|
|
750
750
|
"name": "fuzz-testing-strategy",
|
|
@@ -804,7 +804,7 @@
|
|
|
804
804
|
"OSS-Fuzz-Gen / AI-assisted harness generation becoming the default expectation for OSS maintainers"
|
|
805
805
|
],
|
|
806
806
|
"signature": "jZq4Kv81CxQMMOAnw3/A1tBe5fIfrr+SGltivqcmH4WjUKmk6byO5BWCZKTxWWuaGa/AonsSDk5CGUPx9h8ZBw==",
|
|
807
|
-
"signed_at": "2026-05-
|
|
807
|
+
"signed_at": "2026-05-16T14:53:21.515Z"
|
|
808
808
|
},
|
|
809
809
|
{
|
|
810
810
|
"name": "dlp-gap-analysis",
|
|
@@ -879,7 +879,7 @@
|
|
|
879
879
|
"Quebec Law 25, India DPDPA, KSA PDPL enforcement actions naming AI-tool prompt data as in-scope personal information"
|
|
880
880
|
],
|
|
881
881
|
"signature": "vY2ym7pUhzJBD6R6jI4JwSKciqVS1fyVPuszN4WTiKJvYGePkis6w7upk/Fw0OXjnNSNdEf3f534FHRzGk5UDg==",
|
|
882
|
-
"signed_at": "2026-05-
|
|
882
|
+
"signed_at": "2026-05-16T14:53:21.516Z"
|
|
883
883
|
},
|
|
884
884
|
{
|
|
885
885
|
"name": "supply-chain-integrity",
|
|
@@ -955,8 +955,8 @@
|
|
|
955
955
|
"EU CRA (Regulation 2024/2847) — implementing acts for technical documentation and SBOM submission expected through 2027",
|
|
956
956
|
"OpenSSF model-signing — emerging Sigstore-based signing standard for ML model weights; track for production adoption"
|
|
957
957
|
],
|
|
958
|
-
"signature": "
|
|
959
|
-
"signed_at": "2026-05-
|
|
958
|
+
"signature": "SB5gpZ8nT7yZNIr9qaXf9l0ShbsE/b1+XYNucaOIi/G6YcjLly+u+mKGiY7qBVv3CP1FO7pbSvB/e5dlR2AsCw==",
|
|
959
|
+
"signed_at": "2026-05-16T14:53:21.516Z"
|
|
960
960
|
},
|
|
961
961
|
{
|
|
962
962
|
"name": "defensive-countermeasure-mapping",
|
|
@@ -1013,7 +1013,7 @@
|
|
|
1013
1013
|
],
|
|
1014
1014
|
"last_threat_review": "2026-05-11",
|
|
1015
1015
|
"signature": "XZigwq8X/csfrdG10O6Q1V5q0zUqSQGd3QrjRKkZ4fkaodG4mZahYuIQqxc8rU9jjtGAm9LtBXYB+I5csqj9Bw==",
|
|
1016
|
-
"signed_at": "2026-05-
|
|
1016
|
+
"signed_at": "2026-05-16T14:53:21.516Z"
|
|
1017
1017
|
},
|
|
1018
1018
|
{
|
|
1019
1019
|
"name": "identity-assurance",
|
|
@@ -1080,7 +1080,7 @@
|
|
|
1080
1080
|
"d3fend_refs": [],
|
|
1081
1081
|
"last_threat_review": "2026-05-11",
|
|
1082
1082
|
"signature": "k0HrsZMBxiPWB1jl4dRwhv/R5IsqbZ+SLDv1Jx3/sRl51JyXjtm8vyogTNhSwsl5/IkaRakqIPJFRFRl5h/9CQ==",
|
|
1083
|
-
"signed_at": "2026-05-
|
|
1083
|
+
"signed_at": "2026-05-16T14:53:21.517Z"
|
|
1084
1084
|
},
|
|
1085
1085
|
{
|
|
1086
1086
|
"name": "ot-ics-security",
|
|
@@ -1135,8 +1135,8 @@
|
|
|
1135
1135
|
],
|
|
1136
1136
|
"d3fend_refs": [],
|
|
1137
1137
|
"last_threat_review": "2026-05-11",
|
|
1138
|
-
"signature": "
|
|
1139
|
-
"signed_at": "2026-05-
|
|
1138
|
+
"signature": "kAYm2ym/wCoYnA0cMP7kY/0R+/IFTzuZ2Dn514xnLdQ+6aTbxJel9tTn+a6d7F8IWidciC9Xx4nG1A11VqofCg==",
|
|
1139
|
+
"signed_at": "2026-05-16T14:53:21.517Z"
|
|
1140
1140
|
},
|
|
1141
1141
|
{
|
|
1142
1142
|
"name": "coordinated-vuln-disclosure",
|
|
@@ -1188,7 +1188,7 @@
|
|
|
1188
1188
|
"NYDFS 23 NYCRR 500 amendments potentially adding explicit CVD program requirements"
|
|
1189
1189
|
],
|
|
1190
1190
|
"signature": "f1w8AOT3bw+IeaAkg+vubUf7+Gx+/zTuQyIKOxQTbF9m1HGIE/SJQlWZST9ALtlH1BN4gJK5WPRmloX6LzQYBw==",
|
|
1191
|
-
"signed_at": "2026-05-
|
|
1191
|
+
"signed_at": "2026-05-16T14:53:21.517Z"
|
|
1192
1192
|
},
|
|
1193
1193
|
{
|
|
1194
1194
|
"name": "threat-modeling-methodology",
|
|
@@ -1238,7 +1238,7 @@
|
|
|
1238
1238
|
"PASTA v2 updates incorporating AI/ML application threats"
|
|
1239
1239
|
],
|
|
1240
1240
|
"signature": "bOexHUZApL+t6r84lombGCRHOh8jT9f3rm9ckcdu0Mz6hKuoa9uMGq5D+JESKMoOdFMPMZM4KpjZ+fcYExp2AQ==",
|
|
1241
|
-
"signed_at": "2026-05-
|
|
1241
|
+
"signed_at": "2026-05-16T14:53:21.518Z"
|
|
1242
1242
|
},
|
|
1243
1243
|
{
|
|
1244
1244
|
"name": "webapp-security",
|
|
@@ -1312,7 +1312,7 @@
|
|
|
1312
1312
|
"d3fend_refs": [],
|
|
1313
1313
|
"last_threat_review": "2026-05-11",
|
|
1314
1314
|
"signature": "TS1bOSeoGVK77LkHrUrZALK5PeturDTZe68vippxgJ9q7dQYa6n+CQFydiPfam2HZZJWtRHfs+4bL8PS7qQtAw==",
|
|
1315
|
-
"signed_at": "2026-05-
|
|
1315
|
+
"signed_at": "2026-05-16T14:53:21.518Z"
|
|
1316
1316
|
},
|
|
1317
1317
|
{
|
|
1318
1318
|
"name": "ai-risk-management",
|
|
@@ -1362,7 +1362,7 @@
|
|
|
1362
1362
|
"d3fend_refs": [],
|
|
1363
1363
|
"last_threat_review": "2026-05-11",
|
|
1364
1364
|
"signature": "8E82UwKFNraXV/MKAbiUV6gUryYuN+Ff/kiv1aW4/XtriShdTyt/UgRuQJ8LXGXl0jMH8hRJ/xTAV8LOJqexDA==",
|
|
1365
|
-
"signed_at": "2026-05-
|
|
1365
|
+
"signed_at": "2026-05-16T14:53:21.518Z"
|
|
1366
1366
|
},
|
|
1367
1367
|
{
|
|
1368
1368
|
"name": "sector-healthcare",
|
|
@@ -1422,7 +1422,7 @@
|
|
|
1422
1422
|
"d3fend_refs": [],
|
|
1423
1423
|
"last_threat_review": "2026-05-11",
|
|
1424
1424
|
"signature": "oW7JP2esMH8RxJKHnKXj3uHKJ7E5iEvp+fg1PQWRL0FbTu1K/SwY56tVzeBZgfNBGb5W4Q7TKk7r+Fh9tXD+AQ==",
|
|
1425
|
-
"signed_at": "2026-05-
|
|
1425
|
+
"signed_at": "2026-05-16T14:53:21.519Z"
|
|
1426
1426
|
},
|
|
1427
1427
|
{
|
|
1428
1428
|
"name": "sector-financial",
|
|
@@ -1503,7 +1503,7 @@
|
|
|
1503
1503
|
"TIBER-EU framework v2.0 alignment with DORA TLPT RTS (JC 2024/40); cross-recognition with CBEST and iCAST"
|
|
1504
1504
|
],
|
|
1505
1505
|
"signature": "8YE9Csb1WGVXzHUG2ZIw7vG0f4h6xZ3dqZMH8vsCzs9/uNaifToOhHXfjfzycqoE9jmOTcp2lFLTvim1FrJjCA==",
|
|
1506
|
-
"signed_at": "2026-05-
|
|
1506
|
+
"signed_at": "2026-05-16T14:53:21.519Z"
|
|
1507
1507
|
},
|
|
1508
1508
|
{
|
|
1509
1509
|
"name": "sector-federal-government",
|
|
@@ -1571,8 +1571,8 @@
|
|
|
1571
1571
|
"EU Cybersecurity Certification Scheme on Common Criteria (EUCC) operational — first certificates issued 2024; high-assurance level for government use cases ramping",
|
|
1572
1572
|
"Australia PSPF 2024 revision and ISM quarterly updates — track for Essential Eight Maturity Level requirements for federal entities"
|
|
1573
1573
|
],
|
|
1574
|
-
"signature": "
|
|
1575
|
-
"signed_at": "2026-05-
|
|
1574
|
+
"signature": "OJVU06d5AVJffRAWuo1FlkEmtNXckfte/aHBIny98w5644d7jcxxj7I1VH7PaRaBOz049T5MJ9PlAwaRIB2LDA==",
|
|
1575
|
+
"signed_at": "2026-05-16T14:53:21.520Z"
|
|
1576
1576
|
},
|
|
1577
1577
|
{
|
|
1578
1578
|
"name": "sector-energy",
|
|
@@ -1636,8 +1636,8 @@
|
|
|
1636
1636
|
"MadIoT-class research on consumer-IoT-driven grid frequency manipulation moving from proof-of-concept to attributed campaigns",
|
|
1637
1637
|
"ICS-CERT advisory feed (https://www.cisa.gov/news-events/cybersecurity-advisories/ics-advisories) for vendor CVEs in Siemens, Rockwell, Schneider Electric, ABB, GE Vernova, Hitachi Energy, AVEVA / OSIsoft PI"
|
|
1638
1638
|
],
|
|
1639
|
-
"signature": "
|
|
1640
|
-
"signed_at": "2026-05-
|
|
1639
|
+
"signature": "kp9RgI7ViCNA2fxdbPZQxKlIVSvcArIyYqQdfojgvh9OYALvI4Bp3XB2RMcJZX1VORfUm3bKZjV8MRZsqCNtDg==",
|
|
1640
|
+
"signed_at": "2026-05-16T14:53:21.520Z"
|
|
1641
1641
|
},
|
|
1642
1642
|
{
|
|
1643
1643
|
"name": "sector-telecom",
|
|
@@ -1723,7 +1723,7 @@
|
|
|
1723
1723
|
"O-RAN SFG / WG11 security specifications"
|
|
1724
1724
|
],
|
|
1725
1725
|
"signature": "VKLuoRkFq7lNXqySipwzPSaiHaqemHQ2cReemF/Xy9hUpD9orQaTVZWClOA4lzoF6d2eQ/CeS///Jjnj4g9dCg==",
|
|
1726
|
-
"signed_at": "2026-05-
|
|
1726
|
+
"signed_at": "2026-05-16T14:53:21.521Z"
|
|
1727
1727
|
},
|
|
1728
1728
|
{
|
|
1729
1729
|
"name": "api-security",
|
|
@@ -1792,7 +1792,7 @@
|
|
|
1792
1792
|
"d3fend_refs": [],
|
|
1793
1793
|
"last_threat_review": "2026-05-11",
|
|
1794
1794
|
"signature": "bhgnM/PkYgduLokq5dCSm1geELvrfvKCGG4mwfgn4X9NdrheI1cjnrOqZjbOEt2q44iH2vDhqLJeA9l85GMeAg==",
|
|
1795
|
-
"signed_at": "2026-05-
|
|
1795
|
+
"signed_at": "2026-05-16T14:53:21.521Z"
|
|
1796
1796
|
},
|
|
1797
1797
|
{
|
|
1798
1798
|
"name": "cloud-security",
|
|
@@ -1873,7 +1873,7 @@
|
|
|
1873
1873
|
"CISA KEV additions for cloud-control-plane CVEs (IMDSv1 abuses, federation token mishandling, cross-tenant boundary failures); CISA Cybersecurity Advisories for cross-cloud advisories"
|
|
1874
1874
|
],
|
|
1875
1875
|
"signature": "wTxiyl9IN127tDk8msLw1/0REqZ3Ldeyj5HSwNdmJWOFkqGs1MbgQYFt0wCSVNcGtdoWtZtV6uuUxdOlCoo4AA==",
|
|
1876
|
-
"signed_at": "2026-05-
|
|
1876
|
+
"signed_at": "2026-05-16T14:53:21.521Z"
|
|
1877
1877
|
},
|
|
1878
1878
|
{
|
|
1879
1879
|
"name": "container-runtime-security",
|
|
@@ -1935,7 +1935,7 @@
|
|
|
1935
1935
|
"d3fend_refs": [],
|
|
1936
1936
|
"last_threat_review": "2026-05-11",
|
|
1937
1937
|
"signature": "kYHthY7uKOnVV64XC7evRWZuwQxY1Ihdsz4KAqGFnjTg+9hkBMcMfW1K3lwCIXEXElENznsZ8RI6LcwcbmDjBg==",
|
|
1938
|
-
"signed_at": "2026-05-
|
|
1938
|
+
"signed_at": "2026-05-16T14:53:21.522Z"
|
|
1939
1939
|
},
|
|
1940
1940
|
{
|
|
1941
1941
|
"name": "mlops-security",
|
|
@@ -2006,7 +2006,7 @@
|
|
|
2006
2006
|
"MITRE ATLAS v5.4.0 (released February 2026) shipped the AML.T0010 sub-technique expansion this forecast tracked plus new techniques (\"Publish Poisoned AI Agent Tool\", \"Escape to Host\"); inventory now 16 tactics, 84 techniques, 56 sub-techniques. Forward watch: ATLAS v5.5 / v6.0 — track next-cadence updates to agentic-AI TTPs and MLOps-pipeline-specific techniques"
|
|
2007
2007
|
],
|
|
2008
2008
|
"signature": "L0OCRb+jIzUqdx+pZHY9WsF1fJ+FxGF3+ALWqjHerBi+EbHxi5js81xZMATRf4dIGH/4YpSjVn5Xu/apu94lBA==",
|
|
2009
|
-
"signed_at": "2026-05-
|
|
2009
|
+
"signed_at": "2026-05-16T14:53:21.522Z"
|
|
2010
2010
|
},
|
|
2011
2011
|
{
|
|
2012
2012
|
"name": "incident-response-playbook",
|
|
@@ -2068,7 +2068,7 @@
|
|
|
2068
2068
|
"NYDFS 23 NYCRR 500.17 amendments tightening ransom-payment 24h disclosure operationalization"
|
|
2069
2069
|
],
|
|
2070
2070
|
"signature": "f2AhpIOdMBZaOPfGa0ebnHc0Iofv5Aj+NcyW3rwlP7oxx4WbvhO5n+ECVtqZ8HRoD3BC/2KxrFGcvBhnObf+AA==",
|
|
2071
|
-
"signed_at": "2026-05-
|
|
2071
|
+
"signed_at": "2026-05-16T14:53:21.522Z"
|
|
2072
2072
|
},
|
|
2073
2073
|
{
|
|
2074
2074
|
"name": "ransomware-response",
|
|
@@ -2148,7 +2148,7 @@
|
|
|
2148
2148
|
],
|
|
2149
2149
|
"last_threat_review": "2026-05-15",
|
|
2150
2150
|
"signature": "2+KCRXcUy0d1DdV2RHNFTCadii+2m9DXVcygPVFITwoGbNwnN3e10JZRjLewMtRkxXboYPZ7Qt25xoDRszYQAg==",
|
|
2151
|
-
"signed_at": "2026-05-
|
|
2151
|
+
"signed_at": "2026-05-16T14:53:21.523Z"
|
|
2152
2152
|
},
|
|
2153
2153
|
{
|
|
2154
2154
|
"name": "email-security-anti-phishing",
|
|
@@ -2201,7 +2201,7 @@
|
|
|
2201
2201
|
"d3fend_refs": [],
|
|
2202
2202
|
"last_threat_review": "2026-05-11",
|
|
2203
2203
|
"signature": "RiCryJEd66T2NNcSo/mZTd3sGWDycE3C37guLJanLdVL5co35DrPFmIl8qy3ZM/y+Wzg5vpny8VKgr1//1/bCA==",
|
|
2204
|
-
"signed_at": "2026-05-
|
|
2204
|
+
"signed_at": "2026-05-16T14:53:21.523Z"
|
|
2205
2205
|
},
|
|
2206
2206
|
{
|
|
2207
2207
|
"name": "age-gates-child-safety",
|
|
@@ -2269,7 +2269,7 @@
|
|
|
2269
2269
|
"US state adult-site age-verification laws — 19+ states by mid-2026 (TX HB 18 upheld by SCOTUS June 2025 in Free Speech Coalition v. Paxton); track ongoing challenges in remaining states"
|
|
2270
2270
|
],
|
|
2271
2271
|
"signature": "rRX0+wEkhrjEIi1e+OSjg1U5uR0/hDoaai36WcIrzxViRVuIS5WwyH0GBeJF1eTcbMOIvd7QZApG8aHbXmTpAg==",
|
|
2272
|
-
"signed_at": "2026-05-
|
|
2272
|
+
"signed_at": "2026-05-16T14:53:21.523Z"
|
|
2273
2273
|
},
|
|
2274
2274
|
{
|
|
2275
2275
|
"name": "cloud-iam-incident",
|
|
@@ -2348,8 +2348,8 @@
|
|
|
2348
2348
|
"D3-CAA"
|
|
2349
2349
|
],
|
|
2350
2350
|
"last_threat_review": "2026-05-15",
|
|
2351
|
-
"signature": "
|
|
2352
|
-
"signed_at": "2026-05-
|
|
2351
|
+
"signature": "L85ONmu51m4EKwat2IJlMYz9V3Wvl+ISVHe92B01/mfPv/kf0TpYqaUZ8NoBT9G4rO5yNUtsWS0NMOJHHNANCA==",
|
|
2352
|
+
"signed_at": "2026-05-16T14:53:21.524Z"
|
|
2353
2353
|
},
|
|
2354
2354
|
{
|
|
2355
2355
|
"name": "idp-incident-response",
|
|
@@ -2430,11 +2430,11 @@
|
|
|
2430
2430
|
],
|
|
2431
2431
|
"last_threat_review": "2026-05-15",
|
|
2432
2432
|
"signature": "n9d4fdaSHCMieXRDkBz88kITsUFFlngr2gn2IvGFqJLH+xOEDp4ohS62Vk/zq4+Mhi4QEVKSu3mONOAk3nsYBQ==",
|
|
2433
|
-
"signed_at": "2026-05-
|
|
2433
|
+
"signed_at": "2026-05-16T14:53:21.524Z"
|
|
2434
2434
|
}
|
|
2435
2435
|
],
|
|
2436
2436
|
"manifest_signature": {
|
|
2437
2437
|
"algorithm": "Ed25519",
|
|
2438
|
-
"signature_base64": "
|
|
2438
|
+
"signature_base64": "wPYloIsAKJM7tM5OLQKcmYZCiUVxESJ40a3JC3b1M9iExZC//zHmMeQ+N7/ABqqXKD/tDBmyqrFH8IrrtE4HBg=="
|
|
2439
2439
|
}
|
|
2440
2440
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blamejs/exceptd-skills",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.38",
|
|
4
4
|
"description": "AI security skills grounded in mid-2026 threat reality, not stale framework documentation. 42 skills, 10 catalogs, 34 jurisdictions, pre-computed indexes, Ed25519-signed.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai-security",
|
package/sbom.cdx.json
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"bomFormat": "CycloneDX",
|
|
3
3
|
"specVersion": "1.6",
|
|
4
|
-
"serialNumber": "urn:uuid:
|
|
4
|
+
"serialNumber": "urn:uuid:4bbca2a4-85ac-43b6-8b5a-19b8af0e8871",
|
|
5
5
|
"version": 1,
|
|
6
6
|
"metadata": {
|
|
7
|
-
"timestamp": "2026-05-
|
|
7
|
+
"timestamp": "2026-05-16T14:54:27.679Z",
|
|
8
8
|
"tools": [
|
|
9
9
|
{
|
|
10
10
|
"vendor": "blamejs",
|
|
11
11
|
"name": "scripts/refresh-sbom.js",
|
|
12
|
-
"version": "0.12.
|
|
12
|
+
"version": "0.12.38"
|
|
13
13
|
}
|
|
14
14
|
],
|
|
15
15
|
"component": {
|
|
16
|
-
"bom-ref": "pkg:npm/@blamejs/exceptd-skills@0.12.
|
|
16
|
+
"bom-ref": "pkg:npm/@blamejs/exceptd-skills@0.12.38",
|
|
17
17
|
"type": "application",
|
|
18
18
|
"name": "@blamejs/exceptd-skills",
|
|
19
|
-
"version": "0.12.
|
|
19
|
+
"version": "0.12.38",
|
|
20
20
|
"description": "AI security skills grounded in mid-2026 threat reality, not stale framework documentation. 42 skills, 10 catalogs, 34 jurisdictions, pre-computed indexes, Ed25519-signed.",
|
|
21
21
|
"licenses": [
|
|
22
22
|
{
|
|
@@ -25,17 +25,17 @@
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
],
|
|
28
|
-
"purl": "pkg:npm/%40blamejs/exceptd-skills@0.12.
|
|
28
|
+
"purl": "pkg:npm/%40blamejs/exceptd-skills@0.12.38",
|
|
29
29
|
"hashes": [
|
|
30
30
|
{
|
|
31
31
|
"alg": "SHA-256",
|
|
32
|
-
"content": "
|
|
32
|
+
"content": "f8a1109c08d1f80f4bd19cf613fbd5784fcfa606fc20eb8863cc32df17951b73"
|
|
33
33
|
}
|
|
34
34
|
],
|
|
35
35
|
"externalReferences": [
|
|
36
36
|
{
|
|
37
37
|
"type": "distribution",
|
|
38
|
-
"url": "https://www.npmjs.com/package/@blamejs/exceptd-skills/v/0.12.
|
|
38
|
+
"url": "https://www.npmjs.com/package/@blamejs/exceptd-skills/v/0.12.38"
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
"type": "vcs",
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
"hashes": [
|
|
109
109
|
{
|
|
110
110
|
"alg": "SHA-256",
|
|
111
|
-
"content": "
|
|
111
|
+
"content": "a9fa407110027349cc95b66768f4b4915deafc7606bee87c1e2c902a4b86c9b3"
|
|
112
112
|
}
|
|
113
113
|
]
|
|
114
114
|
},
|
|
@@ -152,7 +152,7 @@
|
|
|
152
152
|
"hashes": [
|
|
153
153
|
{
|
|
154
154
|
"alg": "SHA-256",
|
|
155
|
-
"content": "
|
|
155
|
+
"content": "cef346c414332e249a5235bb9e7cef99f81702ac27575aabb87750ba15259355"
|
|
156
156
|
}
|
|
157
157
|
]
|
|
158
158
|
},
|
|
@@ -229,7 +229,7 @@
|
|
|
229
229
|
"hashes": [
|
|
230
230
|
{
|
|
231
231
|
"alg": "SHA-256",
|
|
232
|
-
"content": "
|
|
232
|
+
"content": "f4236d406c41a051b9e2b72c8a389c78fcc7148f91236c06604a00549162406b"
|
|
233
233
|
}
|
|
234
234
|
]
|
|
235
235
|
},
|
|
@@ -262,7 +262,7 @@
|
|
|
262
262
|
"hashes": [
|
|
263
263
|
{
|
|
264
264
|
"alg": "SHA-256",
|
|
265
|
-
"content": "
|
|
265
|
+
"content": "5bfd08a3fc62850e0cdaf454a2dce3e6719acb8917b7c7249c4c02bf945b62f5"
|
|
266
266
|
}
|
|
267
267
|
]
|
|
268
268
|
},
|
|
@@ -911,7 +911,7 @@
|
|
|
911
911
|
"hashes": [
|
|
912
912
|
{
|
|
913
913
|
"alg": "SHA-256",
|
|
914
|
-
"content": "
|
|
914
|
+
"content": "774078803a8ee8679906902c59ed3d3cf10651a6e239504663c8b238a900bde4"
|
|
915
915
|
}
|
|
916
916
|
]
|
|
917
917
|
},
|
|
@@ -922,7 +922,7 @@
|
|
|
922
922
|
"hashes": [
|
|
923
923
|
{
|
|
924
924
|
"alg": "SHA-256",
|
|
925
|
-
"content": "
|
|
925
|
+
"content": "0d6fae8067b784d435b2807d33e7a2ee0099ab4fcb1cf94566f5cd9f6cc0c4b6"
|
|
926
926
|
}
|
|
927
927
|
]
|
|
928
928
|
},
|
|
@@ -933,7 +933,7 @@
|
|
|
933
933
|
"hashes": [
|
|
934
934
|
{
|
|
935
935
|
"alg": "SHA-256",
|
|
936
|
-
"content": "
|
|
936
|
+
"content": "46518d99e0b18b4522982bcd2867c43dacba010390a2cc5e75d4c17c5d0f5b4c"
|
|
937
937
|
}
|
|
938
938
|
]
|
|
939
939
|
},
|
|
@@ -1417,7 +1417,7 @@
|
|
|
1417
1417
|
"hashes": [
|
|
1418
1418
|
{
|
|
1419
1419
|
"alg": "SHA-256",
|
|
1420
|
-
"content": "
|
|
1420
|
+
"content": "f124d1170cffb490ddd093ad6fc9876591515643fb2f51379023a08548c7290d"
|
|
1421
1421
|
}
|
|
1422
1422
|
]
|
|
1423
1423
|
},
|
|
@@ -1615,7 +1615,7 @@
|
|
|
1615
1615
|
"hashes": [
|
|
1616
1616
|
{
|
|
1617
1617
|
"alg": "SHA-256",
|
|
1618
|
-
"content": "
|
|
1618
|
+
"content": "258003e15bd4e939a1ec1f71c22ffa4dccd6d3194411281f4685abfe840d7cd3"
|
|
1619
1619
|
}
|
|
1620
1620
|
]
|
|
1621
1621
|
},
|
|
@@ -1681,7 +1681,7 @@
|
|
|
1681
1681
|
"hashes": [
|
|
1682
1682
|
{
|
|
1683
1683
|
"alg": "SHA-256",
|
|
1684
|
-
"content": "
|
|
1684
|
+
"content": "44b635b9c52bb10ee2f8d786400926e018c7581387324f59ee3a815de4929c9c"
|
|
1685
1685
|
}
|
|
1686
1686
|
]
|
|
1687
1687
|
},
|
|
@@ -1692,7 +1692,7 @@
|
|
|
1692
1692
|
"hashes": [
|
|
1693
1693
|
{
|
|
1694
1694
|
"alg": "SHA-256",
|
|
1695
|
-
"content": "
|
|
1695
|
+
"content": "981bd7aea1b3ba7875d1222f077126d4eb9462bed46e3e6f5cfed5f94378b152"
|
|
1696
1696
|
}
|
|
1697
1697
|
]
|
|
1698
1698
|
},
|
|
@@ -1758,7 +1758,7 @@
|
|
|
1758
1758
|
"hashes": [
|
|
1759
1759
|
{
|
|
1760
1760
|
"alg": "SHA-256",
|
|
1761
|
-
"content": "
|
|
1761
|
+
"content": "497f1ef20f3e506ce1bec5ec65730ffc58300054ff3e8e563e0862838164491a"
|
|
1762
1762
|
}
|
|
1763
1763
|
]
|
|
1764
1764
|
},
|
|
@@ -170,7 +170,7 @@ The playbook `cloud-iam-incident` operationalises this skill into a seven-phase
|
|
|
170
170
|
|---|---|---|---|---|---|---|---|---|
|
|
171
171
|
| CVE-2024-1709 ScreenConnect auth bypass (cloud-runtime adjacent) | 10.0 | 95 | Yes | Yes | n/a | Confirmed mass exploitation | Vendor patch | EDR + identity-protection |
|
|
172
172
|
| CVE-2024-21626 runc container escape | 8.6 | 88 | Yes | Yes | n/a | Confirmed | Vendor patch | Container-runtime telemetry |
|
|
173
|
-
| CVE-2024-3094 xz-utils supply-chain backdoor | 10.0 |
|
|
173
|
+
| CVE-2024-3094 xz-utils supply-chain backdoor | 10.0 | 70 | Yes | Yes | No | Suspected | Vendor patch | SBOM-driven detection |
|
|
174
174
|
| CVE-2026-20182 Cisco SD-WAN cloud-edge | 9.1 | 90 | Yes | Yes | Yes | Confirmed | Vendor patch | Network telemetry |
|
|
175
175
|
| CVE-2026-30623 Anthropic MCP STDIO (cloud-hosted MCP servers) | 8.4 | 87 | Pending | Yes | Yes | Suspected | Vendor patch + config hardening | MCP-aware telemetry |
|
|
176
176
|
| Leaked access key in public repo (Snowflake-AA24-class) | n/a (config) | high (exploited within minutes) | n/a | Documented at scale | n/a | Confirmed mass exploitation | Configuration hardening + key rotation + scraper-bot countermeasures | GitGuardian / Trufflehog firehose; behavioural detection on CreateAccessKey + key-use anomaly |
|
|
@@ -116,7 +116,7 @@ ATT&CK for ICS is a separate matrix from Enterprise. Many IT-rooted SOCs do not
|
|
|
116
116
|
|---|---|---|---|---|---|---|---|---|---|
|
|
117
117
|
| IT/OT bridge — HMI Linux host hit by Copy Fail (CVE-2026-31431) | 7.8 | 90 | Yes (2026-05-01, due 2026-05-15) | Yes — 732-byte script | Yes | Confirmed | Yes | Yes (kpatch/livepatch/kGraft) on supported distros; rare in OT brownfield | Partial — auditd/eBPF rules apply if deployable on HMI host |
|
|
118
118
|
| IT/OT bridge — HMI Windows host LPE (Print Spooler / win32k family) | varies | varies | Some entries KEV-listed | Yes | Mixed | Confirmed | Yes for in-support; out-of-support HMIs are exposed permanently | No — Windows live-patch is limited to Hotpatch on supported builds | EDR if deployable; many OT EDR carve-outs |
|
|
119
|
-
| Vendor-side OT CVEs (Siemens, Rockwell, Schneider, ABB, GE Vernova) | varies | varies | Several KEV listings 2024–2026 | Mixed — vendor disclosures only sometimes accompanied by PoC | Increasing AI-assisted RE | Targeted exploitation by Sandworm-aligned and Volt
|
|
119
|
+
| Vendor-side OT CVEs (Siemens, Rockwell, Schneider, ABB, GE Vernova) | varies | varies | Several KEV listings 2024–2026 | Mixed — vendor disclosures only sometimes accompanied by PoC | Increasing AI-assisted RE | Targeted exploitation by Sandworm-aligned and Volt Typhoon-aligned actors | Vendor-dependent — typical lag 60–180 days; deploy lag 1–5 years | No — firmware updates require change windows | ICS-aware IDS (Claroty, Nozomi, Dragos, Tenable OT) detection signature lag varies |
|
|
120
120
|
| AI-HMI prompt injection (no CVE-class yet) | n/a | risk-modelled, not CVSS | n/a | Demonstrated in research and 2025 incident-response engagements | n/a (vector is the AI conduit itself) | Suspected in 2025 advanced campaigns | Mitigation only — design-time controls on the AI integration | n/a | Requires LLM-aware telemetry — almost never present |
|
|
121
121
|
|
|
122
122
|
**Honest gap statement (per AGENTS.md rule #10).** This project's `data/cve-catalog.json` does not yet contain an exhaustive inventory of vendor-side OT CVEs (Siemens SSAs, Rockwell SD advisories, Schneider Electric Security Notifications, ABB CSAs, GE Vernova advisories). The authoritative source for current OT/ICS CVEs is the CISA ICS-CERT advisory feed at https://www.cisa.gov/news-events/cybersecurity-advisories/ics-advisories — captured in `forward_watch` for inclusion in the catalog as part of the next data refresh. Do not invent CVE IDs to fill this matrix.
|
|
@@ -209,7 +209,7 @@ For non-NERC OT assets, document the actual OT-realistic patch SLA (often quarte
|
|
|
209
209
|
|
|
210
210
|
- OT incident response playbook must explicitly answer: "is process shutdown the safe response to a suspected compromise, or is it the dangerous response?" The answer is process-dependent — for some processes shutdown is the safest available action; for others (continuous-cracker chemical processes, certain power-generation modes, blast furnaces, certain water treatment phases) an unplanned shutdown is catastrophically worse than the suspected compromise.
|
|
211
211
|
- Pre-decision authority: who, in advance, has authority to direct OT-side response? (Plant manager? OT lead? SIS engineer? Process safety?)
|
|
212
|
-
- IR playbooks reviewed and exercised against ICS-specific scenarios (Sandworm-style, Volt
|
|
212
|
+
- IR playbooks reviewed and exercised against ICS-specific scenarios (Sandworm-style, Volt Typhoon-style pre-positioning, ransomware that hit the IT side and is approaching the IDMZ).
|
|
213
213
|
|
|
214
214
|
### Step 9 — Compliance Theater Check (see dedicated section below for the concrete tests)
|
|
215
215
|
|
|
@@ -151,7 +151,7 @@ Energy-sector TTPs span ATT&CK for ICS, ATT&CK Enterprise (for the IT side of th
|
|
|
151
151
|
| Engineering / HMI Linux host hit by Copy Fail (CVE-2026-31431) | 7.8 | 90 | Yes (2026-05-01, due 2026-05-15) | Yes — 732-byte script | Yes | Confirmed | Yes | Yes (kpatch/livepatch/kGraft) on supported distros; rare in energy brownfield | Partial — auditd / eBPF if deployable |
|
|
152
152
|
| Engineering / HMI Windows host LPE (Print Spooler / win32k family) | varies | varies | Several entries KEV-listed | Yes | Mixed | Confirmed | Yes for in-support; out-of-support engineering hosts exposed permanently | Hotpatch on supported builds only | EDR if OT-deployable; many OT EDR carve-outs |
|
|
153
153
|
| Unitronics Vision-series PLC (CyberAv3ngers pattern) | varies — vendor advisories | high RWEP where internet-exposed | Yes (some) — see CISA ICSA-23-353-01 and successors | Yes — public PoCs since late 2023 | Mixed | Confirmed against US/EU/IL water utilities | Yes | No | ICS-aware IDS signatures available (Claroty CTD, Nozomi Guardian, Dragos, Tenable OT) |
|
|
154
|
-
| Vendor-side energy-OT CVEs (Siemens SIPROTEC / SCALANCE, Rockwell ControlLogix / FactoryTalk, Schneider Electric Modicon / EcoStruxure, ABB RTU / SDM, GE Vernova Multilin / Mark VIe, Hitachi Energy MicroSCADA / RTU500, AVEVA / OSIsoft PI System) | varies | varies | Multiple KEV listings 2024–2026 | Mixed — vendor disclosure cadence | Increasing AI-assisted RE (2025 trend) | Targeted by Sandworm-aligned and Volt
|
|
154
|
+
| Vendor-side energy-OT CVEs (Siemens SIPROTEC / SCALANCE, Rockwell ControlLogix / FactoryTalk, Schneider Electric Modicon / EcoStruxure, ABB RTU / SDM, GE Vernova Multilin / Mark VIe, Hitachi Energy MicroSCADA / RTU500, AVEVA / OSIsoft PI System) | varies | varies | Multiple KEV listings 2024–2026 | Mixed — vendor disclosure cadence | Increasing AI-assisted RE (2025 trend) | Targeted by Sandworm-aligned and Volt Typhoon-aligned actors | Vendor-dependent; typical install lag 1–5 years | No — firmware updates require change windows | ICS-aware IDS signature lag varies |
|
|
155
155
|
| IEC 60870-5-104 / IEC 61850 protocol abuse (Industroyer / Industroyer2 class) | n/a — design-level | risk-modelled | n/a | Demonstrated in attributed campaigns | n/a | Confirmed (Ukraine grid, 2016 and 2022) | Mitigation only (IEC 62351 retrofit; conduit segmentation) | n/a | ICS-aware IDS with energy protocol decoders detects unusual control-block patterns; signatures for Industroyer2 are widely deployed |
|
|
156
156
|
| DER inverter firmware / smart-inverter setpoint manipulation | emerging research; limited public CVEs | risk-modelled | n/a | Demonstrated in academic research | Mixed | Suspected in 2025 advanced campaigns; attribution incomplete | Vendor-dependent | No | Aggregator-side telemetry analytics; D3-NTA at DER aggregator boundary |
|
|
157
157
|
| AMI / smart-meter mesh attacks | varies | varies | Limited KEV coverage | Some academic PoCs | n/a | Suspected; rarely attributed | Vendor-dependent firmware updates over the mesh | No | Vendor head-end analytics; weak external detection |
|
|
@@ -373,7 +373,7 @@ Ask: "Walk me through your IR playbook for a confirmed compromise of [pick one:
|
|
|
373
373
|
- If the playbook is a copy-paste from the IT IR playbook: dangerous theater. IT IR defaults to isolate-and-rebuild; OT IR has cases where isolate causes more harm than the suspected compromise (continuous-cracker, certain power-generation modes, blast furnaces, certain water-treatment phases, ongoing pipeline flow, in-progress switching).
|
|
374
374
|
- If the playbook does not name pre-decided authority for the OT-side response: theater. In a real incident the authority question is the bottleneck — pre-decide it.
|
|
375
375
|
- If the playbook does not include process-safety engagement (the SIS / safety team participates in the IR decision, not just IT/OT cyber): theater for processes where safety is the controlling consideration.
|
|
376
|
-
- Acceptable: per-asset-class IR playbook with explicit shutdown-vs-keep-running decision tree, pre-decided authority, process-safety integration, and tabletop-exercise evidence within the last 12 months including ICS-specific scenarios (Sandworm-style, Volt
|
|
376
|
+
- Acceptable: per-asset-class IR playbook with explicit shutdown-vs-keep-running decision tree, pre-decided authority, process-safety integration, and tabletop-exercise evidence within the last 12 months including ICS-specific scenarios (Sandworm-style, Volt Typhoon-style, ransomware-approaching-IDMZ).
|
|
377
377
|
|
|
378
378
|
---
|
|
379
379
|
|
|
@@ -144,7 +144,7 @@ Sourced from `data/cve-catalog.json`, `data/exploit-availability.json`, and CISA
|
|
|
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,
|
|
147
|
+
| XZ Utils backdoor (CVE-2024-3094, 2024) | 10.0 | 70 (catalog: KEV 2024-04-03; active_exploitation=suspected; ai_discovered=false) | Yes — fully public post-disclosure | Yes — KEV 2024-04-03 | 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 |
|
|
@@ -165,7 +165,7 @@ Sourced from `data/cve-catalog.json`, `data/exploit-availability.json`, and publ
|
|
|
165
165
|
| Incident / Class | CVSS | RWEP | PoC Public? | CISA KEV? | AI-Accelerated? | Patch / Mitigation | SLSA-Detectable? | SBOM-Detectable? | VEX-Helpful? |
|
|
166
166
|
|---|---|---|---|---|---|---|---|---|---|
|
|
167
167
|
| CVE-2026-30615 (Windsurf MCP zero-interaction RCE) | 9.8 | 35 (see `cve-catalog.json`) | Partial conceptual exploit | 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 |
|
|
168
|
-
| XZ Utils backdoor (CVE-2024-3094,
|
|
168
|
+
| XZ Utils backdoor (CVE-2024-3094, 2024) | 10.0 | 70 (catalog: KEV 2024-04-03; active_exploitation=suspected; ai_discovered=false) | Yes — fully public post-disclosure | Yes — KEV 2024-04-03 | 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 |
|
|
169
169
|
| 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 |
|
|
170
170
|
| 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 |
|
|
171
171
|
| 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 |
|