@blamejs/exceptd-skills 0.13.13 → 0.13.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +3 -2
- package/CHANGELOG.md +30 -0
- package/README.md +7 -5
- package/data/_indexes/_meta.json +8 -8
- package/data/_indexes/activity-feed.json +2 -2
- package/data/_indexes/catalog-summaries.json +2 -2
- package/data/_indexes/chains.json +124 -0
- package/data/attack-techniques.json +2 -0
- package/data/cve-catalog.json +93 -1
- package/data/cwe-catalog.json +1 -0
- package/data/framework-control-gaps.json +4 -1
- package/data/zeroday-lessons.json +57 -1
- package/lib/source-advisories.js +35 -0
- package/manifest.json +44 -44
- package/package.json +1 -1
- package/sbom.cdx.json +28 -28
package/AGENTS.md
CHANGED
|
@@ -170,7 +170,7 @@ Cross-cutting playbook `framework` is the natural correlation layer — many pla
|
|
|
170
170
|
| `exceptd attest show <sid>` | Print the attestation body. |
|
|
171
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
|
|
173
|
+
| `exceptd refresh --check-advisories` | Poll 12 primary-source advisory feeds — 8 advisory/coordinated-disclosure venues (Qualys TRU, Red Hat RHSA, Ubuntu USN, ZDI, kernel.org commits, oss-security mailing list, JFrog SecOps, CISA current advisories) plus 4 vendor security research blogs (Microsoft Security Blog, Sysdig, Trail of Bits, Embrace the Red — added in v0.13.14 after DirtyDecrypt fell through the advisory-only set) 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
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). |
|
|
175
175
|
|
|
176
176
|
All verbs support `--help` for per-verb usage. JSON output by default; `--pretty` for indented.
|
|
@@ -244,6 +244,7 @@ Recently added (use the IDs in skill prose and operator briefings; full text in
|
|
|
244
244
|
| `NEW-CTRL-069` | ECOSYSTEM-PACKAGE-TEMPORAL-TRUST-DRIFT-DETECTION | `MAL-2026-RUBYGEMS-BUFFERZONECORP-SLEEPER` | NIST-800-218 SSDF PW.4, EU CRA Annex I §1(2)(b), SLSA Build L3 |
|
|
245
245
|
| `NEW-CTRL-070` | TYPOSQUAT-INSTALL-TIME-NAME-CONFUSION-GUARD | `MAL-2025-PYPI-COLORAMA-SOLANA-STEALER` | NIST-800-218 SSDF PW.4, NIST-800-53 SI-7, EU CRA Annex I §1(2)(c) |
|
|
246
246
|
| `NEW-CTRL-071` | AI-DISCOVERY-CREDIT-IN-COMPLIANCE-EVIDENCE | `MAL-2025-AI-FOUND-FFMPEG-BIGSLEEP` + `CVE-2025-6965` + `CVE-2025-0133` + ZeroPath quartet | NIST AI RMF MEASURE 2.7, ISO/IEC 42001 §6.1.4 (records of AI use), EU AI Act Art.12 (record-keeping) |
|
|
247
|
+
| `NEW-CTRL-072` | PRIMARY-SOURCE-INTAKE-VENDOR-BLOG-COVERAGE | `CVE-2026-31635` (DirtyDecrypt) | NIST-800-53 SI-5 (security alerts / advisories), ISO-27001-2022 A.5.7 (threat intelligence), CIS Controls v8 7.1 |
|
|
247
248
|
|
|
248
249
|
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.
|
|
249
250
|
|
|
@@ -251,7 +252,7 @@ When you cite a `NEW-CTRL-*` ID in a skill body, the lint reads the upstream `ze
|
|
|
251
252
|
|
|
252
253
|
## Operational threat-intake cadence
|
|
253
254
|
|
|
254
|
-
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
|
|
255
|
+
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 12 primary-source feeds — 8 advisory venues + 4 vendor security blogs) → `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.
|
|
255
256
|
|
|
256
257
|
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.
|
|
257
258
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.13.15 — 2026-05-18
|
|
4
|
+
|
|
5
|
+
Doc currency for v0.13.14 — README + AGENTS now reflect the 12-feed intake.
|
|
6
|
+
|
|
7
|
+
### Bugs
|
|
8
|
+
|
|
9
|
+
**`README.md` + `AGENTS.md` no longer advertise 8 advisory feeds.** v0.13.14 expanded `lib/source-advisories.js#FEEDS` from 8 to 12 (added Microsoft Security Blog / Sysdig / Trail of Bits / Embrace the Red), but four prose lines and one CLI-help excerpt still claimed "8 primary-source advisory feeds" / "8 vendor and coordinated-disclosure feeds". All updated to reflect the 12-feed total, with the v0.13.14 additions named in the operator-facing copy. The daily threat-intake routine doc string in `AGENTS.md` likewise updated.
|
|
10
|
+
|
|
11
|
+
### Internal
|
|
12
|
+
|
|
13
|
+
- New regression test `tests/doc-feed-count-currency.test.js` greps `README.md` + `AGENTS.md` for `<N> (primary-source|vendor and coordinated-disclosure|advisory venues) feeds?` claims and asserts at least one claim per doc matches the live `FEEDS.length`. Adding a new feed without bumping the doc claim now fires in CI. Same pattern as `tests/doc-playbook-count-currency.test.js`.
|
|
14
|
+
|
|
15
|
+
## 0.13.14 — 2026-05-18
|
|
16
|
+
|
|
17
|
+
DirtyDecrypt catalog entry + intake-pipeline coverage fix for the silent-kernel-patch + delayed-research-disclosure class.
|
|
18
|
+
|
|
19
|
+
### Features
|
|
20
|
+
|
|
21
|
+
**`CVE-2026-31635` (DirtyDecrypt) added to the catalog.** Same Linux page-cache write primitive as Copy Fail (CVE-2026-31431), Dirty Frag (CVE-2026-43284 / 43500), and Fragnesia (CVE-2026-46300) — this one in the `rxgk_decrypt_skb` function. Affects kernels with `CONFIG_RXGK=y` (Fedora / Arch / openSUSE Tumbleweed). Patched in mainline 2026-04-25; V12 security team rediscovered 2026-05-09 (told it was duplicate of mainline fix); PoC + writeup published 2026-05-17. Entry carries an `intake_gap_note` explaining why the daily threat-intake routine missed it: the kernel.org Atom feed window rolled past the silent-patch commit, V12 went to maintainers privately rather than to oss-security@openwall, and the PoC publication surfaced on vendor security blogs that the 8-feed primary-source set did not cover.
|
|
22
|
+
|
|
23
|
+
**Vendor-security-blog intake coverage.** Four new feeds added to `lib/source-advisories.js`: `microsoft-security-blog` (Linux-kernel CVE intel, anchored Dirty Frag 2026-05-08 analysis), `sysdig-blog` (kernel-LPE detection writeups, anchored Copy Fail / Dirty Frag), `trail-of-bits-blog` (MCP / supply-chain / AI-tool disclosures, anchored CVE-2026-30615), `embrace-the-red` (AI-tool prompt-injection + agentic-AI research, anchored CVE-2025-53773). These are the canonical signal channel for "kernel-class CVE patched silently, class-of-bug research published weeks later" and for AI-tool / MCP supply-chain disclosures — closing a class of intake-pipeline blind spot without polluting the catalog with news-aggregator noise.
|
|
24
|
+
|
|
25
|
+
**`NEW-CTRL-072`** (`PRIMARY-SOURCE-INTAKE-VENDOR-BLOG-COVERAGE`) added to `AGENTS.md`: requires threat-intake pipelines to cover vendor security blogs alongside advisory feeds. Maps to NIST 800-53 SI-5, ISO 27001:2022 A.5.7, CIS Controls v8 7.1.
|
|
26
|
+
|
|
27
|
+
### Internal
|
|
28
|
+
|
|
29
|
+
- `tests/intake-vendor-blog-coverage.test.js` pins: the four vendor feeds are registered with HTTPS URLs + `kind: rss`, the fixture has frozen content for each (no live-RSS fall-through), and the DirtyDecrypt entry + matching `zeroday-lessons.json` entry are present with the `intake_gap_note` and `NEW-CTRL-072` reference.
|
|
30
|
+
- `tests/refresh-swarm.test.js` `8/8 feeds reachable` assertion replaced with a dynamic count derived from `lib/source-advisories.js#FEEDS.length` so future intake expansions don't require a test edit.
|
|
31
|
+
- Fixture `tests/fixtures/refresh/advisories.json` extended with `microsoft-security-blog` / `sysdig-blog` / `trail-of-bits-blog` / `embrace-the-red` frozen RSS entries.
|
|
32
|
+
|
|
3
33
|
## 0.13.13 — 2026-05-18
|
|
4
34
|
|
|
5
35
|
`exceptd doctor` now distinguishes consumer-install from contributor-checkout when reporting on signing.
|
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, 23 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`, `post-quantum-migration`, `ai-discovered-cve-triage`, `supply-chain-recovery`, 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.
|
|
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, 23 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`, `post-quantum-migration`, `ai-discovered-cve-triage`, `supply-chain-recovery`, 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, Microsoft Security Blog, Sysdig, Trail of Bits, Embrace the Red) into auto-PRs for editorial review.
|
|
34
34
|
|
|
35
35
|
---
|
|
36
36
|
|
|
@@ -154,7 +154,7 @@ 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
|
|
157
|
+
Primary-source advisory polling: `exceptd refresh --check-advisories` polls 12 vendor and coordinated-disclosure feeds — 8 advisory/coordinated-disclosure venues (Qualys TRU, Red Hat RHSA, Ubuntu USN, Zero Day Initiative, kernel.org commits, oss-security mailing list, JFrog SecOps, CISA current advisories) plus 4 vendor security research blogs added in v0.13.14 (Microsoft Security Blog, Sysdig, Trail of Bits, Embrace the Red) that publish CVE-class research and silent-patch follow-ups not always announced through the advisory channels. Combined coverage publishes 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
158
|
|
|
159
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
160
|
|
|
@@ -322,12 +322,14 @@ exceptd refresh Refresh upstream catalogs + indexes.
|
|
|
322
322
|
--curate <CVE-ID> (v0.12.0) Emit editorial questions + ranked
|
|
323
323
|
candidates (ATLAS/ATT&CK/CWE/framework) for
|
|
324
324
|
a draft catalog entry.
|
|
325
|
-
--check-advisories Poll
|
|
325
|
+
--check-advisories Poll 12 primary-source advisory feeds
|
|
326
326
|
(Qualys TRU, Red Hat RHSA, Ubuntu USN,
|
|
327
327
|
ZDI, kernel.org commits, oss-security
|
|
328
328
|
mailing list, JFrog SecOps, CISA current
|
|
329
|
-
advisories
|
|
330
|
-
|
|
329
|
+
advisories, Microsoft Security Blog,
|
|
330
|
+
Sysdig, Trail of Bits, Embrace the Red)
|
|
331
|
+
for CVE IDs disclosed at T+0 to T+1 —
|
|
332
|
+
days ahead of NVD enrichment.
|
|
331
333
|
Report-only: emits structured diffs[]
|
|
332
334
|
with {cve_id, sources[], advisory_urls[],
|
|
333
335
|
disclosed_at, title}; does NOT mutate the
|
package/data/_indexes/_meta.json
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": "1.1.0",
|
|
3
|
-
"generated_at": "2026-05-
|
|
3
|
+
"generated_at": "2026-05-19T01:02:08.246Z",
|
|
4
4
|
"generator": "scripts/build-indexes.js",
|
|
5
5
|
"source_count": 54,
|
|
6
6
|
"source_hashes": {
|
|
7
|
-
"manifest.json": "
|
|
7
|
+
"manifest.json": "21e451470c35463ab5e7e0026fddc962156b1f53f740eca99faddb62fc7e9eb8",
|
|
8
8
|
"data/atlas-ttps.json": "c2aee9c70ec24cf48f1ea4daf170aa6e7b93292888239c46a8ec9e522ee32119",
|
|
9
|
-
"data/attack-techniques.json": "
|
|
10
|
-
"data/cve-catalog.json": "
|
|
11
|
-
"data/cwe-catalog.json": "
|
|
9
|
+
"data/attack-techniques.json": "6b1fa4c2559229bb8d0b3df497f6bfdd0816e7294ec06afed6482e9dd66b7cb4",
|
|
10
|
+
"data/cve-catalog.json": "e57929ebdde8027a0cdae9125120644667a1b78c3cababd97f2a032c4f10ca22",
|
|
11
|
+
"data/cwe-catalog.json": "42bcaf5d95401c29bcd0851284e3b3ecd60f14a02fcebd3efe198a11e7bc5067",
|
|
12
12
|
"data/d3fend-catalog.json": "a1fc2827ceb344669e148d55197dbf1b0e5b20bcc618e90517639c17d67ee82d",
|
|
13
13
|
"data/dlp-controls.json": "d2406c482dddd30e49203879999dc4b3a7fd4d0494d6a61d86b91ee76415df19",
|
|
14
14
|
"data/exploit-availability.json": "ec2656f0d9a893610e27b43eb6035fe9b18e057c9f6dfaac7e7d4959bbcbb795",
|
|
15
|
-
"data/framework-control-gaps.json": "
|
|
15
|
+
"data/framework-control-gaps.json": "368115d37ab5936abb44e346193979b24c3e5fdf7cb5b00afb2aadc9b5c4bf62",
|
|
16
16
|
"data/global-frameworks.json": "9ba563a85f7f8d6c3c957de64945e20925a89d0ed6ea6fc561cf093811acf558",
|
|
17
17
|
"data/rfc-references.json": "e253a548c8a829d178d5aea601e268724b85c936ccbfa51c2e5d80c5f8efe2b0",
|
|
18
|
-
"data/zeroday-lessons.json": "
|
|
18
|
+
"data/zeroday-lessons.json": "606ccb60a0a117809cd8b814f575db15b66385f9b63a4e8c790e4dcc0e492ed5",
|
|
19
19
|
"skills/kernel-lpe-triage/skill.md": "08b3e9815ba481c57c80f5fc0ccbf5bb7cbb41f570c235ba6ff9596b8c07354d",
|
|
20
20
|
"skills/ai-attack-surface/skill.md": "d1361c53c8360999e1ec6a403bcbfaa53d0afc11689e8781d26081196dd079d4",
|
|
21
21
|
"skills/mcp-agent-trust/skill.md": "19a6b54375808e59143070011328d8c936836845bca4a484108738bbef290694",
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"dlp_refs": 0
|
|
73
73
|
},
|
|
74
74
|
"trigger_table_entries": 538,
|
|
75
|
-
"chains_cve_entries":
|
|
75
|
+
"chains_cve_entries": 60,
|
|
76
76
|
"chains_cwe_entries": 55,
|
|
77
77
|
"jurisdictions_indexed": 29,
|
|
78
78
|
"handoff_dag_nodes": 42,
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"artifact": "data/cve-catalog.json",
|
|
12
12
|
"path": "data/cve-catalog.json",
|
|
13
13
|
"schema_version": "1.0.0",
|
|
14
|
-
"entry_count":
|
|
14
|
+
"entry_count": 68
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
17
|
"date": "2026-05-18",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"artifact": "data/zeroday-lessons.json",
|
|
28
28
|
"path": "data/zeroday-lessons.json",
|
|
29
29
|
"schema_version": "1.1.0",
|
|
30
|
-
"entry_count":
|
|
30
|
+
"entry_count": 68
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
"date": "2026-05-15",
|
|
@@ -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": 68,
|
|
66
66
|
"sample_keys": [
|
|
67
67
|
"CVE-2025-53773",
|
|
68
68
|
"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": 68,
|
|
242
242
|
"sample_keys": [
|
|
243
243
|
"CVE-2026-31431",
|
|
244
244
|
"CVE-2025-53773",
|
|
@@ -11207,6 +11207,124 @@
|
|
|
11207
11207
|
"rfc_refs": []
|
|
11208
11208
|
}
|
|
11209
11209
|
},
|
|
11210
|
+
"CVE-2026-31635": {
|
|
11211
|
+
"name": "DirtyDecrypt (rxgk page-cache write)",
|
|
11212
|
+
"rwep": 35,
|
|
11213
|
+
"cvss": 7.8,
|
|
11214
|
+
"cisa_kev": false,
|
|
11215
|
+
"referencing_skills": [
|
|
11216
|
+
"kernel-lpe-triage",
|
|
11217
|
+
"coordinated-vuln-disclosure"
|
|
11218
|
+
],
|
|
11219
|
+
"chain": {
|
|
11220
|
+
"cwes": [
|
|
11221
|
+
{
|
|
11222
|
+
"id": "CWE-125",
|
|
11223
|
+
"name": "Out-of-bounds Read",
|
|
11224
|
+
"category": "Memory Safety"
|
|
11225
|
+
},
|
|
11226
|
+
{
|
|
11227
|
+
"id": "CWE-1357",
|
|
11228
|
+
"name": "Reliance on Insufficiently Trustworthy Component",
|
|
11229
|
+
"category": "Supply Chain"
|
|
11230
|
+
},
|
|
11231
|
+
{
|
|
11232
|
+
"id": "CWE-362",
|
|
11233
|
+
"name": "Concurrent Execution using Shared Resource with Improper Synchronization (Race Condition)",
|
|
11234
|
+
"category": "Concurrency"
|
|
11235
|
+
},
|
|
11236
|
+
{
|
|
11237
|
+
"id": "CWE-416",
|
|
11238
|
+
"name": "Use After Free",
|
|
11239
|
+
"category": "Memory Safety"
|
|
11240
|
+
},
|
|
11241
|
+
{
|
|
11242
|
+
"id": "CWE-672",
|
|
11243
|
+
"name": "Operation on a Resource after Expiration or Release",
|
|
11244
|
+
"category": "Memory Safety"
|
|
11245
|
+
},
|
|
11246
|
+
{
|
|
11247
|
+
"id": "CWE-787",
|
|
11248
|
+
"name": "Out-of-bounds Write",
|
|
11249
|
+
"category": "Memory Safety"
|
|
11250
|
+
}
|
|
11251
|
+
],
|
|
11252
|
+
"atlas": [],
|
|
11253
|
+
"d3fend": [
|
|
11254
|
+
{
|
|
11255
|
+
"id": "D3-ASLR",
|
|
11256
|
+
"name": "Address Space Layout Randomization",
|
|
11257
|
+
"tactic": "Harden"
|
|
11258
|
+
},
|
|
11259
|
+
{
|
|
11260
|
+
"id": "D3-EAL",
|
|
11261
|
+
"name": "Executable Allowlisting",
|
|
11262
|
+
"tactic": "Harden"
|
|
11263
|
+
},
|
|
11264
|
+
{
|
|
11265
|
+
"id": "D3-PHRA",
|
|
11266
|
+
"name": "Process Hardware Resource Access",
|
|
11267
|
+
"tactic": "Isolate"
|
|
11268
|
+
},
|
|
11269
|
+
{
|
|
11270
|
+
"id": "D3-PSEP",
|
|
11271
|
+
"name": "Process Segment Execution Prevention",
|
|
11272
|
+
"tactic": "Harden"
|
|
11273
|
+
}
|
|
11274
|
+
],
|
|
11275
|
+
"framework_gaps": [
|
|
11276
|
+
{
|
|
11277
|
+
"id": "CIS-Controls-v8-Control7",
|
|
11278
|
+
"framework": "CIS Controls v8",
|
|
11279
|
+
"control_name": "Continuous Vulnerability Management"
|
|
11280
|
+
},
|
|
11281
|
+
{
|
|
11282
|
+
"id": "ISO-27001-2022-A.8.8",
|
|
11283
|
+
"framework": "ISO/IEC 27001:2022",
|
|
11284
|
+
"control_name": "Management of technical vulnerabilities"
|
|
11285
|
+
},
|
|
11286
|
+
{
|
|
11287
|
+
"id": "NIS2-Art21-patch-management",
|
|
11288
|
+
"framework": "EU NIS2 Directive",
|
|
11289
|
+
"control_name": "Vulnerability handling and disclosure"
|
|
11290
|
+
},
|
|
11291
|
+
{
|
|
11292
|
+
"id": "NIST-800-218-SSDF",
|
|
11293
|
+
"framework": "NIST SP 800-218 (Secure Software Development Framework v1.1)",
|
|
11294
|
+
"control_name": "Secure Software Development Framework"
|
|
11295
|
+
},
|
|
11296
|
+
{
|
|
11297
|
+
"id": "NIST-800-53-SC-8",
|
|
11298
|
+
"framework": "NIST SP 800-53 Rev 5",
|
|
11299
|
+
"control_name": "Transmission Confidentiality and Integrity"
|
|
11300
|
+
},
|
|
11301
|
+
{
|
|
11302
|
+
"id": "NIST-800-53-SI-2",
|
|
11303
|
+
"framework": "NIST SP 800-53 Rev 5",
|
|
11304
|
+
"control_name": "Flaw Remediation"
|
|
11305
|
+
},
|
|
11306
|
+
{
|
|
11307
|
+
"id": "PCI-DSS-4.0-6.3.3",
|
|
11308
|
+
"framework": "PCI DSS 4.0",
|
|
11309
|
+
"control_name": "All system components are protected from known vulnerabilities by installing applicable security patches/updates"
|
|
11310
|
+
},
|
|
11311
|
+
{
|
|
11312
|
+
"id": "SOC2-CC9-vendor-management",
|
|
11313
|
+
"framework": "SOC 2 (AICPA Trust Services Criteria)",
|
|
11314
|
+
"control_name": "Risk Mitigation — Vendor and Business Partner Risk"
|
|
11315
|
+
}
|
|
11316
|
+
],
|
|
11317
|
+
"attack_refs": [
|
|
11318
|
+
"T1068",
|
|
11319
|
+
"T1548.001"
|
|
11320
|
+
],
|
|
11321
|
+
"rfc_refs": [
|
|
11322
|
+
"RFC-4301",
|
|
11323
|
+
"RFC-4303",
|
|
11324
|
+
"RFC-7296"
|
|
11325
|
+
]
|
|
11326
|
+
}
|
|
11327
|
+
},
|
|
11210
11328
|
"CWE-20": {
|
|
11211
11329
|
"name": "Improper Input Validation",
|
|
11212
11330
|
"category": "Validation",
|
|
@@ -12518,6 +12636,7 @@
|
|
|
12518
12636
|
"CVE-2025-62849",
|
|
12519
12637
|
"CVE-2026-0300",
|
|
12520
12638
|
"CVE-2026-31431",
|
|
12639
|
+
"CVE-2026-31635",
|
|
12521
12640
|
"CVE-2026-32202",
|
|
12522
12641
|
"CVE-2026-33825",
|
|
12523
12642
|
"CVE-2026-39884",
|
|
@@ -14688,6 +14807,7 @@
|
|
|
14688
14807
|
"CVE-2025-62849",
|
|
14689
14808
|
"CVE-2026-0300",
|
|
14690
14809
|
"CVE-2026-31431",
|
|
14810
|
+
"CVE-2026-31635",
|
|
14691
14811
|
"CVE-2026-32202",
|
|
14692
14812
|
"CVE-2026-33825",
|
|
14693
14813
|
"CVE-2026-39884",
|
|
@@ -14835,6 +14955,7 @@
|
|
|
14835
14955
|
"CVE-2025-62849",
|
|
14836
14956
|
"CVE-2026-0300",
|
|
14837
14957
|
"CVE-2026-31431",
|
|
14958
|
+
"CVE-2026-31635",
|
|
14838
14959
|
"CVE-2026-32202",
|
|
14839
14960
|
"CVE-2026-33825",
|
|
14840
14961
|
"CVE-2026-39884",
|
|
@@ -15779,6 +15900,7 @@
|
|
|
15779
15900
|
"CVE-2025-62849",
|
|
15780
15901
|
"CVE-2026-0300",
|
|
15781
15902
|
"CVE-2026-31431",
|
|
15903
|
+
"CVE-2026-31635",
|
|
15782
15904
|
"CVE-2026-32202",
|
|
15783
15905
|
"CVE-2026-33825",
|
|
15784
15906
|
"CVE-2026-39884",
|
|
@@ -16321,6 +16443,7 @@
|
|
|
16321
16443
|
"CVE-2026-30615",
|
|
16322
16444
|
"CVE-2026-30623",
|
|
16323
16445
|
"CVE-2026-31431",
|
|
16446
|
+
"CVE-2026-31635",
|
|
16324
16447
|
"CVE-2026-32202",
|
|
16325
16448
|
"CVE-2026-33825",
|
|
16326
16449
|
"CVE-2026-39884",
|
|
@@ -18088,6 +18211,7 @@
|
|
|
18088
18211
|
"CVE-2026-0300",
|
|
18089
18212
|
"CVE-2026-30615",
|
|
18090
18213
|
"CVE-2026-31431",
|
|
18214
|
+
"CVE-2026-31635",
|
|
18091
18215
|
"CVE-2026-42945",
|
|
18092
18216
|
"CVE-2026-45321",
|
|
18093
18217
|
"CVE-2026-46300",
|
|
@@ -150,6 +150,7 @@
|
|
|
150
150
|
"CVE-2025-62849",
|
|
151
151
|
"CVE-2026-0300",
|
|
152
152
|
"CVE-2026-31431",
|
|
153
|
+
"CVE-2026-31635",
|
|
153
154
|
"CVE-2026-33825",
|
|
154
155
|
"CVE-2026-43284",
|
|
155
156
|
"CVE-2026-43500",
|
|
@@ -388,6 +389,7 @@
|
|
|
388
389
|
"version": "v19",
|
|
389
390
|
"cve_refs": [
|
|
390
391
|
"CVE-2026-31431",
|
|
392
|
+
"CVE-2026-31635",
|
|
391
393
|
"CVE-2026-43284"
|
|
392
394
|
]
|
|
393
395
|
},
|
package/data/cve-catalog.json
CHANGED
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"ai_discovery_methodology": {
|
|
56
56
|
"field_added": "2026-05-15",
|
|
57
57
|
"agents_md_target": "Hard Rule #7 — '41% of 2025 zero-days were AI-discovered'. Catalog target rate floor: 0.40.",
|
|
58
|
-
"current_rate": 0.
|
|
58
|
+
"current_rate": 0.176,
|
|
59
59
|
"current_floor_enforced_by_test": 0.13,
|
|
60
60
|
"ladder_to_target": [
|
|
61
61
|
0.13,
|
|
@@ -5619,5 +5619,97 @@
|
|
|
5619
5619
|
],
|
|
5620
5620
|
"discovery_attribution_note": "Composite / tranche entry covering the Big Sleep FFmpeg + ImageMagick AI-tool zero-day finds (Google DeepMind + Project Zero). Operator action: when the per-CVE detail becomes available, split this into individual catalog entries and retire the composite. Anchor entry for Hard Rule #7 (AI-discovery rate).",
|
|
5621
5621
|
"live_patch_tools": []
|
|
5622
|
+
},
|
|
5623
|
+
"CVE-2026-31635": {
|
|
5624
|
+
"name": "DirtyDecrypt (rxgk page-cache write)",
|
|
5625
|
+
"type": "LPE",
|
|
5626
|
+
"cvss_score": 7.8,
|
|
5627
|
+
"cvss_vector": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
|
|
5628
|
+
"cisa_kev": false,
|
|
5629
|
+
"cisa_kev_date": null,
|
|
5630
|
+
"poc_available": true,
|
|
5631
|
+
"poc_description": "V12 security team published a working PoC on 2026-05-17 demonstrating root escalation via missing COW guard in rxgk_decrypt_skb. Same primitive class as Copy Fail / Dirty Frag / Fragnesia.",
|
|
5632
|
+
"ai_discovered": false,
|
|
5633
|
+
"ai_discovery_source": "human_researcher",
|
|
5634
|
+
"ai_discovery_date": "2026-05-09",
|
|
5635
|
+
"ai_discovery_notes": "V12 security team independently rediscovered after April 25 silent patch. Public attribution names V12 as a human-discovered finding; no AI-tool attribution in the published research.",
|
|
5636
|
+
"discovery_attribution_note": "V12 security team rediscovery 2026-05-09; maintainers informed them it was a duplicate of the mainline patch landed 2026-04-25. PoC and writeup published 2026-05-17. No named AI tool — human researcher rediscovery via similarity to Copy Fail / Dirty Frag class. Sources: https://www.bleepingcomputer.com/news/security/exploit-available-for-new-dirtydecrypt-linux-root-escalation-flaw/ and https://www.news4hackers.com/dirty-decrypt-linux-root-escalation-flaw-exploit-uncovered.",
|
|
5637
|
+
"ai_assisted_weaponization": false,
|
|
5638
|
+
"active_exploitation": "theoretical",
|
|
5639
|
+
"affected": "Linux kernel with CONFIG_RXGK enabled (Fedora, Arch Linux, openSUSE Tumbleweed, and any distro tracking upstream master). Distros pinned to older LTS kernels without rxgk are not affected.",
|
|
5640
|
+
"affected_versions": [
|
|
5641
|
+
"linux-kernel >= 6.13 (when rxgk landed) through 2026-04-24 (pre-fix)"
|
|
5642
|
+
],
|
|
5643
|
+
"vector": "Page-cache write primitive in the rxgk_decrypt_skb function — missing copy-on-write guard allows an unprivileged local user to corrupt page-cache pages backing privileged binaries. Same primitive class as the Copy Fail (CVE-2026-31431) / Dirty Frag (CVE-2026-43284/43500) / Fragnesia (CVE-2026-46300) cluster.",
|
|
5644
|
+
"complexity": "low",
|
|
5645
|
+
"complexity_notes": "Deterministic, no race condition. PoC is reliable on any kernel with CONFIG_RXGK=y.",
|
|
5646
|
+
"patch_available": true,
|
|
5647
|
+
"patch_required_reboot": true,
|
|
5648
|
+
"live_patch_available": false,
|
|
5649
|
+
"live_patch_tools": [],
|
|
5650
|
+
"live_patch_notes": "No kpatch / ksplice / kgraft entry visible for the rxgk subsystem as of 2026-05-18. Reboot is the only resolution.",
|
|
5651
|
+
"framework_control_gaps": {
|
|
5652
|
+
"NIST-800-53-SI-2": "Standard 30-day patch SLA is exploitation window for a public-PoC kernel LPE with deterministic primitive. Same gap as CVE-2026-31431.",
|
|
5653
|
+
"ISO-27001-2022-A.8.8": "Appropriate timescales undefined; 30-day default is unsafe for class-of-bug PoC publications.",
|
|
5654
|
+
"NIS2-Art21-availability": "Network-controls section is silent on kernel-LPE — IPsec / kTLS / firewall are not compensating controls for a local page-cache write."
|
|
5655
|
+
},
|
|
5656
|
+
"atlas_refs": [],
|
|
5657
|
+
"attack_refs": [
|
|
5658
|
+
"T1068",
|
|
5659
|
+
"T1548.001"
|
|
5660
|
+
],
|
|
5661
|
+
"rwep_score": 35,
|
|
5662
|
+
"rwep_factors": {
|
|
5663
|
+
"cisa_kev": 0,
|
|
5664
|
+
"poc_available": 20,
|
|
5665
|
+
"ai_factor": 0,
|
|
5666
|
+
"active_exploitation": 5,
|
|
5667
|
+
"blast_radius": 25,
|
|
5668
|
+
"patch_available": -15,
|
|
5669
|
+
"live_patch_available": 0,
|
|
5670
|
+
"reboot_required": 0
|
|
5671
|
+
},
|
|
5672
|
+
"cwe_refs": [
|
|
5673
|
+
"CWE-362",
|
|
5674
|
+
"CWE-264"
|
|
5675
|
+
],
|
|
5676
|
+
"source_verified": "2026-05-18",
|
|
5677
|
+
"verification_sources": [
|
|
5678
|
+
"https://www.bleepingcomputer.com/news/security/exploit-available-for-new-dirtydecrypt-linux-root-escalation-flaw/",
|
|
5679
|
+
"https://www.news4hackers.com/dirty-decrypt-linux-root-escalation-flaw-exploit-uncovered",
|
|
5680
|
+
"https://cybertools4u.com/cyber-news/new-dirtydecrypt-flaw-exposes-linux-systems-to-root-escalati-2026-05-18"
|
|
5681
|
+
],
|
|
5682
|
+
"vendor_advisories": [
|
|
5683
|
+
{
|
|
5684
|
+
"vendor": "kernel.org",
|
|
5685
|
+
"advisory_id": null,
|
|
5686
|
+
"url": "https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-31635",
|
|
5687
|
+
"severity": "high",
|
|
5688
|
+
"published_date": "2026-04-25"
|
|
5689
|
+
},
|
|
5690
|
+
{
|
|
5691
|
+
"vendor": "Fedora",
|
|
5692
|
+
"advisory_id": null,
|
|
5693
|
+
"url": "https://bodhi.fedoraproject.org/updates/?search=CVE-2026-31635",
|
|
5694
|
+
"severity": "important",
|
|
5695
|
+
"published_date": "2026-04-26"
|
|
5696
|
+
},
|
|
5697
|
+
{
|
|
5698
|
+
"vendor": "Arch Linux",
|
|
5699
|
+
"advisory_id": null,
|
|
5700
|
+
"url": "https://security.archlinux.org/CVE-2026-31635",
|
|
5701
|
+
"severity": "high",
|
|
5702
|
+
"published_date": "2026-04-26"
|
|
5703
|
+
},
|
|
5704
|
+
{
|
|
5705
|
+
"vendor": "openSUSE",
|
|
5706
|
+
"advisory_id": null,
|
|
5707
|
+
"url": "https://www.suse.com/security/cve/CVE-2026-31635.html",
|
|
5708
|
+
"severity": "important",
|
|
5709
|
+
"published_date": "2026-04-26"
|
|
5710
|
+
}
|
|
5711
|
+
],
|
|
5712
|
+
"last_updated": "2026-05-18",
|
|
5713
|
+
"intake_gap_note": "Catalog entry added 2026-05-18 via manual operator triage AFTER public PoC. The daily exceptd-threat-intake routine missed this CVE — kernel.org Atom feed window had rolled past the 2026-04-25 silent-patch commit by the time the PoC published on 2026-05-17, and the V12 rediscovery report went to maintainers privately rather than to oss-security@openwall. The v0.13.14 release adds a vendor-security-blog source (Microsoft / Sysdig / Trail of Bits) to close this class of gap. See feeds_into supply-chain-recovery + framework playbooks for the chained handling."
|
|
5622
5714
|
}
|
|
5623
5715
|
}
|
package/data/cwe-catalog.json
CHANGED
|
@@ -1223,6 +1223,7 @@
|
|
|
1223
1223
|
"CVE-2025-4919",
|
|
1224
1224
|
"CVE-2026-0300",
|
|
1225
1225
|
"CVE-2026-31431",
|
|
1226
|
+
"CVE-2026-31635",
|
|
1226
1227
|
"CVE-2026-42945",
|
|
1227
1228
|
"CVE-2026-46300",
|
|
1228
1229
|
"CVE-2026-46333"
|
|
@@ -1885,6 +1886,7 @@
|
|
|
1885
1886
|
"CVE-2025-62849",
|
|
1886
1887
|
"CVE-2026-0300",
|
|
1887
1888
|
"CVE-2026-31431",
|
|
1889
|
+
"CVE-2026-31635",
|
|
1888
1890
|
"CVE-2026-32202",
|
|
1889
1891
|
"CVE-2026-33825",
|
|
1890
1892
|
"CVE-2026-42897",
|
|
@@ -5293,7 +5295,8 @@
|
|
|
5293
5295
|
"status": "open",
|
|
5294
5296
|
"opened_at": "2026-05-18",
|
|
5295
5297
|
"evidence_cves": [
|
|
5296
|
-
"CVE-2025-8671"
|
|
5298
|
+
"CVE-2025-8671",
|
|
5299
|
+
"CVE-2026-31635"
|
|
5297
5300
|
],
|
|
5298
5301
|
"theater_test": {
|
|
5299
5302
|
"claim": "We are compliant with Art-21-availability (Availability and resilience risk-management measures) because we follow the documented requirement: Article 21(2)(c-f) — measures for business continuity, supply-chain security, vulnerability handling, and the effectiveness of cybersecurity risk-management measures. The availability angle covers bac",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"rebuild_after_days": 365,
|
|
18
18
|
"note": "Per-entry last_verified governs decay. Skills depending on this catalog must check entry freshness before high-stakes use."
|
|
19
19
|
},
|
|
20
|
-
"entry_count":
|
|
20
|
+
"entry_count": 68
|
|
21
21
|
},
|
|
22
22
|
"CVE-2026-31431": {
|
|
23
23
|
"name": "Copy Fail",
|
|
@@ -4666,5 +4666,61 @@
|
|
|
4666
4666
|
"ai_discovery_source": "vendor_research",
|
|
4667
4667
|
"ai_discovery_date": "2025-08-04",
|
|
4668
4668
|
"ai_assist_factor": "very_high"
|
|
4669
|
+
},
|
|
4670
|
+
"CVE-2026-31635": {
|
|
4671
|
+
"name": "DirtyDecrypt (rxgk page-cache write)",
|
|
4672
|
+
"lesson_date": "2026-05-18",
|
|
4673
|
+
"attack_vector": {
|
|
4674
|
+
"description": "Missing copy-on-write guard in the Linux kernel rxgk_decrypt_skb function. Unprivileged local user writes to a read-only page via the page-cache CoW path, corrupting kernel memory and escalating to root. Same primitive class as Copy Fail / Dirty Frag / Fragnesia.",
|
|
4675
|
+
"privileges_required": "unprivileged local user; CONFIG_RXGK=y on the running kernel",
|
|
4676
|
+
"complexity": "deterministic, no race condition (PoC published 2026-05-17 by V12 security team)",
|
|
4677
|
+
"ai_factor": "Not AI-discovered. V12 security team rediscovered after the 2026-04-25 silent patch had already landed; the rediscovery is a parallel-discovery event, not an AI-assisted find. The Copy-Fail-class detection method (page-cache CoW guard absence) is what surfaces these patterns under human review now that operators know to look for them."
|
|
4678
|
+
},
|
|
4679
|
+
"framework_coverage": {
|
|
4680
|
+
"NIST-800-53-SI-2": {
|
|
4681
|
+
"covered": true,
|
|
4682
|
+
"adequate": false,
|
|
4683
|
+
"gap": "30-day SLA is exploitation window for class-of-bug PoC publications."
|
|
4684
|
+
},
|
|
4685
|
+
"ISO-27001-2022-A.8.8": {
|
|
4686
|
+
"covered": true,
|
|
4687
|
+
"adequate": false,
|
|
4688
|
+
"gap": "Appropriate timescales undefined; 30-day default is unsafe for kernel-LPE PoCs."
|
|
4689
|
+
},
|
|
4690
|
+
"NIS2-Art21-availability": {
|
|
4691
|
+
"covered": false,
|
|
4692
|
+
"adequate": false,
|
|
4693
|
+
"gap": "Network-controls section silent on kernel-LPE; encryption-in-transit not a compensating control."
|
|
4694
|
+
}
|
|
4695
|
+
},
|
|
4696
|
+
"new_control_requirements": [
|
|
4697
|
+
{
|
|
4698
|
+
"id": "NEW-CTRL-001",
|
|
4699
|
+
"name": "CISA-KEV-RESPONSE-SLA",
|
|
4700
|
+
"description": "4-hour SLA on public-PoC kernel LPEs even without KEV listing.",
|
|
4701
|
+
"evidence": "CVE-2026-31635 — PoC published before KEV listing.",
|
|
4702
|
+
"gap_closes": [
|
|
4703
|
+
"NIST-800-53-SI-2"
|
|
4704
|
+
]
|
|
4705
|
+
},
|
|
4706
|
+
{
|
|
4707
|
+
"id": "NEW-CTRL-072",
|
|
4708
|
+
"name": "PRIMARY-SOURCE-INTAKE-VENDOR-BLOG-COVERAGE",
|
|
4709
|
+
"description": "Threat-intake pipelines must cover vendor security blogs (Microsoft / Sysdig / Trail of Bits / Project Zero) in addition to advisory feeds (Qualys / RHSA / USN / ZDI / kernel.org / oss-security / JFrog / CISA). Silent kernel patches with delayed-disclosure research publications fall through advisory-only feeds — vendor blogs are the canonical signal channel for that class.",
|
|
4710
|
+
"evidence": "CVE-2026-31635 — patched 2026-04-25 in mainline, V12 PoC published 2026-05-17 via BleepingComputer / news4hackers, fell through 8 primary-source feeds because the kernel.org Atom rolling window expired and oss-security never received the report.",
|
|
4711
|
+
"gap_closes": [
|
|
4712
|
+
"INTAKE-FEED-COVERAGE-GAP"
|
|
4713
|
+
]
|
|
4714
|
+
}
|
|
4715
|
+
],
|
|
4716
|
+
"compliance_exposure_score": {
|
|
4717
|
+
"percent_audit_passing_orgs_still_exposed": 35,
|
|
4718
|
+
"basis": "CONFIG_RXGK is only enabled on Fedora / Arch / openSUSE Tumbleweed kernels — enterprise distros (RHEL / Ubuntu LTS / SUSE Enterprise) on older kernel branches without rxgk are NOT affected. Exposure concentrated in dev/research workstations and bleeding-edge servers.",
|
|
4719
|
+
"theater_pattern": "patch_management"
|
|
4720
|
+
},
|
|
4721
|
+
"ai_discovered_zeroday": false,
|
|
4722
|
+
"ai_discovery_source": "human_researcher",
|
|
4723
|
+
"ai_discovery_date": "2026-05-09",
|
|
4724
|
+
"ai_assist_factor": "low"
|
|
4669
4725
|
}
|
|
4670
4726
|
}
|
package/lib/source-advisories.js
CHANGED
|
@@ -105,6 +105,41 @@ const FEEDS = [
|
|
|
105
105
|
kind: 'rss',
|
|
106
106
|
description: 'CISA cybersecurity advisories feed — federal-vendor coordinated disclosures (separate from KEV which captures only exploited-in-the-wild items)',
|
|
107
107
|
},
|
|
108
|
+
// v0.13.14 additions — closes the "silent kernel patch + delayed-research-
|
|
109
|
+
// disclosure" intake gap surfaced by DirtyDecrypt (CVE-2026-31635). That
|
|
110
|
+
// CVE was patched in mainline 2026-04-25, the kernel.org Atom-feed rolling
|
|
111
|
+
// window rotated past the fix commit before the daily intake noticed, the
|
|
112
|
+
// V12 rediscovery on 2026-05-09 went to maintainers privately rather than
|
|
113
|
+
// to oss-security@openwall, and the PoC publication on 2026-05-17 surfaced
|
|
114
|
+
// on vendor security blogs (Microsoft / Sysdig / Trail of Bits) that the
|
|
115
|
+
// 8-feed primary-source set did not cover. Vendor security blogs are the
|
|
116
|
+
// canonical signal channel for "kernel-class CVE patched silently, then
|
|
117
|
+
// class-of-bug research published weeks later" — adding them closes the
|
|
118
|
+
// class without polluting the catalog with news-aggregator noise.
|
|
119
|
+
{
|
|
120
|
+
name: 'microsoft-security-blog',
|
|
121
|
+
url: 'https://www.microsoft.com/en-us/security/blog/feed/',
|
|
122
|
+
kind: 'rss',
|
|
123
|
+
description: 'Microsoft Security Blog — covers Linux-kernel CVE intel (Dirty Frag analysis 2026-05-08, Windows + cross-platform research). Vendor publishes ahead of standard advisory feeds for class-of-bug regressions.',
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
name: 'sysdig-blog',
|
|
127
|
+
url: 'https://www.sysdig.com/blog/feed/',
|
|
128
|
+
kind: 'rss',
|
|
129
|
+
description: 'Sysdig research blog — kernel-LPE detection writeups (Copy Fail, Dirty Frag CVE-2026-43284 / 43500). Names CVE IDs in titles, often before NVD enrichment completes.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
name: 'trail-of-bits-blog',
|
|
133
|
+
url: 'https://blog.trailofbits.com/feed/',
|
|
134
|
+
kind: 'rss',
|
|
135
|
+
description: 'Trail of Bits research blog — MCP / supply-chain / AI-tool security disclosures with CVE assignments. Anchored CVE-2026-30615 (Windsurf MCP) and the MCP tool-poisoning class.',
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
name: 'embrace-the-red',
|
|
139
|
+
url: 'https://embracethered.com/blog/index.xml',
|
|
140
|
+
kind: 'rss',
|
|
141
|
+
description: 'Embrace the Red (Johann Rehberger) — AI-tool prompt-injection + agentic-AI research. Anchored CVE-2025-53773 (Copilot YOLO mode) and the agentic-IDE host-execution class.',
|
|
142
|
+
},
|
|
108
143
|
];
|
|
109
144
|
|
|
110
145
|
// Permissive CVE-ID matcher. The official format is CVE-YYYY-NNNN+ but
|
package/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "exceptd-security",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.15",
|
|
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": "lXhZgoIrrVloO3XaTvo/43AxZn4mwErstd7DR0O/oVhD3AOGODM4HqrageYEou9WKOdMEGP5mJNTjJsXdP5NDA==",
|
|
56
|
-
"signed_at": "2026-05-
|
|
56
|
+
"signed_at": "2026-05-19T01:01:20.307Z",
|
|
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": "OI+pADcTrRHZB8UTq9G89cNPvvYf1A+4rR+oJGTCVGXWoxPY9+bKW7FqCPQBb+rnxde/gwBX0+vxN/Nn7XwgDA==",
|
|
120
|
-
"signed_at": "2026-05-
|
|
120
|
+
"signed_at": "2026-05-19T01:01:20.310Z",
|
|
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": "fqnvFL75sJgJJV6LUt6qHld4PsMJiPB1r+M905mkr8mUkByE0pPZfK1voS/r/wh2O1+1j2zzo0OkAw0pCk37Aw==",
|
|
183
|
-
"signed_at": "2026-05-
|
|
183
|
+
"signed_at": "2026-05-19T01:01:20.310Z",
|
|
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": "g+vvEyHA4LllzMLuyY2Cc6h7hSWeQbfDqGx629Yb3/kQ8MsQW0moypnxUMA50KBetKMd0+WfnbC4H1DvxJtgAg==",
|
|
229
|
-
"signed_at": "2026-05-
|
|
229
|
+
"signed_at": "2026-05-19T01:01:20.311Z"
|
|
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": "N7vMeWMdMutAAZ49QoPW7lMA1WRjnTRezh9oLBUfAgetZBcHHd14Rg9uqWTkCjilXxhw/fyQrWPjraD2IRg4AQ==",
|
|
260
|
-
"signed_at": "2026-05-
|
|
260
|
+
"signed_at": "2026-05-19T01:01:20.311Z"
|
|
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": "9DFiNgH4Nl21B90MjL5Z9eJ74Z8zR60n+EZ6RStCTe6YcLg7P5K8iiuQ4u6q0hxsVewKZmS60SqZL9UEpeGgCg==",
|
|
289
|
-
"signed_at": "2026-05-
|
|
289
|
+
"signed_at": "2026-05-19T01:01:20.312Z"
|
|
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": "AijYcd8FuFEDdcx+mzIHVpQ0uh5LpYDZ0rIgbudM6WIvsSDRkBmE65gI8uKgHYdGTEAQGLkamkLaTtdwcx0YAQ==",
|
|
326
|
-
"signed_at": "2026-05-
|
|
326
|
+
"signed_at": "2026-05-19T01:01:20.312Z",
|
|
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": "ba7EtmQAML+H+wn7UyH7yGnK30gT79SlxwO+jKCaSBzctOZ/OVex3wFVz/Yi9kPPPJ6Z5EEhBl6rWJrCr4uOBg==",
|
|
383
|
-
"signed_at": "2026-05-
|
|
383
|
+
"signed_at": "2026-05-19T01:01:20.313Z",
|
|
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": "V7v4r2RzeD7ICZUABLfSQTEmSQUlWegiXoo1iGvnrmQtw/nquZNRPTa3QsKQD1i7IxEg7NmJhCX6NLEz4eV0Dg==",
|
|
418
|
-
"signed_at": "2026-05-
|
|
418
|
+
"signed_at": "2026-05-19T01:01:20.313Z",
|
|
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": "xjtEOaQiBjq7XBD7nCpU59egkLNgBDwfvY7GMxEe+wOyUM4GBMHK2O3khanVEaCgWfu1NNoTMPsDCejJ+D64Ag==",
|
|
446
|
-
"signed_at": "2026-05-
|
|
446
|
+
"signed_at": "2026-05-19T01:01:20.314Z"
|
|
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": "oYsSk35N2Uzq7MRofACykylcVwkgPhI4luWZ14vmQT+gUKLyZiKVOUJbe1+7lGl6BYPRN0sUDQ0f7S5Eu5w2Ag==",
|
|
478
|
-
"signed_at": "2026-05-
|
|
478
|
+
"signed_at": "2026-05-19T01:01:20.314Z"
|
|
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": "01faIrHr8xeZU0USNoWiDQBUqu/yu7KHskZdi48q5eg811Tu6YwCopHezIoeuPabaH46M8Qve8ll/7qGpFGEBA==",
|
|
505
|
-
"signed_at": "2026-05-
|
|
505
|
+
"signed_at": "2026-05-19T01:01:20.314Z"
|
|
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": "vhc3wuQEro/86s1ro2b/KakUXg8QVnySYTBqA7ebzv9oeR2HYO5bvGEJp3oOHWtL37JDqcCAHYadSN/qxIyCCA==",
|
|
557
|
-
"signed_at": "2026-05-
|
|
557
|
+
"signed_at": "2026-05-19T01:01:20.315Z",
|
|
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": "8P1I6i7N0sFHloR/hY4NIWictk5Irrze4xPjVQEH5BtBrS2OCCq/YzCpUuS+XexhWiIpyLo2CA1ecbllnWlNBQ==",
|
|
604
|
-
"signed_at": "2026-05-
|
|
604
|
+
"signed_at": "2026-05-19T01:01:20.315Z"
|
|
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": "SdTtvkaxdgcHkm8ph7YX+2VMihw2iBMy434JGf5TxCFQq1AfNsQcowK+7FPDquEM47a1KTvS3ytxaJxpHuOqDw==",
|
|
641
|
-
"signed_at": "2026-05-
|
|
641
|
+
"signed_at": "2026-05-19T01:01:20.315Z",
|
|
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": "WAu5fRirzSOcnnZsTx2d/JJZwa/LPpXCi+31qATTGLmoNuhyy81k3ooPe9kCM3E0CLMtvTePg9DagYqBninZDQ==",
|
|
676
|
-
"signed_at": "2026-05-
|
|
676
|
+
"signed_at": "2026-05-19T01:01:20.316Z"
|
|
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": "pKVlOkHybXjj5Llpm4VQtz+b/qTxE2vWsoDx/aie5z0rA2qWMmNNiWZl+b8/oO4Ghu2TIOdy/+cX4YlTrIg7DA==",
|
|
747
|
-
"signed_at": "2026-05-
|
|
747
|
+
"signed_at": "2026-05-19T01:01:20.316Z"
|
|
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": "uf8JFFve9Q7QXdyO8yc11SBFndVGEKQkMKTSZEJSCzj33HRvMGhV184JSpHUy5Vce284HUcVC1R73aOjbc0iBg==",
|
|
807
|
-
"signed_at": "2026-05-
|
|
807
|
+
"signed_at": "2026-05-19T01:01:20.316Z"
|
|
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": "y6N/9z4AwGPfhcNWVk1zEVSMBpn+3YTmIaIXAin4Q9yREAupKDey3ch9s+Y2LjFSS/SLLzh4H/Y8rDs2bKxFCg==",
|
|
882
|
-
"signed_at": "2026-05-
|
|
882
|
+
"signed_at": "2026-05-19T01:01:20.317Z"
|
|
883
883
|
},
|
|
884
884
|
{
|
|
885
885
|
"name": "supply-chain-integrity",
|
|
@@ -956,7 +956,7 @@
|
|
|
956
956
|
"OpenSSF model-signing — emerging Sigstore-based signing standard for ML model weights; track for production adoption"
|
|
957
957
|
],
|
|
958
958
|
"signature": "c3OewLIMenKMWba5eKOwfa1OD8pp6tU9o+xFC/KbIcIPUhtZAO+R5/uoOhZXiwhjmg2GzHU2f8ROpBP3p0dxBA==",
|
|
959
|
-
"signed_at": "2026-05-
|
|
959
|
+
"signed_at": "2026-05-19T01:01:20.317Z"
|
|
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": "gqF8eU3VBrZhO2WnlcqKa7wm1d2mmWtvpbmx0kNCgHojNV+qEt+Ij84RO6bZvaUqhfYPWizWL79Fa4DL0curAQ==",
|
|
1016
|
-
"signed_at": "2026-05-
|
|
1016
|
+
"signed_at": "2026-05-19T01:01:20.317Z"
|
|
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": "Wv5hGMeHjlaQK1zwicVCA7AvdKgJBgvcjdpGM9Ywahh9tagAKhbkOjybowDQZzu7OZ3bDkbh6pBYc1Sdwr6NAA==",
|
|
1083
|
-
"signed_at": "2026-05-
|
|
1083
|
+
"signed_at": "2026-05-19T01:01:20.318Z"
|
|
1084
1084
|
},
|
|
1085
1085
|
{
|
|
1086
1086
|
"name": "ot-ics-security",
|
|
@@ -1136,7 +1136,7 @@
|
|
|
1136
1136
|
"d3fend_refs": [],
|
|
1137
1137
|
"last_threat_review": "2026-05-11",
|
|
1138
1138
|
"signature": "2Z8iAEf+dzdBpE6InLL6hHT7aGUNHJOlgyddDsdNb+xxjC2TJz+sXIRsHHhpaPuFMVf38VJSD5SqL1cwB+5lDw==",
|
|
1139
|
-
"signed_at": "2026-05-
|
|
1139
|
+
"signed_at": "2026-05-19T01:01:20.318Z"
|
|
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": "TITt0dI7T6nifFEdiOaGSDzIdrpjBCtuwyNcQdZm4P/nm1yLPI2+7T3SXWNeCTfZuMGiBBhuGETuawH21lBBBA==",
|
|
1191
|
-
"signed_at": "2026-05-
|
|
1191
|
+
"signed_at": "2026-05-19T01:01:20.318Z"
|
|
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": "0c5JzFhjzSU+Em8pWkez62TtAs2ePLnY0Na/dz9CxkU5A7U0s4B7bynpXuz8DxsQZd75/o4BkaYQegp7d/ktBw==",
|
|
1241
|
-
"signed_at": "2026-05-
|
|
1241
|
+
"signed_at": "2026-05-19T01:01:20.319Z"
|
|
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": "vIm/lDjC/bx7tHXWWEK2foOmiqdr7UuUuWPo75h6yV9ZteEF6kzNpWPbQ1KRThUm+2/XOBT+iwJ5Ecf2WDpDAQ==",
|
|
1315
|
-
"signed_at": "2026-05-
|
|
1315
|
+
"signed_at": "2026-05-19T01:01:20.319Z"
|
|
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": "IIXnkZ5ZNqFwOto5KfytADTLLZLoyXNZACD1ORZ40P1HUAQxe6u2uyXFzzsfuob4Uy06jNkRGr2FFgCphUH1Cw==",
|
|
1365
|
-
"signed_at": "2026-05-
|
|
1365
|
+
"signed_at": "2026-05-19T01:01:20.319Z"
|
|
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": "2JPsumXuTOrUhEGcfb03Q69zcW1hw+MTlNoycZ7RSNCHDw7jKaDlEfYmg0Px/aJp2hIt9qDGFq+cpYdfL+tfAQ==",
|
|
1425
|
-
"signed_at": "2026-05-
|
|
1425
|
+
"signed_at": "2026-05-19T01:01:20.320Z"
|
|
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": "xz0p47mECulSsdRdioeqi6K7KEnyXd+SWNtFra8JQh7g88CV9ycQeSPTTjiNpWaPreDAmYhRM83jupC7EEdUAg==",
|
|
1506
|
-
"signed_at": "2026-05-
|
|
1506
|
+
"signed_at": "2026-05-19T01:01:20.320Z"
|
|
1507
1507
|
},
|
|
1508
1508
|
{
|
|
1509
1509
|
"name": "sector-federal-government",
|
|
@@ -1572,7 +1572,7 @@
|
|
|
1572
1572
|
"Australia PSPF 2024 revision and ISM quarterly updates — track for Essential Eight Maturity Level requirements for federal entities"
|
|
1573
1573
|
],
|
|
1574
1574
|
"signature": "PebiIg9j8Lm8yF8wIH2w7Pj75B5NaqQYcRZJ16RtKHC37tEG6THbo714JOaek45ifTMBhzNPwZ6Cy32ae4VdAQ==",
|
|
1575
|
-
"signed_at": "2026-05-
|
|
1575
|
+
"signed_at": "2026-05-19T01:01:20.321Z"
|
|
1576
1576
|
},
|
|
1577
1577
|
{
|
|
1578
1578
|
"name": "sector-energy",
|
|
@@ -1637,7 +1637,7 @@
|
|
|
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
1639
|
"signature": "4KOVUlWWuhOWIV8ilCEOOuKV/s9CbIvNo4crB1oSf+G5KQ8KkUHxEn6KzEJX/NAwk5bOA1k58XykXvUun2YJDQ==",
|
|
1640
|
-
"signed_at": "2026-05-
|
|
1640
|
+
"signed_at": "2026-05-19T01:01:20.321Z"
|
|
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": "JWVxKFoKrbX4d+Tko1d4OBdwyg25MfFFKn4CT6E/CzH+YwnU3T6Y76uBQIKg3+gIGTvPduqyvQwQQ5FxKDuPBw==",
|
|
1726
|
-
"signed_at": "2026-05-
|
|
1726
|
+
"signed_at": "2026-05-19T01:01:20.321Z"
|
|
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": "LgEIz6dmHxnlV3ay8BxqH7nXt+lWB8AsWcf5fPI40uuljs8+/dWNb4dCuB5s4SWRPX/64LoAXMOyzBvlt7QNCw==",
|
|
1795
|
-
"signed_at": "2026-05-
|
|
1795
|
+
"signed_at": "2026-05-19T01:01:20.322Z"
|
|
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": "fu8QqobbuyqDqmuo3iAigJmH2wUzS5AbMNNB7BrY8qAQ2KGHmrVIn4p53vUjF58bEzo6W2qAIldHla5p1sQCDw==",
|
|
1876
|
-
"signed_at": "2026-05-
|
|
1876
|
+
"signed_at": "2026-05-19T01:01:20.322Z"
|
|
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": "Z9KNlVRL9UWtObXDr3FmfdG+bBQGaUKEAv8WbZPRhwQUafx1mNp/h7CLsASeOQmGime00XN7fbO25oA18vYVAA==",
|
|
1938
|
-
"signed_at": "2026-05-
|
|
1938
|
+
"signed_at": "2026-05-19T01:01:20.322Z"
|
|
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": "2xuFDRLVjmzsbuipOc0HlUCjQ9B5lbB3L2fh5sPD9l0KqHmV1w1MuU9293ODxdTtqhSEJKkA5ghlbr8esFnlBw==",
|
|
2009
|
-
"signed_at": "2026-05-
|
|
2009
|
+
"signed_at": "2026-05-19T01:01:20.323Z"
|
|
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": "6/9Ehyx49Rr/o5Tp9oQ3cfHa2WhKYtLXJp0akoDbRC1RSCxZVbkKaW7/5/IkdgCQMiJivI/Q0g0Bq/5q/UUZAA==",
|
|
2071
|
-
"signed_at": "2026-05-
|
|
2071
|
+
"signed_at": "2026-05-19T01:01:20.323Z"
|
|
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": "+5FiwJFRq08x2oXejTO1Nw6Cd+EzOcrwAG2xNrngJ8vHPDXqFgGAjTAJuXrNl7QblTfSLQ+xvoAziBly56/eDg==",
|
|
2151
|
-
"signed_at": "2026-05-
|
|
2151
|
+
"signed_at": "2026-05-19T01:01:20.323Z"
|
|
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": "rK+WnuS+9tqEABmwc0jO/PEmxcLjG1/tmUb897HsClQeKzf+TQOlwBE+OsbtuKxpjYNwur62Xxs3TxObkwm8Cw==",
|
|
2204
|
-
"signed_at": "2026-05-
|
|
2204
|
+
"signed_at": "2026-05-19T01:01:20.324Z"
|
|
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": "5BXLeR3lzvdRs2nSzN/rOE17ur2sMa44gQvY8+OWvazm5Vh6lNAaDDDoExB2/hlg6k7v1KIKwA1MPAKj6qB/CQ==",
|
|
2272
|
-
"signed_at": "2026-05-
|
|
2272
|
+
"signed_at": "2026-05-19T01:01:20.324Z"
|
|
2273
2273
|
},
|
|
2274
2274
|
{
|
|
2275
2275
|
"name": "cloud-iam-incident",
|
|
@@ -2349,7 +2349,7 @@
|
|
|
2349
2349
|
],
|
|
2350
2350
|
"last_threat_review": "2026-05-15",
|
|
2351
2351
|
"signature": "e/kij7GtKaytROyIj7V5RH+FC9WtmVFzrmG2kIlNDNn29ep/CRNlIQKwXLpzo/81AIf634pmdr1qy/+vwIuUDA==",
|
|
2352
|
-
"signed_at": "2026-05-
|
|
2352
|
+
"signed_at": "2026-05-19T01:01:20.324Z"
|
|
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": "ew9Kglc9fAZzbn0ZIfGP7WSK/j4eV2VhSvpy+s5bEfNEVYIMa2kZjnGBapgUsyGDLes9H9K2ovjQyX17+GKiBw==",
|
|
2433
|
-
"signed_at": "2026-05-
|
|
2433
|
+
"signed_at": "2026-05-19T01:01:20.325Z"
|
|
2434
2434
|
}
|
|
2435
2435
|
],
|
|
2436
2436
|
"manifest_signature": {
|
|
2437
2437
|
"algorithm": "Ed25519",
|
|
2438
|
-
"signature_base64": "
|
|
2438
|
+
"signature_base64": "OhJHwjT6fo3VOwol5oVjVlFejpro8H/08ToRCDQ1J+kR4sA32JogPPqioQDPuUKniKFHVU6QFtNJmcy5Pf8AAw=="
|
|
2439
2439
|
}
|
|
2440
2440
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blamejs/exceptd-skills",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.15",
|
|
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:4367945a-81ef-43df-8413-115de248d533",
|
|
5
5
|
"version": 1,
|
|
6
6
|
"metadata": {
|
|
7
|
-
"timestamp": "
|
|
7
|
+
"timestamp": "2061-11-01T16:14:18.000Z",
|
|
8
8
|
"tools": [
|
|
9
9
|
{
|
|
10
10
|
"vendor": "blamejs",
|
|
11
11
|
"name": "scripts/refresh-sbom.js",
|
|
12
|
-
"version": "0.13.
|
|
12
|
+
"version": "0.13.15"
|
|
13
13
|
}
|
|
14
14
|
],
|
|
15
15
|
"component": {
|
|
16
|
-
"bom-ref": "pkg:npm/@blamejs/exceptd-skills@0.13.
|
|
16
|
+
"bom-ref": "pkg:npm/@blamejs/exceptd-skills@0.13.15",
|
|
17
17
|
"type": "application",
|
|
18
18
|
"name": "@blamejs/exceptd-skills",
|
|
19
|
-
"version": "0.13.
|
|
19
|
+
"version": "0.13.15",
|
|
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.13.
|
|
28
|
+
"purl": "pkg:npm/%40blamejs/exceptd-skills@0.13.15",
|
|
29
29
|
"hashes": [
|
|
30
30
|
{
|
|
31
31
|
"alg": "SHA-256",
|
|
32
|
-
"content": "
|
|
32
|
+
"content": "845e2f37d4ffd197efcd87efdf27b616d839024aa2a5ca2e5da87a4a9726a062"
|
|
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.13.
|
|
38
|
+
"url": "https://www.npmjs.com/package/@blamejs/exceptd-skills/v/0.13.15"
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
"type": "vcs",
|
|
@@ -86,11 +86,11 @@
|
|
|
86
86
|
"hashes": [
|
|
87
87
|
{
|
|
88
88
|
"alg": "SHA-256",
|
|
89
|
-
"content": "
|
|
89
|
+
"content": "93bf718cb20f29940458ab1b4bb31c3b3d894e49a1f080a97c2e1f876e1411d5"
|
|
90
90
|
},
|
|
91
91
|
{
|
|
92
92
|
"alg": "SHA3-512",
|
|
93
|
-
"content": "
|
|
93
|
+
"content": "c8d9d8ea0e167520dba7e444c0c2fd549d0d90b094680c3ca5b6089896310573a59a6aaf41af9dd52cdd8f38e498a84c1eaa3e9660b80c3d6f8f824162cedd0c"
|
|
94
94
|
}
|
|
95
95
|
]
|
|
96
96
|
},
|
|
@@ -116,11 +116,11 @@
|
|
|
116
116
|
"hashes": [
|
|
117
117
|
{
|
|
118
118
|
"alg": "SHA-256",
|
|
119
|
-
"content": "
|
|
119
|
+
"content": "e49c9c795ad2898e8aef1316c704b54a4aa1f0dacfc2d34de9969aac74c82dcc"
|
|
120
120
|
},
|
|
121
121
|
{
|
|
122
122
|
"alg": "SHA3-512",
|
|
123
|
-
"content": "
|
|
123
|
+
"content": "3d6948cf32ce65b650da24234d965d666113bf1e77674deb5b276df3c8cba95e68ba882a2cf014df613246e1010fdd123b59b81b480d2a28c3089016f89efba6"
|
|
124
124
|
}
|
|
125
125
|
]
|
|
126
126
|
},
|
|
@@ -176,11 +176,11 @@
|
|
|
176
176
|
"hashes": [
|
|
177
177
|
{
|
|
178
178
|
"alg": "SHA-256",
|
|
179
|
-
"content": "
|
|
179
|
+
"content": "9f291d7e594c1058f9e27e15298e27f3d6a4bcced0f4ded5d09e427fa64fb966"
|
|
180
180
|
},
|
|
181
181
|
{
|
|
182
182
|
"alg": "SHA3-512",
|
|
183
|
-
"content": "
|
|
183
|
+
"content": "3ca28531bb57044aff1c2b06845b05affc60642ce03660ec09724522bea2af0a0a5ffbeb30727021c56674eabef4fa6bf9ee58313293442a25e591575f593324"
|
|
184
184
|
}
|
|
185
185
|
]
|
|
186
186
|
},
|
|
@@ -311,11 +311,11 @@
|
|
|
311
311
|
"hashes": [
|
|
312
312
|
{
|
|
313
313
|
"alg": "SHA-256",
|
|
314
|
-
"content": "
|
|
314
|
+
"content": "6b1fa4c2559229bb8d0b3df497f6bfdd0816e7294ec06afed6482e9dd66b7cb4"
|
|
315
315
|
},
|
|
316
316
|
{
|
|
317
317
|
"alg": "SHA3-512",
|
|
318
|
-
"content": "
|
|
318
|
+
"content": "a8cad7cab72c74fb85c77672176a76ab83ff26b68fe9d43ed061a02eec82402107fe25813cbd8865da9b15ee5bc862ae7f5dae483c7b941d85b675cd79c1d0b0"
|
|
319
319
|
}
|
|
320
320
|
]
|
|
321
321
|
},
|
|
@@ -326,11 +326,11 @@
|
|
|
326
326
|
"hashes": [
|
|
327
327
|
{
|
|
328
328
|
"alg": "SHA-256",
|
|
329
|
-
"content": "
|
|
329
|
+
"content": "e57929ebdde8027a0cdae9125120644667a1b78c3cababd97f2a032c4f10ca22"
|
|
330
330
|
},
|
|
331
331
|
{
|
|
332
332
|
"alg": "SHA3-512",
|
|
333
|
-
"content": "
|
|
333
|
+
"content": "38983d962fca794ac173f97a80f97f726672447d4ec2bde2a7317b2f83921f0ac5796a328dda95087b731b94aed6d71457d8481baffb1a96b62e840e17a7f6e9"
|
|
334
334
|
}
|
|
335
335
|
]
|
|
336
336
|
},
|
|
@@ -341,11 +341,11 @@
|
|
|
341
341
|
"hashes": [
|
|
342
342
|
{
|
|
343
343
|
"alg": "SHA-256",
|
|
344
|
-
"content": "
|
|
344
|
+
"content": "42bcaf5d95401c29bcd0851284e3b3ecd60f14a02fcebd3efe198a11e7bc5067"
|
|
345
345
|
},
|
|
346
346
|
{
|
|
347
347
|
"alg": "SHA3-512",
|
|
348
|
-
"content": "
|
|
348
|
+
"content": "49d93040660e12bd7814fed3961fb07809fca412fef354235c12175eb7d2062bf648cbb0dd4ea207d7a80f5ef32af1b5aac5bb7b079e5cc1fbb3fa8f4eee88e1"
|
|
349
349
|
}
|
|
350
350
|
]
|
|
351
351
|
},
|
|
@@ -401,11 +401,11 @@
|
|
|
401
401
|
"hashes": [
|
|
402
402
|
{
|
|
403
403
|
"alg": "SHA-256",
|
|
404
|
-
"content": "
|
|
404
|
+
"content": "368115d37ab5936abb44e346193979b24c3e5fdf7cb5b00afb2aadc9b5c4bf62"
|
|
405
405
|
},
|
|
406
406
|
{
|
|
407
407
|
"alg": "SHA3-512",
|
|
408
|
-
"content": "
|
|
408
|
+
"content": "a7ba2500543c3edd13d32765afeff3d173d5d3bc7b353dc8d2924628eb68d9c9cfaf7f7ba4b1fdefbc8d93b9c94d41505e15cddc1091f1186c32edb20b8a8d9a"
|
|
409
409
|
}
|
|
410
410
|
]
|
|
411
411
|
},
|
|
@@ -791,11 +791,11 @@
|
|
|
791
791
|
"hashes": [
|
|
792
792
|
{
|
|
793
793
|
"alg": "SHA-256",
|
|
794
|
-
"content": "
|
|
794
|
+
"content": "606ccb60a0a117809cd8b814f575db15b66385f9b63a4e8c790e4dcc0e492ed5"
|
|
795
795
|
},
|
|
796
796
|
{
|
|
797
797
|
"alg": "SHA3-512",
|
|
798
|
-
"content": "
|
|
798
|
+
"content": "6ae9d94108106f700ce5c68bf0cb271460ce4c64687cce3dd6f4ce03066abe9bbd83f4a0af16bbfa7aa62947ba408202acf584722262f092a26a135d4203e5cd"
|
|
799
799
|
}
|
|
800
800
|
]
|
|
801
801
|
},
|
|
@@ -1136,11 +1136,11 @@
|
|
|
1136
1136
|
"hashes": [
|
|
1137
1137
|
{
|
|
1138
1138
|
"alg": "SHA-256",
|
|
1139
|
-
"content": "
|
|
1139
|
+
"content": "a5eba83fcffc66464d5906bcb340d7d266c885613965e467e00e8df7cca98116"
|
|
1140
1140
|
},
|
|
1141
1141
|
{
|
|
1142
1142
|
"alg": "SHA3-512",
|
|
1143
|
-
"content": "
|
|
1143
|
+
"content": "b1687e7484cc612bee2b4547aa7dee978a8e593d236e8859b52c661744986f95b1ea90bb1312b73bddc8867cd565b4aece4214411fd3e650f03bfb4de1d365f8"
|
|
1144
1144
|
}
|
|
1145
1145
|
]
|
|
1146
1146
|
},
|
|
@@ -1376,11 +1376,11 @@
|
|
|
1376
1376
|
"hashes": [
|
|
1377
1377
|
{
|
|
1378
1378
|
"alg": "SHA-256",
|
|
1379
|
-
"content": "
|
|
1379
|
+
"content": "21e451470c35463ab5e7e0026fddc962156b1f53f740eca99faddb62fc7e9eb8"
|
|
1380
1380
|
},
|
|
1381
1381
|
{
|
|
1382
1382
|
"alg": "SHA3-512",
|
|
1383
|
-
"content": "
|
|
1383
|
+
"content": "e1d71f83e5dbf35b9ce60b451a3843432ce4916a80cd1833786a01dc06989eb37ebc08c6bef00dcf5eeec72f1e88eb4f0163546f64a83a7c086e72b46518cbef"
|
|
1384
1384
|
}
|
|
1385
1385
|
]
|
|
1386
1386
|
},
|