@blamejs/exceptd-skills 0.18.27 → 0.18.28
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 +12 -0
- package/bin/exceptd.js +25 -8
- package/data/_indexes/_meta.json +10 -10
- package/data/_indexes/activity-feed.json +29 -29
- package/data/_indexes/catalog-summaries.json +2 -2
- package/data/_indexes/chains.json +65 -10
- package/data/_indexes/currency.json +6 -6
- package/data/_indexes/frequency.json +105 -39
- package/data/_indexes/handoff-dag.json +36 -16
- package/data/_indexes/jurisdiction-map.json +3 -1
- package/data/_indexes/section-offsets.json +166 -148
- package/data/_indexes/summary-cards.json +41 -10
- package/data/_indexes/token-budget.json +63 -53
- package/data/_indexes/xref.json +43 -3
- package/data/d3fend-catalog.json +41 -8
- package/data/rfc-references.json +23 -4
- package/lib/currency-severity.js +60 -0
- package/manifest.json +99 -62
- package/package.json +2 -2
- package/sbom.cdx.json +40 -25
- package/skills/global-grc/skill.md +106 -17
- package/skills/pqc-first/skill.md +3 -2
- package/skills/security-maturity-tiers/skill.md +56 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.18.28 — 2026-08-05
|
|
4
|
+
|
|
5
|
+
`doctor` no longer reports a healthy install as failed once a skill passes ninety days since its last threat review. The skill-currency check treated every skill outside the "current" tier as an error, while the currency model itself raises `action_required` only below the "acceptable" tier — so a maintained skill crossing the ninety-day mark turned the whole health check red and `doctor --json` exited 1, on a fixed cadence, with nothing actually wrong. Review-date drift is now advisory: the check reports `severity: "warn"`, `all_green` stays false so the drift is still visible, and the exit code stays 0. A skill genuinely past its review window still fails with exit 1, and a critically stale one is still counted critical. The check reports `drifting_skills` and `action_required_skills` alongside the existing `stale_skills` list, which keeps its meaning, so a consumer can distinguish an advisory state from a failure. Human output distinguishes the three states rather than printing "all green" under a warning icon.
|
|
6
|
+
|
|
7
|
+
The `global-grc` skill carries a refreshed threat review. The EU AI Act entry now follows the application timeline as amended by Regulation (EU) 2026/1744: Art. 50 transparency obligations and Commission supervision of GPAI providers are in force from 2026-08-02, the high-risk requirements including Art. 9 risk management and Art. 15 cybersecurity are deferred to 2027-12-02 for Annex III systems and 2028-08-02 for Annex I product-embedded systems, and two new Art. 5 prohibitions covering non-consensual intimate imagery and child sexual abuse material apply from 2026-12-02. Art. 73's serious-incident clocks are corrected — 2 days for widespread infringement or critical-infrastructure disruption, 10 days for death of a person, 15 days otherwise — having previously been transposed. The compliance-theater test that keyed off the superseded August 2026 deadline is replaced by one testing Art. 50 transparency, which is enforceable now, and one testing high-risk classification against the deferred dates, on the ground that a deferral is not a withdrawal while the attack surface stays live. NIS2 no longer claims enforcement across all 27 Member States: transposition remains incomplete, and four Member States were referred to the CJEU in July 2026, so entities scope by Member State of establishment rather than by the directive text. CRA manufacturer reporting under Art. 14 is now covered in the notification and exploit-availability tables — 24-hour early warning, 72-hour notification, 14-day final report from 2026-09-11 — a clock triggered by active exploitation and therefore driven directly by KEV state. UK coverage is corrected: NCSC CAF v4.0 does carry AI-relevant content in Principle B4's automated-decision-making outcomes and its ETSI Securing AI reference, so the claim that no UK framework addressed AI is withdrawn and replaced with the narrower residual gap, and the Cyber Security and Resilience Bill is recorded as not yet in force. Canada gains the Critical Cyber Systems Protection Act enacted by Bill C-8, with its 72-hour incident report to the Communications Security Establishment, and the lapsed Bill C-27 is replaced by Bill C-36. Australia gains the Enhanced Critical Infrastructure Risk Management Program Rules and their supply-chain mapping obligation, the most specific such requirement in the registry. Japan's active-cyber-defence legislation is corrected to the 2025 Acts and the 2026 APPI amendment is recorded. CSA CCM is updated to v4.1.
|
|
8
|
+
|
|
9
|
+
The `security-maturity-tiers` skill carries a refreshed threat review. Its MVP tier adds an inventory step for self-hosted LLM gateways and flow builders, a product class that has produced repeated KEV-listed pre-authentication remote code execution against default deployments, and the tier's completion criterion now requires that none be reachable from the internet. The US federal remediation baseline is updated: CISA BOD 26-04 replaced BOD 22-01's uniform KEV due dates with risk-tiered ones, so the framework-lag table records a 3-day top band against the tier's hours-scale live-patch prescription. EU CRA dates are corrected — Annex I product requirements apply from 2027-12-11, while Art. 14 reporting starts 2026-09-11 — and the EU AI Act Art. 15 row reflects the deferral, with the tier's rationale sharpened: the obligation does not bind for another 16 to 24 months while the attack surface is live today. Post-quantum TLS now cites RFC 9954 and notes that X25519MLKEM768 is offered by default from OpenSSL 3.5 onward, making the Practical-tier step a version upgrade and a config assertion rather than a migration project.
|
|
10
|
+
|
|
11
|
+
RFC 9954 (Hybrid Key Exchange in TLS 1.3, Informational, July 2026) is now carried in the offline RFC catalog, so `exceptd rfc 9954` resolves without network access instead of reporting an unknown reference. Its predecessor `draft-ietf-tls-hybrid-design` records the transition rather than still describing itself as queued for a number, and `pqc-first` no longer describes the hybrid construction as a draft — while noting that `draft-ietf-tls-ecdhe-mlkem`, the Standards-Track profile naming the concrete groups, remains one, so the construction reaching RFC status does not standardise the named groups.
|
|
12
|
+
|
|
13
|
+
Both skills gain a Defensive Countermeasure Mapping section routing each finding to a D3FEND technique and the downstream skill that owns its implementation, and both now declare the D3FEND catalog and the techniques they cite so the mappings reach the index and cross-reference surfaces rather than reporting zero.
|
|
14
|
+
|
|
3
15
|
## 0.18.27 — 2026-07-30
|
|
4
16
|
|
|
5
17
|
CVE catalog currency: one hundred more CISA-KEV-listed, actively-exploited CVEs are now curated in the offline catalog (823 → 923), covering additions to the CISA Known Exploited Vulnerabilities catalog from March through August 2023 (plus four July 2026 additions) and spanning CVE publication years 2004 through 2026. Each entry carries a verified NVD CVSS vector and CWE, ATT&CK technique mappings, real-world exploitation status, primary-source indicators where public exploit code exists, global-first framework-control-gap declarations (NIST, EU NIS2/DORA, UK CAF, AU ISM/Essential 8, ISO 27001), an RWEP score, and a paired zero-day lesson. The batch centers on the 2023 mass-exploitation wave against file-transfer, email-security, and enterprise-edge infrastructure — the Progress MOVEit Transfer SQL-injection abused by Cl0p in the largest data-theft campaign of the year (CVE-2023-34362), the Barracuda Email Security Gateway command injection exploited by UNC4841 (CVE-2023-2868), the PaperCut MF/NG authentication-bypass RCE used by Cl0p and LockBit affiliates (CVE-2023-27350), the Adobe ColdFusion access-control and deserialization chain (CVE-2023-26359, CVE-2023-26360, CVE-2023-29298, CVE-2023-38205), the Ivanti EPMM/MobileIron authentication bypass and Sentry chain (CVE-2023-35078, CVE-2023-35081, CVE-2023-38035), the Citrix ShareFile storage-zones RCE (CVE-2023-24489), the Oracle WebLogic deserialization RCE (CVE-2023-21839), the Zyxel firewall command injection recruited into Mirai (CVE-2023-28771), and the VMware Aria/Tools flaws tied to UNC3886 (CVE-2023-20867, CVE-2023-20887). It also covers client and mobile exploitation heavily used by commercial-spyware and state actors — the Apple "Operation Triangulation" kernel flaw and the June-2023 iOS WebKit/kernel zero-day chain (CVE-2023-38606, CVE-2023-37450, CVE-2023-32409, CVE-2023-32434, CVE-2023-32435, CVE-2023-32439, CVE-2023-28204, CVE-2023-32373), the Microsoft Outlook NTLM-relay privilege escalation used by APT28/Forest Blizzard (CVE-2023-23397), the Microsoft Office RCE deployed by Storm-0978/RomCom (CVE-2023-36884) and the Windows SmartScreen bypass used by Magniber (CVE-2023-24880), the Samsung mobile-chipset chain surfaced in spyware exploitation (CVE-2021-25487, CVE-2021-25489, CVE-2021-25394, CVE-2021-25395, CVE-2021-25371, CVE-2021-25372), the Arm Mali GPU kernel driver flaws chained in Android spyware (CVE-2022-22706, CVE-2022-38181, CVE-2021-29256, CVE-2023-26083), and multiple Google Chrome V8 and Skia zero-days (CVE-2023-2033, CVE-2023-3079, CVE-2023-2136). A long tail of internet-facing devices recruited into botnets rounds out the set — TP-Link Archer (CVE-2023-1389), Ruckus wireless (CVE-2023-25717), D-Link routers (CVE-2019-17621, CVE-2019-20500), the end-of-life Zyxel P660HN (CVE-2017-18368), SolarView Compact (CVE-2022-29303) — alongside the Ignite Realtime Openfire path traversal mined by Kinsing (CVE-2023-32315), the Veeam Backup & Replication credential disclosure (CVE-2023-27532), the Samba "SambaCry" RCE (CVE-2017-7494), the Apache Log4j 2.15 follow-up (CVE-2021-45046), and older but still-exploited Linux privilege escalations and Cisco IOS flaws. Two weakness classes backing these entries are new to the CWE catalog: CWE-294 (authentication bypass by capture-replay, the mechanism behind the Outlook NTLM-relay flaw) and CWE-401 (missing release of memory after effective lifetime).
|
package/bin/exceptd.js
CHANGED
|
@@ -7209,9 +7209,13 @@ function cmdDoctor(runner, args, runOpts, pretty) {
|
|
|
7209
7209
|
}
|
|
7210
7210
|
}
|
|
7211
7211
|
if (parsed && Array.isArray(parsed.currency_report)) {
|
|
7212
|
-
|
|
7213
|
-
|
|
7214
|
-
|
|
7212
|
+
// Severity tracks the scoring model's own tiers; see
|
|
7213
|
+
// lib/currency-severity.js for why the drift tier warns instead of
|
|
7214
|
+
// failing. Extracted so the tier boundary is testable without a
|
|
7215
|
+
// manifest whose dates move under the test.
|
|
7216
|
+
const { classifyCurrency } = require(path.join(PKG_ROOT, "lib", "currency-severity.js"));
|
|
7217
|
+
const { ok, severity, stale, drifting, actionable, critical } =
|
|
7218
|
+
classifyCurrency(parsed.currency_report, parsed.action_required);
|
|
7215
7219
|
// Audit 3 B.7: surface the freshest + stalest last_threat_review
|
|
7216
7220
|
// so operators can answer "is my data stale?" without parsing the
|
|
7217
7221
|
// full report. Falls back gracefully when the upstream report
|
|
@@ -7223,8 +7227,14 @@ function cmdDoctor(runner, args, runOpts, pretty) {
|
|
|
7223
7227
|
const minDaysSince = dates.length ? Math.floor((Date.now() - new Date(dates[0]).getTime()) / 86400000) : null;
|
|
7224
7228
|
checks.currency = {
|
|
7225
7229
|
ok,
|
|
7230
|
+
// Drift with nothing past its review window is advisory: bucket it
|
|
7231
|
+
// as a warning so `all_green:false` still surfaces it while the
|
|
7232
|
+
// exit code stays 0 (same contract the registry check uses).
|
|
7233
|
+
...(severity ? { severity } : {}),
|
|
7226
7234
|
total_skills: parsed.currency_report.length,
|
|
7227
7235
|
stale_skills: stale.map(s => s.skill),
|
|
7236
|
+
drifting_skills: drifting.map(s => s.skill),
|
|
7237
|
+
action_required_skills: actionable.map(s => s.skill),
|
|
7228
7238
|
critical_stale: critical.map(s => s.skill),
|
|
7229
7239
|
critical_count: parsed.critical_count || 0,
|
|
7230
7240
|
oldest_last_threat_review: dates[0] || null,
|
|
@@ -7956,11 +7966,18 @@ function cmdDoctor(runner, args, runOpts, pretty) {
|
|
|
7956
7966
|
? `skill signatures verified (${c.skills_passed ?? "?"}/${c.skills_total ?? "?"})`
|
|
7957
7967
|
: `skill signatures FAILED (exit=${c.exit_code ?? "?"})`
|
|
7958
7968
|
);
|
|
7959
|
-
mark(checks.currency, c =>
|
|
7960
|
-
|
|
7961
|
-
|
|
7962
|
-
|
|
7963
|
-
|
|
7969
|
+
mark(checks.currency, c => {
|
|
7970
|
+
// Three states, not two: the drift tier renders under a [!! warn] icon,
|
|
7971
|
+
// so "all green" here would contradict the icon the way the signing
|
|
7972
|
+
// check's text once did.
|
|
7973
|
+
if (c.ok && c.severity === "warn") {
|
|
7974
|
+
const n = c.drifting_skills?.length ?? "?";
|
|
7975
|
+
const names = (c.drifting_skills || []).join(", ");
|
|
7976
|
+
return `skill currency: ${n} approaching review window${names ? ` (${names})` : ""}, 0 past it`;
|
|
7977
|
+
}
|
|
7978
|
+
if (c.ok) return `skill currency: all green (${c.total_skills ?? "?"} skills)`;
|
|
7979
|
+
return `skill currency: ${c.action_required_skills?.length ?? c.stale_skills?.length ?? "?"} past review window, ${c.critical_count ?? 0} critical`;
|
|
7980
|
+
});
|
|
7964
7981
|
mark(checks.cves, c => {
|
|
7965
7982
|
if (!c.ok) return `CVE catalog FAILED (exit=${c.exit_code ?? "?"})`;
|
|
7966
7983
|
const total = c.total ?? "?";
|
package/data/_indexes/_meta.json
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": "1.1.0",
|
|
3
|
-
"generated_at": "2026-
|
|
3
|
+
"generated_at": "2026-08-06T01:23:34.879Z",
|
|
4
4
|
"generator": "scripts/build-indexes.js",
|
|
5
5
|
"source_count": 64,
|
|
6
6
|
"source_hashes": {
|
|
7
|
-
"manifest.json": "
|
|
7
|
+
"manifest.json": "b33b921f81ee69e65fcc3cda6480e50e726c3a1846817e7409ed2f5d63178d6c",
|
|
8
8
|
"README.md": "2d2f4ac4e7934e730fc88502b6f19c986c1a059dbae1eb3b5c3f672b9e0a4d7a",
|
|
9
9
|
"data/atlas-ttps.json": "a414f3957956762a7f5aec07d36391b6579f45d1491b2a3db27eee38a4fad503",
|
|
10
10
|
"data/attack-techniques.json": "0f9d29c33502294e383da8c747d491ee972d1d6923695cecd110e8c9f6d53522",
|
|
11
11
|
"data/cve-catalog.json": "85afca7bff24a802ddd15b3b9f3b0951c35ab3232e79307718e6bad1d6f75c4c",
|
|
12
12
|
"data/cwe-catalog.json": "2075d9e36a95656817389ae5cc671ddc396ac532077a3b1c2eda20730c93c87d",
|
|
13
|
-
"data/d3fend-catalog.json": "
|
|
13
|
+
"data/d3fend-catalog.json": "64d4d2c187aa0c1f308b982da7f7fb68ebe8207ec0c4baf983c407f3ad0afd0d",
|
|
14
14
|
"data/dlp-controls.json": "d2406c482dddd30e49203879999dc4b3a7fd4d0494d6a61d86b91ee76415df19",
|
|
15
15
|
"data/exploit-availability.json": "ec2656f0d9a893610e27b43eb6035fe9b18e057c9f6dfaac7e7d4959bbcbb795",
|
|
16
16
|
"data/framework-control-gaps.json": "2490bffb1511f5157de8c8894267c509e6e8e27cd40e47df455f7550c06de866",
|
|
17
17
|
"data/global-frameworks.json": "20b18a851b3ab82e57cd159b49476d69fe544f02523398b2015189ab81c7c3f8",
|
|
18
|
-
"data/rfc-references.json": "
|
|
18
|
+
"data/rfc-references.json": "6e9017eca910ab7e4bee85ad7c23927fd6ec766f34be7fce49ebf020cec3381a",
|
|
19
19
|
"data/zeroday-lessons.json": "5d293b1e2240dd40df948cb8fe40fd4637cda8d625a3b29d1d2731f36cbcbdf4",
|
|
20
20
|
"skills/kernel-lpe-triage/skill.md": "0f79c641cef6e5f4a942eb94f43c460562bf83dfb67ae112d146c39c6b320fb0",
|
|
21
21
|
"skills/ai-attack-surface/skill.md": "9a1fca96c27803506a9ebe98ffb1eb17206278b0aba39ecc5cd19d74f3a32fbf",
|
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
"skills/ai-c2-detection/skill.md": "6503b57a793885b73aabfef6d336fd2717af33b1228571a2fb732dc9f5f475dc",
|
|
28
28
|
"skills/policy-exception-gen/skill.md": "4c368d05875cbb4a7f008e627a7452a176db21b9ac5f08f813ac8007ddd17bbc",
|
|
29
29
|
"skills/threat-model-currency/skill.md": "11be4c065cab1bdd5230b03869850651b61478aa8fd690ca47373bcf205af5f6",
|
|
30
|
-
"skills/global-grc/skill.md": "
|
|
30
|
+
"skills/global-grc/skill.md": "cbbc37475a6bfabde26ee0f064bb853088d4e004691af92d6fa007f6bfb8ddfd",
|
|
31
31
|
"skills/zeroday-gap-learn/skill.md": "b9216006195d7db2e2f66e55b8b9e99702c7e6a36100dea641709101027b2825",
|
|
32
|
-
"skills/pqc-first/skill.md": "
|
|
32
|
+
"skills/pqc-first/skill.md": "794e53921d5d8b0bfcd512f6c28b1fecf2ef3bb5a9ccd83826bb0b79cae4aef4",
|
|
33
33
|
"skills/skill-update-loop/skill.md": "fbcc0786ebbc2d2735944269f82ded10affd9f4efa29c2f6cdc4c283024837de",
|
|
34
|
-
"skills/security-maturity-tiers/skill.md": "
|
|
34
|
+
"skills/security-maturity-tiers/skill.md": "708094f0ca32b33cf8593a29f3d6f9c63f1b6421233c5d5bfe8039de56bc85aa",
|
|
35
35
|
"skills/researcher/skill.md": "9f1211d177c64e4c465407a45ad9e2901c5c6c0af410a0d0a51cc8fb780420d4",
|
|
36
36
|
"skills/attack-surface-pentest/skill.md": "5b1f96ae23825c0a1eb77d2ede29143308b7219e10f99c5b657fb6f788fad3b8",
|
|
37
37
|
"skills/fuzz-testing-strategy/skill.md": "632b4004ae953fbea3ede136557dc044395ea8aa7b49b220e7d1e5d0c5cb676f",
|
|
@@ -93,11 +93,11 @@
|
|
|
93
93
|
"index_stats": {
|
|
94
94
|
"xref_entries": {
|
|
95
95
|
"cwe_refs": 53,
|
|
96
|
-
"d3fend_refs":
|
|
96
|
+
"d3fend_refs": 27,
|
|
97
97
|
"framework_gaps": 96,
|
|
98
98
|
"atlas_refs": 10,
|
|
99
99
|
"attack_refs": 51,
|
|
100
|
-
"rfc_refs":
|
|
100
|
+
"rfc_refs": 36,
|
|
101
101
|
"dlp_refs": 0
|
|
102
102
|
},
|
|
103
103
|
"trigger_table_entries": 688,
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
"handoff_dag_nodes": 51,
|
|
108
108
|
"summary_cards": 51,
|
|
109
109
|
"section_offsets_skills": 51,
|
|
110
|
-
"token_budget_total_approx":
|
|
110
|
+
"token_budget_total_approx": 441982,
|
|
111
111
|
"recipes": 8,
|
|
112
112
|
"jurisdiction_clocks": 29,
|
|
113
113
|
"did_ladders": 8,
|
|
@@ -5,6 +5,35 @@
|
|
|
5
5
|
"event_count": 63
|
|
6
6
|
},
|
|
7
7
|
"events": [
|
|
8
|
+
{
|
|
9
|
+
"date": "2026-08-05",
|
|
10
|
+
"type": "skill_review",
|
|
11
|
+
"artifact": "global-grc",
|
|
12
|
+
"path": "skills/global-grc/skill.md",
|
|
13
|
+
"note": "Multi-jurisdiction GRC mapping — EU (GDPR/NIS2/DORA/EU AI Act/CRA), UK, AU, SG, JP, IN, CA, ISO 27001:2022, CSA CCM v4"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"date": "2026-08-05",
|
|
17
|
+
"type": "skill_review",
|
|
18
|
+
"artifact": "pqc-first",
|
|
19
|
+
"path": "skills/pqc-first/skill.md",
|
|
20
|
+
"note": "Post-quantum cryptography first mentality — hard version gates, algorithm sunset tracking, loopback learning for NIST/IETF standards evolution"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"date": "2026-08-05",
|
|
24
|
+
"type": "skill_review",
|
|
25
|
+
"artifact": "security-maturity-tiers",
|
|
26
|
+
"path": "skills/security-maturity-tiers/skill.md",
|
|
27
|
+
"note": "Three-tier implementation roadmap — MVP you can ship today, practical best practices useable now, overkill gold standard for defense-in-depth"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"date": "2026-08-05",
|
|
31
|
+
"type": "catalog_update",
|
|
32
|
+
"artifact": "data/rfc-references.json",
|
|
33
|
+
"path": "data/rfc-references.json",
|
|
34
|
+
"schema_version": "1.0.0",
|
|
35
|
+
"entry_count": 8889
|
|
36
|
+
},
|
|
8
37
|
{
|
|
9
38
|
"date": "2026-07-30",
|
|
10
39
|
"type": "catalog_update",
|
|
@@ -107,13 +136,6 @@
|
|
|
107
136
|
"path": "skills/zeroday-gap-learn/skill.md",
|
|
108
137
|
"note": "Run the zero-day learning loop — CVE to attack vector to control gap to framework gap to new control requirement"
|
|
109
138
|
},
|
|
110
|
-
{
|
|
111
|
-
"date": "2026-06-10",
|
|
112
|
-
"type": "skill_review",
|
|
113
|
-
"artifact": "pqc-first",
|
|
114
|
-
"path": "skills/pqc-first/skill.md",
|
|
115
|
-
"note": "Post-quantum cryptography first mentality — hard version gates, algorithm sunset tracking, loopback learning for NIST/IETF standards evolution"
|
|
116
|
-
},
|
|
117
139
|
{
|
|
118
140
|
"date": "2026-06-10",
|
|
119
141
|
"type": "skill_review",
|
|
@@ -332,14 +354,6 @@
|
|
|
332
354
|
"path": "skills/privacy-consent-ops/skill.md",
|
|
333
355
|
"note": "Privacy, consent, and sanctions operational integrity for mid-2026 — confusable/homoglyph normalization before sanctions screening, integrity-bound and re-validated consent records, evidence-gated and downstream-propagated DSR erasure, and ROPA reconciliation against actual processing"
|
|
334
356
|
},
|
|
335
|
-
{
|
|
336
|
-
"date": "2026-05-27",
|
|
337
|
-
"type": "catalog_update",
|
|
338
|
-
"artifact": "data/rfc-references.json",
|
|
339
|
-
"path": "data/rfc-references.json",
|
|
340
|
-
"schema_version": "1.0.0",
|
|
341
|
-
"entry_count": 8888
|
|
342
|
-
},
|
|
343
357
|
{
|
|
344
358
|
"date": "2026-05-19",
|
|
345
359
|
"type": "catalog_update",
|
|
@@ -442,20 +456,6 @@
|
|
|
442
456
|
"path": "data/dlp-controls.json",
|
|
443
457
|
"schema_version": "1.0.0",
|
|
444
458
|
"entry_count": 22
|
|
445
|
-
},
|
|
446
|
-
{
|
|
447
|
-
"date": "2026-05-01",
|
|
448
|
-
"type": "skill_review",
|
|
449
|
-
"artifact": "global-grc",
|
|
450
|
-
"path": "skills/global-grc/skill.md",
|
|
451
|
-
"note": "Multi-jurisdiction GRC mapping — EU (GDPR/NIS2/DORA/EU AI Act/CRA), UK, AU, SG, JP, IN, CA, ISO 27001:2022, CSA CCM v4"
|
|
452
|
-
},
|
|
453
|
-
{
|
|
454
|
-
"date": "2026-05-01",
|
|
455
|
-
"type": "skill_review",
|
|
456
|
-
"artifact": "security-maturity-tiers",
|
|
457
|
-
"path": "skills/security-maturity-tiers/skill.md",
|
|
458
|
-
"note": "Three-tier implementation roadmap — MVP you can ship today, practical best practices useable now, overkill gold standard for defense-in-depth"
|
|
459
459
|
}
|
|
460
460
|
]
|
|
461
461
|
}
|
|
@@ -207,7 +207,7 @@
|
|
|
207
207
|
"path": "data/rfc-references.json",
|
|
208
208
|
"purpose": "IETF RFCs + active Internet-Drafts cited by skills (TLS, IPsec, PQ crypto migration, HTTP/3, CT). Cross-validated against IETF Datatracker via validate-rfcs.",
|
|
209
209
|
"schema_version": "1.0.0",
|
|
210
|
-
"last_updated": "2026-05
|
|
210
|
+
"last_updated": "2026-08-05",
|
|
211
211
|
"tlp": "CLEAR",
|
|
212
212
|
"source_confidence_default": "A1",
|
|
213
213
|
"freshness_policy": {
|
|
@@ -216,7 +216,7 @@
|
|
|
216
216
|
"rebuild_after_days": 365,
|
|
217
217
|
"note": "Per-entry last_verified governs decay. Skills depending on this catalog must check entry freshness before high-stakes use."
|
|
218
218
|
},
|
|
219
|
-
"entry_count":
|
|
219
|
+
"entry_count": 8889,
|
|
220
220
|
"sample_keys": [
|
|
221
221
|
"RFC-4301",
|
|
222
222
|
"RFC-4303",
|
|
@@ -260689,7 +260689,8 @@
|
|
|
260689
260689
|
"RFC-9180",
|
|
260690
260690
|
"RFC-9420",
|
|
260691
260691
|
"RFC-9458",
|
|
260692
|
-
"RFC-9794"
|
|
260692
|
+
"RFC-9794",
|
|
260693
|
+
"RFC-9954"
|
|
260693
260694
|
]
|
|
260694
260695
|
}
|
|
260695
260696
|
},
|
|
@@ -285462,7 +285463,8 @@
|
|
|
285462
285463
|
"RFC-9180",
|
|
285463
285464
|
"RFC-9420",
|
|
285464
285465
|
"RFC-9458",
|
|
285465
|
-
"RFC-9794"
|
|
285466
|
+
"RFC-9794",
|
|
285467
|
+
"RFC-9954"
|
|
285466
285468
|
]
|
|
285467
285469
|
}
|
|
285468
285470
|
},
|
|
@@ -289572,7 +289574,8 @@
|
|
|
289572
289574
|
"RFC-9180",
|
|
289573
289575
|
"RFC-9420",
|
|
289574
289576
|
"RFC-9458",
|
|
289575
|
-
"RFC-9794"
|
|
289577
|
+
"RFC-9794",
|
|
289578
|
+
"RFC-9954"
|
|
289576
289579
|
]
|
|
289577
289580
|
}
|
|
289578
289581
|
},
|
|
@@ -295681,7 +295684,8 @@
|
|
|
295681
295684
|
"RFC-9180",
|
|
295682
295685
|
"RFC-9420",
|
|
295683
295686
|
"RFC-9458",
|
|
295684
|
-
"RFC-9794"
|
|
295687
|
+
"RFC-9794",
|
|
295688
|
+
"RFC-9954"
|
|
295685
295689
|
]
|
|
295686
295690
|
}
|
|
295687
295691
|
},
|
|
@@ -363044,7 +363048,8 @@
|
|
|
363044
363048
|
"RFC-9421",
|
|
363045
363049
|
"RFC-9458",
|
|
363046
363050
|
"RFC-9700",
|
|
363047
|
-
"RFC-9794"
|
|
363051
|
+
"RFC-9794",
|
|
363052
|
+
"RFC-9954"
|
|
363048
363053
|
]
|
|
363049
363054
|
}
|
|
363050
363055
|
},
|
|
@@ -363725,7 +363730,8 @@
|
|
|
363725
363730
|
"RFC-9421",
|
|
363726
363731
|
"RFC-9458",
|
|
363727
363732
|
"RFC-9700",
|
|
363728
|
-
"RFC-9794"
|
|
363733
|
+
"RFC-9794",
|
|
363734
|
+
"RFC-9954"
|
|
363729
363735
|
]
|
|
363730
363736
|
}
|
|
363731
363737
|
},
|
|
@@ -368981,7 +368987,8 @@
|
|
|
368981
368987
|
"RFC-9421",
|
|
368982
368988
|
"RFC-9458",
|
|
368983
368989
|
"RFC-9700",
|
|
368984
|
-
"RFC-9794"
|
|
368990
|
+
"RFC-9794",
|
|
368991
|
+
"RFC-9954"
|
|
368985
368992
|
]
|
|
368986
368993
|
}
|
|
368987
368994
|
},
|
|
@@ -369570,7 +369577,8 @@
|
|
|
369570
369577
|
"RFC-9421",
|
|
369571
369578
|
"RFC-9458",
|
|
369572
369579
|
"RFC-9700",
|
|
369573
|
-
"RFC-9794"
|
|
369580
|
+
"RFC-9794",
|
|
369581
|
+
"RFC-9954"
|
|
369574
369582
|
]
|
|
369575
369583
|
}
|
|
369576
369584
|
},
|
|
@@ -513504,7 +513512,8 @@
|
|
|
513504
513512
|
"RFC-9421",
|
|
513505
513513
|
"RFC-9458",
|
|
513506
513514
|
"RFC-9700",
|
|
513507
|
-
"RFC-9794"
|
|
513515
|
+
"RFC-9794",
|
|
513516
|
+
"RFC-9954"
|
|
513508
513517
|
]
|
|
513509
513518
|
}
|
|
513510
513519
|
},
|
|
@@ -520368,7 +520377,8 @@
|
|
|
520368
520377
|
"RFC-9421",
|
|
520369
520378
|
"RFC-9458",
|
|
520370
520379
|
"RFC-9700",
|
|
520371
|
-
"RFC-9794"
|
|
520380
|
+
"RFC-9794",
|
|
520381
|
+
"RFC-9954"
|
|
520372
520382
|
]
|
|
520373
520383
|
}
|
|
520374
520384
|
},
|
|
@@ -557700,6 +557710,11 @@
|
|
|
557700
557710
|
"id": "RFC-9794",
|
|
557701
557711
|
"title": "Terminology for Post-Quantum Cryptography",
|
|
557702
557712
|
"status": "Informational"
|
|
557713
|
+
},
|
|
557714
|
+
{
|
|
557715
|
+
"id": "RFC-9954",
|
|
557716
|
+
"title": "Hybrid Key Exchange in TLS 1.3",
|
|
557717
|
+
"status": "Informational"
|
|
557703
557718
|
}
|
|
557704
557719
|
],
|
|
557705
557720
|
"dlp_refs": []
|
|
@@ -576243,16 +576258,41 @@
|
|
|
576243
576258
|
"name": "Executable Allowlisting",
|
|
576244
576259
|
"tactic": "Harden"
|
|
576245
576260
|
},
|
|
576261
|
+
{
|
|
576262
|
+
"id": "D3-EFA",
|
|
576263
|
+
"name": "Executable File Analysis",
|
|
576264
|
+
"tactic": "Detect"
|
|
576265
|
+
},
|
|
576246
576266
|
{
|
|
576247
576267
|
"id": "D3-EHB",
|
|
576248
576268
|
"name": "Executable Hashbased Allowlist",
|
|
576249
576269
|
"tactic": "Harden"
|
|
576250
576270
|
},
|
|
576271
|
+
{
|
|
576272
|
+
"id": "D3-FAPA",
|
|
576273
|
+
"name": "File Access Pattern Analysis",
|
|
576274
|
+
"tactic": "Detect"
|
|
576275
|
+
},
|
|
576251
576276
|
{
|
|
576252
576277
|
"id": "D3-IOPR",
|
|
576253
576278
|
"name": "Input/Output Profiling Resource",
|
|
576254
576279
|
"tactic": "Detect"
|
|
576255
576280
|
},
|
|
576281
|
+
{
|
|
576282
|
+
"id": "D3-ITF",
|
|
576283
|
+
"name": "Inbound Traffic Filtering",
|
|
576284
|
+
"tactic": "Defensive"
|
|
576285
|
+
},
|
|
576286
|
+
{
|
|
576287
|
+
"id": "D3-KBPI",
|
|
576288
|
+
"name": "Kernel-Based Process Isolation",
|
|
576289
|
+
"tactic": "Isolate"
|
|
576290
|
+
},
|
|
576291
|
+
{
|
|
576292
|
+
"id": "D3-MENCR",
|
|
576293
|
+
"name": "Message Encryption",
|
|
576294
|
+
"tactic": "Harden"
|
|
576295
|
+
},
|
|
576256
576296
|
{
|
|
576257
576297
|
"id": "D3-MFA",
|
|
576258
576298
|
"name": "Multi-factor Authentication",
|
|
@@ -576273,10 +576313,20 @@
|
|
|
576273
576313
|
"name": "Network Traffic Policy Mapping",
|
|
576274
576314
|
"tactic": "Model"
|
|
576275
576315
|
},
|
|
576316
|
+
{
|
|
576317
|
+
"id": "D3-OTF",
|
|
576318
|
+
"name": "Outbound Traffic Filtering",
|
|
576319
|
+
"tactic": "Defensive"
|
|
576320
|
+
},
|
|
576276
576321
|
{
|
|
576277
576322
|
"id": "D3-PSEP",
|
|
576278
576323
|
"name": "Process Segment Execution Prevention",
|
|
576279
576324
|
"tactic": "Harden"
|
|
576325
|
+
},
|
|
576326
|
+
{
|
|
576327
|
+
"id": "D3-SCA",
|
|
576328
|
+
"name": "System Call Analysis",
|
|
576329
|
+
"tactic": "Detect"
|
|
576280
576330
|
}
|
|
576281
576331
|
],
|
|
576282
576332
|
"rfc_refs": [
|
|
@@ -576324,6 +576374,11 @@
|
|
|
576324
576374
|
"id": "RFC-9700",
|
|
576325
576375
|
"title": "Best Current Practice for OAuth 2.0 Security",
|
|
576326
576376
|
"status": "Best Current Practice"
|
|
576377
|
+
},
|
|
576378
|
+
{
|
|
576379
|
+
"id": "RFC-9954",
|
|
576380
|
+
"title": "Hybrid Key Exchange in TLS 1.3",
|
|
576381
|
+
"status": "Informational"
|
|
576327
576382
|
}
|
|
576328
576383
|
],
|
|
576329
576384
|
"dlp_refs": []
|
|
@@ -186,8 +186,8 @@
|
|
|
186
186
|
},
|
|
187
187
|
{
|
|
188
188
|
"skill": "global-grc",
|
|
189
|
-
"last_threat_review": "2026-05
|
|
190
|
-
"days_since_review":
|
|
189
|
+
"last_threat_review": "2026-08-05",
|
|
190
|
+
"days_since_review": -82,
|
|
191
191
|
"currency_score": 100,
|
|
192
192
|
"currency_label": "current",
|
|
193
193
|
"forward_watch_count": 0,
|
|
@@ -303,8 +303,8 @@
|
|
|
303
303
|
},
|
|
304
304
|
{
|
|
305
305
|
"skill": "pqc-first",
|
|
306
|
-
"last_threat_review": "2026-
|
|
307
|
-
"days_since_review": -
|
|
306
|
+
"last_threat_review": "2026-08-05",
|
|
307
|
+
"days_since_review": -82,
|
|
308
308
|
"currency_score": 100,
|
|
309
309
|
"currency_label": "current",
|
|
310
310
|
"forward_watch_count": 11,
|
|
@@ -393,8 +393,8 @@
|
|
|
393
393
|
},
|
|
394
394
|
{
|
|
395
395
|
"skill": "security-maturity-tiers",
|
|
396
|
-
"last_threat_review": "2026-05
|
|
397
|
-
"days_since_review":
|
|
396
|
+
"last_threat_review": "2026-08-05",
|
|
397
|
+
"days_since_review": -82,
|
|
398
398
|
"currency_score": 100,
|
|
399
399
|
"currency_label": "current",
|
|
400
400
|
"forward_watch_count": 4,
|