@blamejs/exceptd-skills 0.12.32 → 0.12.33
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 +29 -0
- package/data/_indexes/_meta.json +10 -10
- package/data/_indexes/activity-feed.json +3 -3
- package/data/_indexes/catalog-summaries.json +3 -3
- package/data/_indexes/chains.json +16 -0
- package/data/_indexes/frequency.json +1 -0
- package/data/_indexes/section-offsets.json +9 -9
- package/data/_indexes/token-budget.json +20 -20
- package/data/cve-catalog.json +129 -1
- package/data/cwe-catalog.json +8 -3
- package/data/d3fend-catalog.json +46 -0
- package/data/playbooks/cloud-iam-incident.json +0 -6
- package/data/playbooks/idp-incident.json +1 -7
- package/data/zeroday-lessons.json +108 -0
- package/manifest-snapshot.json +1 -1
- package/manifest-snapshot.sha256 +1 -1
- package/manifest.json +47 -47
- package/package.json +1 -1
- package/sbom.cdx.json +21 -21
- package/skills/cloud-iam-incident/skill.md +1 -1
- package/skills/idp-incident-response/skill.md +1 -1
- package/skills/ransomware-response/skill.md +2 -2
|
@@ -1832,5 +1832,113 @@
|
|
|
1832
1832
|
"ai_discovery_source": "vendor_research",
|
|
1833
1833
|
"ai_discovery_date": "2026-04-22",
|
|
1834
1834
|
"ai_assist_factor": "low"
|
|
1835
|
+
},
|
|
1836
|
+
"MAL-2026-NODE-IPC-STEALER": {
|
|
1837
|
+
"name": "node-ipc credential-stealer (expired-domain account-recovery compromise)",
|
|
1838
|
+
"lesson_date": "2026-05-15",
|
|
1839
|
+
"attack_vector": {
|
|
1840
|
+
"description": "Novel supply-chain account-recovery abuse via expired maintainer email domain. The `atlantis-software.net` domain — registered as the contact email for the legitimate node-ipc maintainer npm account — lapsed and was re-registered by an attacker on 2026-05-07 via Namecheap PrivateEmail. The attacker then invoked the npm password-reset flow; the reset link was delivered to the now-attacker-controlled mailbox; the attacker took over the publish-enabled account without ever holding a leaked credential. Three malicious versions (node-ipc 9.1.6, 9.2.3, 12.0.1) were published 2026-05-14 with an 80 KB obfuscated IIFE appended to `node-ipc.cjs`. The payload fires on every `require('node-ipc')` — NOT via a postinstall hook — so consumer-side `npm install --ignore-scripts` does NOT mitigate. Exfiltration covers AWS / GCP / Azure credentials, SSH private keys, Kubernetes kubeconfig, HashiCorp Vault tokens, Claude AI configs, and Kiro IDE configs via DNS TXT queries to an Azure-lookalike spoofed domain. Class: registry-side account-recovery abuse mediated by DNS lifecycle, distinct from token-compromise (Shai-Hulud) and typosquat-orphan-commit (elementary-data) precedents.",
|
|
1841
|
+
"privileges_required": "downstream consumer runs `npm install` resolving to one of the three malicious versions; payload fires automatically on `require('node-ipc')`",
|
|
1842
|
+
"complexity": "low for downstream consumers (automatic on require); low for the maintainer-account takeover itself (any attacker monitoring maintainer-email-domain expirations can reproduce)",
|
|
1843
|
+
"ai_factor": "Not AI-discovered, not AI-built. The novelty is structural — expired-domain → npm password-reset → publish — not algorithmic."
|
|
1844
|
+
},
|
|
1845
|
+
"defense_chain": {
|
|
1846
|
+
"prevention": {
|
|
1847
|
+
"what_would_have_worked": "(1) Continuous WHOIS-expiry monitoring on the email domains of every critical-path package maintainer. (2) Registry-side mandatory MFA on publish-enabled maintainer accounts (npm policy gap as of 2026-05-15). (3) Lockfile pinning to versions published before 2026-05-14T00:00Z, combined with `npm ci` (which refuses lockfile drift) rather than `npm install`. (4) Registry-side hold-period on first-publish-from-recently-recovered-account (npm has no such control today).",
|
|
1848
|
+
"was_this_required": false,
|
|
1849
|
+
"framework_requiring_it": null,
|
|
1850
|
+
"adequacy": "WHOIS-expiry monitoring is novel — no current standard treats expired-domain → account-recovery as a distinct supply-chain attack class. `--ignore-scripts` (the canonical npm-supply-chain mitigation since Shai-Hulud) does NOT mitigate this payload because it ships in the main module, not in a postinstall hook. Lockfile pinning works only if the lockfile predates 2026-05-14 AND `npm ci` is used."
|
|
1851
|
+
},
|
|
1852
|
+
"detection": {
|
|
1853
|
+
"what_would_have_worked": "DNS-resolver telemetry on developer / CI hosts — the payload's DNS TXT exfiltration channel is invisible to HTTP egress filtering but recordable at any DNS resolver (Resolved, Cloudflare DNS, internal Unbound). File-read telemetry on credential-store paths (~/.aws/credentials, ~/.ssh/id_*, ~/.kube/config, ~/.vault-token, ~/.config/Claude/, ~/.kiro/) within the lifetime of a Node process is a near-deterministic IoC for any credential-stealer in the Node ecosystem.",
|
|
1854
|
+
"was_this_required": false,
|
|
1855
|
+
"framework_requiring_it": null,
|
|
1856
|
+
"adequacy": "DNS-layer telemetry is the only channel that proves successful exfiltration; HTTP-egress monitoring will miss this class entirely. Most developer endpoints and CI runners do not retain DNS logs."
|
|
1857
|
+
},
|
|
1858
|
+
"response": {
|
|
1859
|
+
"what_would_have_worked": "npm yanked the three malicious versions on 2026-05-14. Full credential rotation for every account whose material was reachable from any host that resolved a malicious version during the exposure window — AWS access keys, GCP service-account keys, Azure tokens, SSH private keys, kubeconfig, Vault tokens. Lockfile audit + republication of any downstream package the affected host had npm-publish rights on.",
|
|
1860
|
+
"was_this_required": false,
|
|
1861
|
+
"framework_requiring_it": null,
|
|
1862
|
+
"adequacy": "Yank closes new consumer exposure but does not retroactively un-harvest credentials already exfiltrated via DNS. The DNS exfil channel is one-shot; rotation is the only operational response."
|
|
1863
|
+
}
|
|
1864
|
+
},
|
|
1865
|
+
"framework_coverage": {
|
|
1866
|
+
"NIST-800-218-SSDF": {
|
|
1867
|
+
"covered": true,
|
|
1868
|
+
"adequate": false,
|
|
1869
|
+
"gap": "Reused-OSS-component control assumes maintainer-account integrity; does not address maintainer-email-domain expiry as a supply-chain risk class."
|
|
1870
|
+
},
|
|
1871
|
+
"EU-CRA-Art13": {
|
|
1872
|
+
"covered": true,
|
|
1873
|
+
"adequate": false,
|
|
1874
|
+
"gap": "SBOM requirement does not address freshness-of-published-version OR maintainer-account-recovery integrity — pinning to a malicious version is SBOM-compliant."
|
|
1875
|
+
},
|
|
1876
|
+
"NIS2-Art21-supply-chain": {
|
|
1877
|
+
"covered": true,
|
|
1878
|
+
"adequate": false,
|
|
1879
|
+
"gap": "Generic supply chain controls without npm-ecosystem-specific guidance (maintainer-domain-expiry monitoring, registry-account MFA enforcement, main-module-vs-postinstall payload distinction)."
|
|
1880
|
+
},
|
|
1881
|
+
"SLSA-v1.0-Build-L3": {
|
|
1882
|
+
"covered": true,
|
|
1883
|
+
"adequate": false,
|
|
1884
|
+
"gap": "Build provenance attestations assert who built the artifact, not whether `who` is still the legitimate maintainer post-account-recovery."
|
|
1885
|
+
},
|
|
1886
|
+
"NIST-800-53-IA-5-Federated": {
|
|
1887
|
+
"covered": true,
|
|
1888
|
+
"adequate": false,
|
|
1889
|
+
"gap": "Authenticator-management control covers operator-side credentials only; does not extend to upstream-maintainer-account recovery flow on third-party package registries."
|
|
1890
|
+
},
|
|
1891
|
+
"ANY-FRAMEWORK": {
|
|
1892
|
+
"covered": false,
|
|
1893
|
+
"adequate": false,
|
|
1894
|
+
"gap": "No current standard treats `expired maintainer email domain → registry-side account recovery → malicious publish` as a distinct supply-chain attack class. NEW-CTRL-047 is the headline novel control this lesson generates."
|
|
1895
|
+
}
|
|
1896
|
+
},
|
|
1897
|
+
"new_control_requirements": [
|
|
1898
|
+
{
|
|
1899
|
+
"id": "NEW-CTRL-047",
|
|
1900
|
+
"name": "PACKAGE-MAINTAINER-DOMAIN-EXPIRY-MONITORING",
|
|
1901
|
+
"description": "Every organization that depends on a critical-path open-source package must continuously monitor the WHOIS expiry date of the email domain associated with each upstream maintainer account on npm / PyPI / Crates / RubyGems. Alert on any maintainer-domain WHOIS expiry within 90 days. Concurrently, require dual-factor account recovery on the consuming organization's own registry accounts (no email-only password reset) — and treat the absence of registry-enforced MFA on upstream maintainers as a supply-chain risk to be tracked in the SBOM / VEX surface.",
|
|
1902
|
+
"evidence": "MAL-2026-NODE-IPC-STEALER — the `atlantis-software.net` domain lapsed on or before 2026-05-07 and was re-registered by the attacker via Namecheap PrivateEmail; npm's email-based password-reset flow then delivered publish rights to the attacker without any credential leak. No current framework treats expired-domain → account-recovery as a distinct supply-chain attack class.",
|
|
1903
|
+
"gap_closes": [
|
|
1904
|
+
"NIST-800-218-SSDF",
|
|
1905
|
+
"NIS2-Art21-supply-chain",
|
|
1906
|
+
"EU-CRA-Art13",
|
|
1907
|
+
"NIST-800-53-IA-5-Federated",
|
|
1908
|
+
"ANY-FRAMEWORK"
|
|
1909
|
+
]
|
|
1910
|
+
},
|
|
1911
|
+
{
|
|
1912
|
+
"id": "NEW-CTRL-048",
|
|
1913
|
+
"name": "NPM-MAINTAINER-MFA-ENFORCEMENT",
|
|
1914
|
+
"description": "npm (and equivalent registries) must enforce mandatory MFA on publish-enabled maintainer accounts for any package above a download-volume threshold (e.g. >= 100K weekly downloads). Pending registry-side enforcement, consuming organizations should require — via SLA or contractual surface — that critical-path maintainers attest to MFA-on-publish, and refuse to upgrade packages where attestation is absent.",
|
|
1915
|
+
"evidence": "MAL-2026-NODE-IPC-STEALER — node-ipc carries approximately 3.35M monthly downloads; npm did not require MFA on the publish-enabled maintainer account at compromise time, so the password-reset-via-recovered-email flow succeeded without a second factor.",
|
|
1916
|
+
"gap_closes": [
|
|
1917
|
+
"NIST-800-218-SSDF",
|
|
1918
|
+
"NIST-800-53-IA-5-Federated",
|
|
1919
|
+
"NIS2-Art21-supply-chain"
|
|
1920
|
+
]
|
|
1921
|
+
},
|
|
1922
|
+
{
|
|
1923
|
+
"id": "NEW-CTRL-049",
|
|
1924
|
+
"name": "LOCKFILE-INTEGRITY-VERIFIED-AT-CI-BOOT",
|
|
1925
|
+
"description": "CI pipelines must use `npm ci` (or `pnpm install --frozen-lockfile`, `yarn install --immutable`) rather than `npm install`. The strict-lockfile command refuses to resolve any version not already pinned in the lockfile, catching a maintainer-swap-induced version drift before the malicious tarball is fetched. Additionally, verify tarball integrity hashes against a known-good cache snapshot at CI boot for every dependency in critical-path packages.",
|
|
1926
|
+
"evidence": "MAL-2026-NODE-IPC-STEALER — consumers whose lockfile predated 2026-05-14 were safe only if they used a strict-lockfile install command; `npm install` would have happily upgraded within the declared semver range and pulled the malicious version. The strict-lockfile gate catches the swap even after a successful registry-side publish.",
|
|
1927
|
+
"gap_closes": [
|
|
1928
|
+
"NIST-800-218-SSDF",
|
|
1929
|
+
"EU-CRA-Art13",
|
|
1930
|
+
"SLSA-v1.0-Build-L3"
|
|
1931
|
+
]
|
|
1932
|
+
}
|
|
1933
|
+
],
|
|
1934
|
+
"compliance_exposure_score": {
|
|
1935
|
+
"percent_audit_passing_orgs_still_exposed": 95,
|
|
1936
|
+
"basis": "Maintainer-domain-expiry monitoring is not a recognized control in any major framework; near-100% of audit-passing organizations have zero coverage of this risk class. Even organizations with strong npm hygiene (lockfile pinning, `npm ci`, `--ignore-scripts` defaults) are exposed because the payload ships in the main module — `--ignore-scripts` does not mitigate, and lockfile pinning only helps if the lockfile predates the malicious publish AND the consumer uses a strict-lockfile install command.",
|
|
1937
|
+
"theater_pattern": "maintainer_account_integrity_assumed_without_evidence"
|
|
1938
|
+
},
|
|
1939
|
+
"ai_discovered_zeroday": false,
|
|
1940
|
+
"ai_discovery_source": "vendor_research",
|
|
1941
|
+
"ai_discovery_date": "2026-05-14",
|
|
1942
|
+
"ai_assist_factor": "low"
|
|
1835
1943
|
}
|
|
1836
1944
|
}
|
package/manifest-snapshot.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_comment": "Auto-generated by scripts/refresh-manifest-snapshot.js — do not hand-edit. Public skill surface used by check-manifest-snapshot.js to detect breaking removals.",
|
|
3
|
-
"_generated_at": "2026-05-16T04:
|
|
3
|
+
"_generated_at": "2026-05-16T04:39:41.122Z",
|
|
4
4
|
"atlas_version": "5.4.0",
|
|
5
5
|
"skill_count": 42,
|
|
6
6
|
"skills": [
|
package/manifest-snapshot.sha256
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
390cd070a918bbdb2e6656f60b6c85d47497d8ea6ef47e64a15a4e6d2d3d7dca manifest-snapshot.json
|
package/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "exceptd-security",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.33",
|
|
4
4
|
"description": "AI security skills grounded in mid-2026 threat reality, not stale framework documentation",
|
|
5
5
|
"homepage": "https://exceptd.com",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
],
|
|
54
54
|
"last_threat_review": "2026-05-01",
|
|
55
55
|
"signature": "N6H4u/u1fCFE6f/3QVkAr2cumZvLNE+xYBC91CCxKoeaSKm5zqbwzb2mvFDk9XKUegUy5W6npLFGi75yxNMIAg==",
|
|
56
|
-
"signed_at": "2026-05-16T04:
|
|
56
|
+
"signed_at": "2026-05-16T04:39:40.742Z",
|
|
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": "Xen6ojQGzT4AZUN/WtuQon+gT2UrJyX50nrZwEdxLw5aiz8gDaeMkWo/Bic+h4NFEF7MRd7uDTm0dvKgWnlRBA==",
|
|
120
|
-
"signed_at": "2026-05-16T04:
|
|
120
|
+
"signed_at": "2026-05-16T04:39:40.744Z",
|
|
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": "IDhdamTvyWfnz7SvIMrVMz2cwLuiP2/Iw2iYHFNbI1O302XnrGyIVsJcoKZa5QFClBYPiABVt+yI5HEuLxMCBw==",
|
|
183
|
-
"signed_at": "2026-05-16T04:
|
|
183
|
+
"signed_at": "2026-05-16T04:39:40.745Z",
|
|
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": "cPRRTsNQT1MYR3cE5O3KdC4MB037EMc0fsMIbOyfOv16sR+DkiXmAhQOjlIC47HngHz3vhLI+rbqItN91VWpBg==",
|
|
229
|
-
"signed_at": "2026-05-16T04:
|
|
229
|
+
"signed_at": "2026-05-16T04:39:40.745Z"
|
|
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": "79NrFMRsqGsipWeE5ETQSVICGO4BjTJYgyir+PSaNVFpkLqLcwZd8Dr1V7iwX0H0fXFL3WpPz35gtrYCEG32BQ==",
|
|
260
|
-
"signed_at": "2026-05-16T04:
|
|
260
|
+
"signed_at": "2026-05-16T04:39:40.745Z"
|
|
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": "O7YIzAOQtSCFD0pyUdF0otYy9xwksrRGCLnSw5aMMGOs0SYeYA1JsMX5XLxNOQJC8tURC21HgQc/yx22jLtvAw==",
|
|
289
|
-
"signed_at": "2026-05-16T04:
|
|
289
|
+
"signed_at": "2026-05-16T04:39:40.745Z"
|
|
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": "ai6ebp9pz7dBigm2rQvQ0SklhDZtHqP3exKtolbEBiN0shQScypJfDBaQN2J3aoOC4dZjjTgIZvGfWLmBxrxBA==",
|
|
326
|
-
"signed_at": "2026-05-16T04:
|
|
326
|
+
"signed_at": "2026-05-16T04:39:40.746Z",
|
|
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": "BkDjyCF53MAATVfzERmIhEhi474eWloxD0qyw9Gvw+VFE8aH3pOi+yeCpc0kq0vHAVmAEszwxBKEcuLkJbmSBg==",
|
|
383
|
-
"signed_at": "2026-05-16T04:
|
|
383
|
+
"signed_at": "2026-05-16T04:39:40.746Z",
|
|
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": "DxfXhSyoAGUo1emHh0uIIcg324ZreBYxmFdBDVAKOOuPmMlfN4RqNc/JGDSfVmMv5CjgYCUcSmkcYB0A5lk0Cg==",
|
|
418
|
-
"signed_at": "2026-05-16T04:
|
|
418
|
+
"signed_at": "2026-05-16T04:39:40.747Z",
|
|
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": "rFQ82v+1oAHWixWcGwokKhjZHfXUf6N7EfSgldhQ5Jrbiy3kv5CIbnOCsI6zPWyErSnpKVeBFTabJXnzLrzDCQ==",
|
|
446
|
-
"signed_at": "2026-05-16T04:
|
|
446
|
+
"signed_at": "2026-05-16T04:39:40.747Z"
|
|
447
447
|
},
|
|
448
448
|
{
|
|
449
449
|
"name": "global-grc",
|
|
@@ -475,7 +475,7 @@
|
|
|
475
475
|
"framework_gaps": [],
|
|
476
476
|
"last_threat_review": "2026-05-01",
|
|
477
477
|
"signature": "7yVjZkanFMKDQqXdX4B/7oLc2Rz72xHC1zscYd8F/+e5UAbR7ikK8Bn5EKZt3aBEOhHPAviSQNCMxpZD9U00CA==",
|
|
478
|
-
"signed_at": "2026-05-16T04:
|
|
478
|
+
"signed_at": "2026-05-16T04:39:40.748Z"
|
|
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": "VlPR7yY39hEwDJYYKPgHAOeax9LU0X7eIrR8L7zMFJWS0SdKTalOXXJtD9GppByftnkYAAdryZ8tHQ/KWLtaBQ==",
|
|
505
|
-
"signed_at": "2026-05-16T04:
|
|
505
|
+
"signed_at": "2026-05-16T04:39:40.748Z"
|
|
506
506
|
},
|
|
507
507
|
{
|
|
508
508
|
"name": "pqc-first",
|
|
@@ -554,7 +554,7 @@
|
|
|
554
554
|
],
|
|
555
555
|
"last_threat_review": "2026-05-01",
|
|
556
556
|
"signature": "V+qn5FqUlETfsEjvvi6jZGuQdqLFtFejfgPA6KSYxSlBXBTbOBXP3BGk5S+ba9akIzgbKh1j9VGB1MqsIt56DA==",
|
|
557
|
-
"signed_at": "2026-05-16T04:
|
|
557
|
+
"signed_at": "2026-05-16T04:39:40.748Z",
|
|
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": "WCNz19186cER1eEhCophTIbnL3ltS3FC98I1rfv463aRnuVxPB3sUlD9xHTbxTM2rUABhqKijhdkWiMh2uKxCQ==",
|
|
604
|
-
"signed_at": "2026-05-16T04:
|
|
604
|
+
"signed_at": "2026-05-16T04:39:40.748Z"
|
|
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": "zjq6ACAHD46xvhvQJKlrCPh5xDCuBuIWBI+QJB8RxcudpC7p7I1pqv+BY8DZdsAgU4tquCU8KC+xlduMIk3/DQ==",
|
|
641
|
-
"signed_at": "2026-05-16T04:
|
|
641
|
+
"signed_at": "2026-05-16T04:39:40.749Z",
|
|
642
642
|
"cwe_refs": [
|
|
643
643
|
"CWE-1188"
|
|
644
644
|
]
|
|
@@ -673,7 +673,7 @@
|
|
|
673
673
|
"framework_gaps": [],
|
|
674
674
|
"last_threat_review": "2026-05-11",
|
|
675
675
|
"signature": "/lGgWehCMQUXjI6w4FUa+5wrbyRnct+txvVcXA+D2/ZEkoJKh+J/psO3j5HPf7Hpv+Y5SmkH71CoO+9qilyVDQ==",
|
|
676
|
-
"signed_at": "2026-05-16T04:
|
|
676
|
+
"signed_at": "2026-05-16T04:39:40.749Z"
|
|
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": "RqQMwOKK7xjG9e/Ls4986NOrDwKz/nQmpw1DwNJwV2nlOztyo7MgxUG3kTuLbuW3qCrrkO+CbpBA5nGS1cmKBQ==",
|
|
747
|
-
"signed_at": "2026-05-16T04:
|
|
747
|
+
"signed_at": "2026-05-16T04:39:40.749Z"
|
|
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": "+ELdD+1AY5DymBitH7wU65CS60NY1nDoLowJAFn7cE5Gr/5jy9BTkyxsm7PEXaSlXWMOkTf/HQ+uyzyxUVD/Bw==",
|
|
807
|
-
"signed_at": "2026-05-16T04:
|
|
807
|
+
"signed_at": "2026-05-16T04:39:40.749Z"
|
|
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": "vL5XeQOk7vwX0sLMuKghj6XLnXsqKcGpCUNMui9HwqnWyNQwgSRGu+JFqP7ZqpP3SUYRZHcVlWhXeTJHyOtiAA==",
|
|
882
|
-
"signed_at": "2026-05-16T04:
|
|
882
|
+
"signed_at": "2026-05-16T04:39:40.750Z"
|
|
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": "jp3MxKukV7zW47eX3VcAIMG5WxypMDcfHqwYDodI9YQgTxEojCrRcMSApaoZHTdD3yTQC1JtkXeKxU6K3C5NCg==",
|
|
959
|
-
"signed_at": "2026-05-16T04:
|
|
959
|
+
"signed_at": "2026-05-16T04:39:40.750Z"
|
|
960
960
|
},
|
|
961
961
|
{
|
|
962
962
|
"name": "defensive-countermeasure-mapping",
|
|
@@ -1013,7 +1013,7 @@
|
|
|
1013
1013
|
],
|
|
1014
1014
|
"last_threat_review": "2026-05-11",
|
|
1015
1015
|
"signature": "XZigwq8X/csfrdG10O6Q1V5q0zUqSQGd3QrjRKkZ4fkaodG4mZahYuIQqxc8rU9jjtGAm9LtBXYB+I5csqj9Bw==",
|
|
1016
|
-
"signed_at": "2026-05-16T04:
|
|
1016
|
+
"signed_at": "2026-05-16T04:39:40.750Z"
|
|
1017
1017
|
},
|
|
1018
1018
|
{
|
|
1019
1019
|
"name": "identity-assurance",
|
|
@@ -1080,7 +1080,7 @@
|
|
|
1080
1080
|
"d3fend_refs": [],
|
|
1081
1081
|
"last_threat_review": "2026-05-11",
|
|
1082
1082
|
"signature": "k0HrsZMBxiPWB1jl4dRwhv/R5IsqbZ+SLDv1Jx3/sRl51JyXjtm8vyogTNhSwsl5/IkaRakqIPJFRFRl5h/9CQ==",
|
|
1083
|
-
"signed_at": "2026-05-16T04:
|
|
1083
|
+
"signed_at": "2026-05-16T04:39:40.751Z"
|
|
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": "oHxjumOhk8y86WcwhAX8sSWIlPzt60KfTMn4DCJLeRrrQd5+i54fVADKAdZ3vOqfDN+DexO0uX4f5dLPtacRCQ==",
|
|
1139
|
-
"signed_at": "2026-05-16T04:
|
|
1139
|
+
"signed_at": "2026-05-16T04:39:40.751Z"
|
|
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": "UCiNjncvhkZItmLQA/Sm1/NCsOiLMwdCjfUw+067v4NIxhaMMaqRrAeD3KgMyEtov7m2Hq2kfwYSt5+DQsYDCQ==",
|
|
1191
|
-
"signed_at": "2026-05-16T04:
|
|
1191
|
+
"signed_at": "2026-05-16T04:39:40.751Z"
|
|
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": "V9kl8Cf8UMjNFyn3D/fSyhWHLeXWlx3WV/jT9jdF9SrjfDqymimuTt2o91cZ2FOEJndAH9V0JGXB13Ohz8K4CQ==",
|
|
1241
|
-
"signed_at": "2026-05-16T04:
|
|
1241
|
+
"signed_at": "2026-05-16T04:39:40.752Z"
|
|
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": "ENSL4MJSNXhriKsTVBjg2jTc7JTtb6mxqbfBw/SVVajPMkLMcLBk4Gem9LhZWZ8DSqyWLnFO2d6hlz5q8bjuCg==",
|
|
1315
|
-
"signed_at": "2026-05-16T04:
|
|
1315
|
+
"signed_at": "2026-05-16T04:39:40.752Z"
|
|
1316
1316
|
},
|
|
1317
1317
|
{
|
|
1318
1318
|
"name": "ai-risk-management",
|
|
@@ -1362,7 +1362,7 @@
|
|
|
1362
1362
|
"d3fend_refs": [],
|
|
1363
1363
|
"last_threat_review": "2026-05-11",
|
|
1364
1364
|
"signature": "8E82UwKFNraXV/MKAbiUV6gUryYuN+Ff/kiv1aW4/XtriShdTyt/UgRuQJ8LXGXl0jMH8hRJ/xTAV8LOJqexDA==",
|
|
1365
|
-
"signed_at": "2026-05-16T04:
|
|
1365
|
+
"signed_at": "2026-05-16T04:39:40.752Z"
|
|
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": "BDuLcpTeFp2BNSf1q4rYOhYKNhlgd3o5RZ0Uw9xW5olyYxPbZSgqekQ+6Ggaec09s7y6sqR37GS0vuAMdbrdDQ==",
|
|
1425
|
-
"signed_at": "2026-05-16T04:
|
|
1425
|
+
"signed_at": "2026-05-16T04:39:40.753Z"
|
|
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": "w12QqGBlRDaDVYug9uQVmEbxR7+gX23rOKZSjlt3XcszYDHBCRiP4cBRKMuEguu44DCaQsg+Btu4vAVMlss9Dg==",
|
|
1506
|
-
"signed_at": "2026-05-16T04:
|
|
1506
|
+
"signed_at": "2026-05-16T04:39:40.753Z"
|
|
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": "nMsyJ+rp5fM8/VjC7zsZyDjOC4hpxB+noT1VX7W0HBlq5t3SY56cwOGApwES/kBcCuf4qexKY376OxUr93zvCQ==",
|
|
1575
|
-
"signed_at": "2026-05-16T04:
|
|
1575
|
+
"signed_at": "2026-05-16T04:39:40.753Z"
|
|
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": "L1moEqEGkBkqY/3ohJcfqrlJn40UurDCyb2MOP/IwTAeZD+QbVZ17/drdsydkJ6qSXPiyiE6u8HDfZsDS13NBQ==",
|
|
1640
|
-
"signed_at": "2026-05-16T04:
|
|
1640
|
+
"signed_at": "2026-05-16T04:39:40.754Z"
|
|
1641
1641
|
},
|
|
1642
1642
|
{
|
|
1643
1643
|
"name": "sector-telecom",
|
|
@@ -1723,7 +1723,7 @@
|
|
|
1723
1723
|
"O-RAN SFG / WG11 security specifications"
|
|
1724
1724
|
],
|
|
1725
1725
|
"signature": "VKLuoRkFq7lNXqySipwzPSaiHaqemHQ2cReemF/Xy9hUpD9orQaTVZWClOA4lzoF6d2eQ/CeS///Jjnj4g9dCg==",
|
|
1726
|
-
"signed_at": "2026-05-16T04:
|
|
1726
|
+
"signed_at": "2026-05-16T04:39:40.754Z"
|
|
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": "JHGu5OI35payaFR1At3XZIX4HnflgF3lI9vk/XsHpu0loWHtbTiA/SrNzTuWO+be8aIfd36uNz7WnJNwBTCHDA==",
|
|
1795
|
-
"signed_at": "2026-05-16T04:
|
|
1795
|
+
"signed_at": "2026-05-16T04:39:40.755Z"
|
|
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": "UEn0305KAEqIfYOdzadLBdPG/PJ+3sJ/8ubvPFNcXfqXp2uOWTfqGUqY65PApA992VEEa1RBQt5R7Nyhd/OjDQ==",
|
|
1876
|
-
"signed_at": "2026-05-16T04:
|
|
1876
|
+
"signed_at": "2026-05-16T04:39:40.755Z"
|
|
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": "lPd9tHAskNapjrWwFWhsb8ntAL0xovDCIGElsOCyjcafzby4ArwRw5Lq28sfNloJZAhMN+AWj+lDdFytiUQHCQ==",
|
|
1938
|
-
"signed_at": "2026-05-16T04:
|
|
1938
|
+
"signed_at": "2026-05-16T04:39:40.755Z"
|
|
1939
1939
|
},
|
|
1940
1940
|
{
|
|
1941
1941
|
"name": "mlops-security",
|
|
@@ -2006,7 +2006,7 @@
|
|
|
2006
2006
|
"MITRE ATLAS v5.2 — track AML.T0010 sub-technique expansion and any new MLOps-pipeline-specific TTPs"
|
|
2007
2007
|
],
|
|
2008
2008
|
"signature": "U+HyElcP007FIblXUE/nFpj/rZ5z3VohsvxRCWEuuJDLdOnsXYEadb7ccr3X7S4aRG2MC4T2KtVtgbKIuO5QDw==",
|
|
2009
|
-
"signed_at": "2026-05-16T04:
|
|
2009
|
+
"signed_at": "2026-05-16T04:39:40.756Z"
|
|
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": "XB3TVjNRBlqqbIhatFoYtTJHTS51nVt9k7DVrb2roUflLDjbCnaTbrpztA2oqJyyxwgnLlX+K7NW8oYOYEMeCg==",
|
|
2071
|
-
"signed_at": "2026-05-16T04:
|
|
2071
|
+
"signed_at": "2026-05-16T04:39:40.756Z"
|
|
2072
2072
|
},
|
|
2073
2073
|
{
|
|
2074
2074
|
"name": "ransomware-response",
|
|
@@ -2147,8 +2147,8 @@
|
|
|
2147
2147
|
"SCOTUS or circuit-court rulings on ransomware payment, sanctions liability, and insurance-policy enforcement"
|
|
2148
2148
|
],
|
|
2149
2149
|
"last_threat_review": "2026-05-15",
|
|
2150
|
-
"signature": "
|
|
2151
|
-
"signed_at": "2026-05-16T04:
|
|
2150
|
+
"signature": "ossJwdH0ZQcu2S/Sy1j5s/PqAll/M9yYuF6oxxKl5GrVPueE4Ecxe+X4oIZ41yIG7Z1Ih1cgq8Sw8JwnaktzBA==",
|
|
2151
|
+
"signed_at": "2026-05-16T04:39:40.756Z"
|
|
2152
2152
|
},
|
|
2153
2153
|
{
|
|
2154
2154
|
"name": "email-security-anti-phishing",
|
|
@@ -2201,7 +2201,7 @@
|
|
|
2201
2201
|
"d3fend_refs": [],
|
|
2202
2202
|
"last_threat_review": "2026-05-11",
|
|
2203
2203
|
"signature": "RiCryJEd66T2NNcSo/mZTd3sGWDycE3C37guLJanLdVL5co35DrPFmIl8qy3ZM/y+Wzg5vpny8VKgr1//1/bCA==",
|
|
2204
|
-
"signed_at": "2026-05-16T04:
|
|
2204
|
+
"signed_at": "2026-05-16T04:39:40.757Z"
|
|
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": "MMWvg3lIf5ygm31zyf1E43t3W9MfRbMBBPrqlj1wOa8AxVJL8LICnAXfmyJ/TNJXwpF+rfZeDdoxXkql8wmtBA==",
|
|
2272
|
-
"signed_at": "2026-05-16T04:
|
|
2272
|
+
"signed_at": "2026-05-16T04:39:40.757Z"
|
|
2273
2273
|
},
|
|
2274
2274
|
{
|
|
2275
2275
|
"name": "cloud-iam-incident",
|
|
@@ -2348,8 +2348,8 @@
|
|
|
2348
2348
|
"D3-CAA"
|
|
2349
2349
|
],
|
|
2350
2350
|
"last_threat_review": "2026-05-15",
|
|
2351
|
-
"signature": "
|
|
2352
|
-
"signed_at": "2026-05-16T04:
|
|
2351
|
+
"signature": "BST7fWHHxtYrB8L79RqMsQT3NuidigkPVkIZK2Ps43PgF9SMa117ltobk5954vEb1B7kgiWPa3DurLRLdUmGBg==",
|
|
2352
|
+
"signed_at": "2026-05-16T04:39:40.757Z"
|
|
2353
2353
|
},
|
|
2354
2354
|
{
|
|
2355
2355
|
"name": "idp-incident-response",
|
|
@@ -2429,12 +2429,12 @@
|
|
|
2429
2429
|
"D3-IOPR"
|
|
2430
2430
|
],
|
|
2431
2431
|
"last_threat_review": "2026-05-15",
|
|
2432
|
-
"signature": "
|
|
2433
|
-
"signed_at": "2026-05-16T04:
|
|
2432
|
+
"signature": "n9d4fdaSHCMieXRDkBz88kITsUFFlngr2gn2IvGFqJLH+xOEDp4ohS62Vk/zq4+Mhi4QEVKSu3mONOAk3nsYBQ==",
|
|
2433
|
+
"signed_at": "2026-05-16T04:39:40.758Z"
|
|
2434
2434
|
}
|
|
2435
2435
|
],
|
|
2436
2436
|
"manifest_signature": {
|
|
2437
2437
|
"algorithm": "Ed25519",
|
|
2438
|
-
"signature_base64": "
|
|
2438
|
+
"signature_base64": "8VWCymUVv6BXXAP2waRxy7QmYGXXpZYaRqalHQ4FmwzdFx1P6lFR0Wwyntqopx2FAEgDroLgEpeFVNIk7fOqBA=="
|
|
2439
2439
|
}
|
|
2440
2440
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blamejs/exceptd-skills",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.33",
|
|
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",
|