@blamejs/exceptd-skills 0.18.26 → 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.
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * lib/currency-severity.js
5
+ *
6
+ * Pure function used by the `exceptd doctor` verb to turn a currency report
7
+ * into a health verdict.
8
+ *
9
+ * The scoring model in orchestrator/pipeline.js grades every skill on four
10
+ * labels — current (score >= 90), acceptable (70-89), stale (50-69),
11
+ * critical_stale (< 50) — and raises `action_required` only below 70. The
12
+ * pre-extraction predicate in the doctor ignored that ladder and failed on
13
+ * `currency_label !== "current"`, which folded the acceptable tier in with
14
+ * genuine staleness.
15
+ *
16
+ * That made the health check a scheduled failure rather than a signal: a
17
+ * skill's score drops from 90 to 80 the day it crosses 90 days since
18
+ * `last_threat_review`, so any skill will turn `doctor` red on a fixed
19
+ * cadence with no code change and nothing actually wrong.
20
+ *
21
+ * The tiers now map to severity the way the model defines them:
22
+ *
23
+ * current → healthy, no entry in either bucket
24
+ * acceptable (drifting) → severity:"warn", ok:true, exit 0
25
+ * stale / critical_stale → ok:false (error), exit 1
26
+ *
27
+ * `stale_skills` keeps its original meaning — every skill that is not
28
+ * `current` — so an existing consumer reading it still sees the full picture.
29
+ * `drifting_skills` and `action_required_skills` split that list along the
30
+ * boundary the exit code now respects.
31
+ */
32
+
33
+ /**
34
+ * @param {object[]} report currency_report rows from currencyCheck()
35
+ * @param {boolean} actionRequired the report-level action_required flag
36
+ * @returns {{ok: boolean, severity: string|null, stale: object[], drifting: object[], actionable: object[], critical: object[]}}
37
+ */
38
+ function classifyCurrency(report, actionRequired) {
39
+ const rows = Array.isArray(report) ? report.filter(r => r && typeof r === "object") : [];
40
+
41
+ const stale = rows.filter(s => s.action_required || s.currency_label !== "current");
42
+ const drifting = rows.filter(s => !s.action_required && s.currency_label !== "current");
43
+ const actionable = rows.filter(s => s.action_required);
44
+ const critical = rows.filter(s => s.currency_score !== undefined && s.currency_score < 50);
45
+
46
+ // The report-level flag is honored even when no row carries action_required,
47
+ // so an upstream that raises the flag some other way still fails closed.
48
+ const ok = actionable.length === 0 && !actionRequired;
49
+
50
+ return {
51
+ ok,
52
+ severity: ok && drifting.length > 0 ? "warn" : null,
53
+ stale,
54
+ drifting,
55
+ actionable,
56
+ critical,
57
+ };
58
+ }
59
+
60
+ module.exports = { classifyCurrency };
package/manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exceptd-security",
3
- "version": "0.18.26",
3
+ "version": "0.18.28",
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",
@@ -57,7 +57,7 @@
57
57
  ],
58
58
  "last_threat_review": "2026-05-15",
59
59
  "signature": "0H+JfyUVmo/pVFEi5rLENATHjlukPVUqnOWmNPEH77wm8svKGK0aNJ46k6QU5GdHb8c9X9pVJKiuhON6AxDjDw==",
60
- "signed_at": "2026-07-23T05:37:43.146Z",
60
+ "signed_at": "2026-08-06T01:22:51.525Z",
61
61
  "cwe_refs": [
62
62
  "CWE-125",
63
63
  "CWE-362",
@@ -133,7 +133,7 @@
133
133
  ],
134
134
  "last_threat_review": "2026-06-10",
135
135
  "signature": "dbRdAJTIpiZSAjWFIWVhWRu3qgaM55Ny0zS3GUIXQmOMtpC1lZuGn5LEamgeC/SSm74wSfKpK4/kdwdx4BIMAA==",
136
- "signed_at": "2026-07-23T05:37:43.147Z",
136
+ "signed_at": "2026-08-06T01:22:51.526Z",
137
137
  "cwe_refs": [
138
138
  "CWE-1039",
139
139
  "CWE-1426",
@@ -215,7 +215,7 @@
215
215
  ],
216
216
  "last_threat_review": "2026-06-10",
217
217
  "signature": "wREB+mZgthecczhafoQfp/Wu8n46J32vh35NtW4t5ZiY5mw9817koZTateEsGz1mEHi/97o3cGfZ+H5pFpHsDA==",
218
- "signed_at": "2026-07-23T05:37:43.147Z",
218
+ "signed_at": "2026-08-06T01:22:51.527Z",
219
219
  "cwe_refs": [
220
220
  "CWE-22",
221
221
  "CWE-345",
@@ -269,7 +269,7 @@
269
269
  "framework_gaps": [],
270
270
  "last_threat_review": "2026-06-10",
271
271
  "signature": "XEKGT1cf1DN2+hWFvUPafEELu2YwcAGAr9tenXS4Gxr3R1sXYcHd1thidl2mpkTS9crr/nK/GjXcuvlUezXKBA==",
272
- "signed_at": "2026-07-23T05:37:43.148Z"
272
+ "signed_at": "2026-08-06T01:22:51.527Z"
273
273
  },
274
274
  {
275
275
  "name": "compliance-theater",
@@ -301,7 +301,7 @@
301
301
  ],
302
302
  "last_threat_review": "2026-06-10",
303
303
  "signature": "URNMHfqGBDdGthW22sGLq/x9sVwYgvKRO9zEOFPcTLbk4LkPqJXF3My4DxELtmqOuWjDLAJCt8Tku9mQWpPeAw==",
304
- "signed_at": "2026-07-23T05:37:43.148Z"
304
+ "signed_at": "2026-08-06T01:22:51.527Z"
305
305
  },
306
306
  {
307
307
  "name": "exploit-scoring",
@@ -332,7 +332,7 @@
332
332
  ],
333
333
  "last_threat_review": "2026-06-10",
334
334
  "signature": "ZOQ/MWqQQXZs2xR/NiILzkS2vdCaf6P5Rqb0cmKeiCCTlXDPnNN5z5xPmKXtAACDtTJEpbgBAO6v3nkw0lVgDQ==",
335
- "signed_at": "2026-07-23T05:37:43.148Z"
335
+ "signed_at": "2026-08-06T01:22:51.528Z"
336
336
  },
337
337
  {
338
338
  "name": "rag-pipeline-security",
@@ -374,7 +374,7 @@
374
374
  ],
375
375
  "last_threat_review": "2026-06-10",
376
376
  "signature": "YRWSEG//Fmphj33NthT8fhvu9Oz1fhYlYAwqeIvx2ikUlqjESDdF0fTiVwW747uBZW/lPXFHNjl4JafMrcy2Dg==",
377
- "signed_at": "2026-07-23T05:37:43.149Z",
377
+ "signed_at": "2026-08-06T01:22:51.528Z",
378
378
  "cwe_refs": [
379
379
  "CWE-1395",
380
380
  "CWE-1426"
@@ -441,7 +441,7 @@
441
441
  ],
442
442
  "last_threat_review": "2026-06-10",
443
443
  "signature": "zBEmuGZrhaLW7hgc6aDkHABw4iuu0+7pwtsb7aCj7K9T40xAIkVnSyv92G9btmsX2vuc65Vlav3fi9QAYEvGDQ==",
444
- "signed_at": "2026-07-23T05:37:43.149Z",
444
+ "signed_at": "2026-08-06T01:22:51.528Z",
445
445
  "cwe_refs": [
446
446
  "CWE-918"
447
447
  ],
@@ -482,7 +482,7 @@
482
482
  "framework_gaps": [],
483
483
  "last_threat_review": "2026-06-10",
484
484
  "signature": "cttcHeZekjEzbbcfinlU8SDTJAhqoAePL/CSf+zTBmMy+YWE0Lzi9Cv9CSi0g51BHrimVm8iSP+BagXC0C/dDQ==",
485
- "signed_at": "2026-07-23T05:37:43.149Z",
485
+ "signed_at": "2026-08-06T01:22:51.528Z",
486
486
  "cwe_refs": [
487
487
  "CWE-1188"
488
488
  ],
@@ -517,7 +517,7 @@
517
517
  "framework_gaps": [],
518
518
  "last_threat_review": "2026-06-10",
519
519
  "signature": "o9JHAYXEU1PZBqSSu7nyy7PWY1ML9y51gEb73N/eaCLBSw6CuGdpyxGwWRYb9kS1o7Px+p3HsXt2Iu3xa+CACQ==",
520
- "signed_at": "2026-07-23T05:37:43.150Z",
520
+ "signed_at": "2026-08-06T01:22:51.529Z",
521
521
  "forward_watch": [
522
522
  "New AI attack classes as ATLAS v6 publishes",
523
523
  "Post-quantum adversary capability timeline",
@@ -550,14 +550,30 @@
550
550
  "global-frameworks.json",
551
551
  "framework-control-gaps.json",
552
552
  "atlas-ttps.json",
553
- "exploit-availability.json"
553
+ "exploit-availability.json",
554
+ "d3fend-catalog.json"
554
555
  ],
555
556
  "atlas_refs": [],
556
557
  "attack_refs": [],
557
558
  "framework_gaps": [],
558
- "last_threat_review": "2026-05-01",
559
- "signature": "b5miTiY0cnxETd2btxorfZBdJKt/fLnQx20sGYUb9zEqGqtm0LMLpghkW68j4/9k48KNyuGMtNWiKTSnodUGBw==",
560
- "signed_at": "2026-07-23T05:37:43.150Z"
559
+ "last_threat_review": "2026-08-05",
560
+ "signature": "Eu2AnT4xyZH9n3OKjm5S9vaiHqUE+1N3oLAQbbt78OCp2HnAQMvqBkUn9rgl4Il7Il7yZW8N7c8hq3mkst+EAA==",
561
+ "signed_at": "2026-08-06T01:22:51.529Z",
562
+ "d3fend_refs": [
563
+ "D3-EAL",
564
+ "D3-EFA",
565
+ "D3-FAPA",
566
+ "D3-FE",
567
+ "D3-IOPR",
568
+ "D3-KBPI",
569
+ "D3-MENCR",
570
+ "D3-MFA",
571
+ "D3-NI",
572
+ "D3-NTA",
573
+ "D3-OTF",
574
+ "D3-SCA",
575
+ "D3-CSPP"
576
+ ]
561
577
  },
562
578
  {
563
579
  "name": "zeroday-gap-learn",
@@ -584,7 +600,7 @@
584
600
  "framework_gaps": [],
585
601
  "last_threat_review": "2026-06-10",
586
602
  "signature": "agl+LgS9xwvNt1fl6nJbVH83viNa36KlxQF9x6w1YJ9rDJztsPn4BzbVIgZOMf77DW+N9sR8hH0Zu1OEmah8Dg==",
587
- "signed_at": "2026-07-23T05:37:43.151Z",
603
+ "signed_at": "2026-08-06T01:22:51.530Z",
588
604
  "forward_watch": [
589
605
  "New CISA KEV entries",
590
606
  "New ATLAS TTP additions in each ATLAS release",
@@ -635,7 +651,8 @@
635
651
  "RFC-9420",
636
652
  "RFC-9794",
637
653
  "RFC-8032",
638
- "RFC-9106"
654
+ "RFC-9106",
655
+ "RFC-9954"
639
656
  ],
640
657
  "forward_watch": [
641
658
  "NIST FIPS 206 (HQC — backup KEM)",
@@ -650,9 +667,9 @@
650
667
  "HSM/TPM vendor PQC firmware support timelines",
651
668
  "New CRQC timeline estimates from academic cryptanalysis"
652
669
  ],
653
- "last_threat_review": "2026-06-10",
654
- "signature": "U54OxIjPT+W9yafjpeFgY7klXMltLYBuSCtu/AAlXxOIPehJrbf/vbGgnBn58nqOd7RjoKjmKz9WQs4DMqWcDw==",
655
- "signed_at": "2026-07-23T05:37:43.151Z",
670
+ "last_threat_review": "2026-08-05",
671
+ "signature": "6KeXiUxE1hd6oQslSAXaMerPn+Z+mG/w/Wch5j6hCjfWJYt0tTwthl695bywswR2NnqJvpK3Kn3iVwdy2Pv8AQ==",
672
+ "signed_at": "2026-08-06T01:22:51.530Z",
656
673
  "cwe_refs": [
657
674
  "CWE-327"
658
675
  ],
@@ -702,7 +719,7 @@
702
719
  ],
703
720
  "last_threat_review": "2026-06-10",
704
721
  "signature": "8W0alFz9LpOQqTYN7YXVPEmgI1eT3bsBlda+FH9fT7fmysWVVQAFA5y0teqUH0jRMCbTPbh3WYQv8wLO7nJgBw==",
705
- "signed_at": "2026-07-23T05:37:43.151Z"
722
+ "signed_at": "2026-08-06T01:22:51.530Z"
706
723
  },
707
724
  {
708
725
  "name": "security-maturity-tiers",
@@ -727,7 +744,9 @@
727
744
  "cve-catalog.json",
728
745
  "framework-control-gaps.json",
729
746
  "global-frameworks.json",
730
- "atlas-ttps.json"
747
+ "atlas-ttps.json",
748
+ "d3fend-catalog.json",
749
+ "rfc-references.json"
731
750
  ],
732
751
  "atlas_refs": [],
733
752
  "attack_refs": [],
@@ -738,11 +757,29 @@
738
757
  "New tooling that makes higher tiers more accessible",
739
758
  "PQC tooling maturity shifting overkill to practical"
740
759
  ],
741
- "last_threat_review": "2026-05-01",
742
- "signature": "Dzw2woUGYArKvAcX2KKzLWd1crA/OjMiyMoDfVvDnFZqdCfbrCpaRnw3i21DN30B6lqu6/0PauMFfS73f+ukBg==",
743
- "signed_at": "2026-07-23T05:37:43.152Z",
760
+ "last_threat_review": "2026-08-05",
761
+ "signature": "jVPmV3GovoD3lkbyamm+bcf0vn8PBgn9gWoYwbV4UKIWbyNSlwnxS/BV2EMujPyfX8bU9yplbUPORKikDoX6BQ==",
762
+ "signed_at": "2026-08-06T01:22:51.531Z",
744
763
  "cwe_refs": [
745
764
  "CWE-1188"
765
+ ],
766
+ "rfc_refs": [
767
+ "RFC-9954"
768
+ ],
769
+ "d3fend_refs": [
770
+ "D3-CSPP",
771
+ "D3-EAL",
772
+ "D3-EFA",
773
+ "D3-FAPA",
774
+ "D3-IOPR",
775
+ "D3-ITF",
776
+ "D3-KBPI",
777
+ "D3-MENCR",
778
+ "D3-MFA",
779
+ "D3-NI",
780
+ "D3-NTA",
781
+ "D3-OTF",
782
+ "D3-SCA"
746
783
  ]
747
784
  },
748
785
  {
@@ -776,7 +813,7 @@
776
813
  "framework_gaps": [],
777
814
  "last_threat_review": "2026-05-11",
778
815
  "signature": "iJWevUBurLvt2v8X+Ch2eHmZkPWpKeAtIpxTIP4MwbUHyco3igDeBywJCyaR2vURYRx8LkzzIMM8DxQM4LAXBQ==",
779
- "signed_at": "2026-07-23T05:37:43.152Z"
816
+ "signed_at": "2026-08-06T01:22:51.531Z"
780
817
  },
781
818
  {
782
819
  "name": "attack-surface-pentest",
@@ -852,7 +889,7 @@
852
889
  "Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — Microsoft Edge 4-bug sandbox escape by Orange Tsai (DEVCORE); forward-watch only (browser sandbox, out of current playbook scope); track Microsoft Edge security advisory and KEV add"
853
890
  ],
854
891
  "signature": "IPf8oR/blIXjsRHEc+2BNbjIYtgikabF/c+6Xfs5vilFf0mBgJTKAqmJNfrSNPQuCSmuA+Ltbv6eCgJlLBLyDw==",
855
- "signed_at": "2026-07-23T05:37:43.152Z"
892
+ "signed_at": "2026-08-06T01:22:51.531Z"
856
893
  },
857
894
  {
858
895
  "name": "fuzz-testing-strategy",
@@ -913,7 +950,7 @@
913
950
  "OSS-Fuzz-Gen / AI-assisted harness generation becoming the default expectation for OSS maintainers"
914
951
  ],
915
952
  "signature": "sl+sYiVwJIEkkPVM/bz+OTILrFfMLc2QDrpA8c19dF9Qc8P30bOXjI3SO6uZin/aWSDfmM5IdFOleREazdMTAA==",
916
- "signed_at": "2026-07-23T05:37:43.153Z"
953
+ "signed_at": "2026-08-06T01:22:51.531Z"
917
954
  },
918
955
  {
919
956
  "name": "dlp-gap-analysis",
@@ -991,7 +1028,7 @@
991
1028
  "Quebec Law 25, India DPDPA, KSA PDPL enforcement actions naming AI-tool prompt data as in-scope personal information"
992
1029
  ],
993
1030
  "signature": "OVAUEww37jlj+90k52kQs7O+IX/wZGM/dFUuPQzKEs9ja0Czm2DXpmRjYqVv7PlDvOL22Ew0yV9LKQfldmGkBA==",
994
- "signed_at": "2026-07-23T05:37:43.153Z"
1031
+ "signed_at": "2026-08-06T01:22:51.532Z"
995
1032
  },
996
1033
  {
997
1034
  "name": "supply-chain-integrity",
@@ -1075,7 +1112,7 @@
1075
1112
  "Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — NVIDIA Megatron Bridge path traversal by haehae; AI training-stack file-system trust boundary; track patch and SBOM-attestation impact"
1076
1113
  ],
1077
1114
  "signature": "c8TcF8E5Fyufm6Gn3ceIhJfGnGEbmzl+W0DqmdF+IHW07KB4Wo11ctkp2IFSsmQIFoxhIjkMyUHaC7UV4MlMCA==",
1078
- "signed_at": "2026-07-23T05:37:43.153Z"
1115
+ "signed_at": "2026-08-06T01:22:51.532Z"
1079
1116
  },
1080
1117
  {
1081
1118
  "name": "defensive-countermeasure-mapping",
@@ -1132,7 +1169,7 @@
1132
1169
  ],
1133
1170
  "last_threat_review": "2026-06-10",
1134
1171
  "signature": "lfa5Wgep26mK3o2ZSe5qN2vVxg+xRRURRpmnqP4JdQvvecW3T2+PxHqjT48DegXJHRXJ6DPzyIElFc7no86TAg==",
1135
- "signed_at": "2026-07-23T05:37:43.153Z"
1172
+ "signed_at": "2026-08-06T01:22:51.532Z"
1136
1173
  },
1137
1174
  {
1138
1175
  "name": "identity-assurance",
@@ -1206,7 +1243,7 @@
1206
1243
  ],
1207
1244
  "last_threat_review": "2026-05-11",
1208
1245
  "signature": "UV3458QXSkEpenzrOmdlTTfPHUD4hNyKMDHoeZDq/kiFb4mAG0ghQGTTgI9Ru8cJbSmYM1++m9N5TFIJ6JJPBg==",
1209
- "signed_at": "2026-07-23T05:37:43.154Z"
1246
+ "signed_at": "2026-08-06T01:22:51.533Z"
1210
1247
  },
1211
1248
  {
1212
1249
  "name": "ot-ics-security",
@@ -1265,7 +1302,7 @@
1265
1302
  "d3fend_refs": [],
1266
1303
  "last_threat_review": "2026-06-10",
1267
1304
  "signature": "5H2gSx4XzIg0/y/zCiB4pusEmLMsK8WDwPP3/R8OM1TDULKDZyEbWfvaWaLMobU17KbVVr6fc80royegGx4qAQ==",
1268
- "signed_at": "2026-07-23T05:37:43.154Z"
1305
+ "signed_at": "2026-08-06T01:22:51.533Z"
1269
1306
  },
1270
1307
  {
1271
1308
  "name": "coordinated-vuln-disclosure",
@@ -1325,7 +1362,7 @@
1325
1362
  "NYDFS 23 NYCRR 500 amendments potentially adding explicit CVD program requirements"
1326
1363
  ],
1327
1364
  "signature": "AaTylp+zWRfJF5vAcJlImdnAxNeMFboe4tZ9N+V7eDF40BKDC7TX2Lb7u69X4Ry5zxBAqx0tOEpesni1DNOzDA==",
1328
- "signed_at": "2026-07-23T05:37:43.154Z"
1365
+ "signed_at": "2026-08-06T01:22:51.533Z"
1329
1366
  },
1330
1367
  {
1331
1368
  "name": "threat-modeling-methodology",
@@ -1379,7 +1416,7 @@
1379
1416
  "PASTA v2 updates incorporating AI/ML application threats"
1380
1417
  ],
1381
1418
  "signature": "q/F/WUeakWNZOJ542rRsMgtM0Ium2AkkDBLOju3vG0+m8PtO/yuBhffhPrL/U6IvGDH6xaoYP+zvqTkaTcB7CQ==",
1382
- "signed_at": "2026-07-23T05:37:43.155Z"
1419
+ "signed_at": "2026-08-06T01:22:51.534Z"
1383
1420
  },
1384
1421
  {
1385
1422
  "name": "webapp-security",
@@ -1462,7 +1499,7 @@
1462
1499
  ],
1463
1500
  "last_threat_review": "2026-06-10",
1464
1501
  "signature": "giKG4Spsb/a9y6GD1k6rKCYWLl3rMRYGt9RxBsb8WknNGSYi/Hz4PB+UnztgsN9JYl07PjL+DE3iAHbgh3GZAQ==",
1465
- "signed_at": "2026-07-23T05:37:43.155Z",
1502
+ "signed_at": "2026-08-06T01:22:51.534Z",
1466
1503
  "forward_watch": [
1467
1504
  "NGINX Rift CVE-2026-42945 (disclosed 2026-05-13, source depthfirst) — KEV-watch predicted CISA KEV listing by 2026-05-29; AI-assisted discovery angle; track for active-exploitation confirmation and patch advisory affecting front-door web app deployments"
1468
1505
  ]
@@ -1522,7 +1559,7 @@
1522
1559
  ],
1523
1560
  "last_threat_review": "2026-05-15",
1524
1561
  "signature": "SBB7c3wNYfIdkyOp4g4nW0WP7xS+YokMzg32aaeJdbf14LTGQRzQUvSqb2TCj2HFUSHESOyKT1JpkAfyHLSQBQ==",
1525
- "signed_at": "2026-07-23T05:37:43.155Z"
1562
+ "signed_at": "2026-08-06T01:22:51.534Z"
1526
1563
  },
1527
1564
  {
1528
1565
  "name": "sector-healthcare",
@@ -1589,7 +1626,7 @@
1589
1626
  ],
1590
1627
  "last_threat_review": "2026-06-10",
1591
1628
  "signature": "0HQkFkUf8EMaPetY4lFsy/11V96wk+YeMSEyY5CWrjC9hQ3vZ0fPsPLWe8EzBxOhgxrt55RXDrBGArmB2i4cAw==",
1592
- "signed_at": "2026-07-23T05:37:43.156Z"
1629
+ "signed_at": "2026-08-06T01:22:51.534Z"
1593
1630
  },
1594
1631
  {
1595
1632
  "name": "sector-financial",
@@ -1678,7 +1715,7 @@
1678
1715
  "TIBER-EU framework v2.0 alignment with DORA TLPT RTS (JC 2024/40); cross-recognition with CBEST and iCAST"
1679
1716
  ],
1680
1717
  "signature": "zgUqH1eeQlUSB99dWskBa0vBqC9PR7zhIYkBjB/aksWlc0uvqGMXOfusT3kObX+TB1pgTgIyTWUfZqjWyBrSAg==",
1681
- "signed_at": "2026-07-23T05:37:43.156Z"
1718
+ "signed_at": "2026-08-06T01:22:51.535Z"
1682
1719
  },
1683
1720
  {
1684
1721
  "name": "sector-federal-government",
@@ -1755,7 +1792,7 @@
1755
1792
  "Australia PSPF 2024 revision and ISM quarterly updates — track for Essential Eight Maturity Level requirements for federal entities"
1756
1793
  ],
1757
1794
  "signature": "3xBhtZe9UrcdmfmnQPqnu+5m8MrvT1rT/zlpbQhNuCdJZXwv2ovJCxQUPULP0WVvSrJHfvvmkaTbPUtA1C5MDw==",
1758
- "signed_at": "2026-07-23T05:37:43.156Z"
1795
+ "signed_at": "2026-08-06T01:22:51.535Z"
1759
1796
  },
1760
1797
  {
1761
1798
  "name": "sector-energy",
@@ -1829,7 +1866,7 @@
1829
1866
  "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"
1830
1867
  ],
1831
1868
  "signature": "Bwycwk/pJ19YtZpifD2/MKbs8KkzfpUzYNVswjOfqEBPUiZKhMPTY1TdEyPnNyQvgB1BVHW/z+WpQ9CW9P9cBQ==",
1832
- "signed_at": "2026-07-23T05:37:43.157Z"
1869
+ "signed_at": "2026-08-06T01:22:51.536Z"
1833
1870
  },
1834
1871
  {
1835
1872
  "name": "sector-telecom",
@@ -1915,7 +1952,7 @@
1915
1952
  "O-RAN SFG / WG11 security specifications"
1916
1953
  ],
1917
1954
  "signature": "NAtyzfLPXlUuB78Snb9nWmbZalC1CNlIYN9rYhdEmtB/xQGC6vVnThgrEAHlm7v/jMCFuknvEpUHKdscUnUADw==",
1918
- "signed_at": "2026-07-23T05:37:43.158Z"
1955
+ "signed_at": "2026-08-06T01:22:51.536Z"
1919
1956
  },
1920
1957
  {
1921
1958
  "name": "api-security",
@@ -1994,7 +2031,7 @@
1994
2031
  ],
1995
2032
  "last_threat_review": "2026-06-10",
1996
2033
  "signature": "JAIe0jXjIIKUC8kYNCN9ZBMhoSSdbNskIg7/lKKAXzACf/uFpjlhaOY8Sm4j8ivAtgHdqyrsIeRy7P8SWm8yBw==",
1997
- "signed_at": "2026-07-23T05:37:43.158Z",
2034
+ "signed_at": "2026-08-06T01:22:51.536Z",
1998
2035
  "forward_watch": [
1999
2036
  "NGINX Rift CVE-2026-42945 (disclosed 2026-05-13, source depthfirst) — KEV-watch predicted CISA KEV listing by 2026-05-29; track for active-exploitation confirmation and patch advisory affecting API gateway / reverse-proxy deployments",
2000
2037
  "Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — LiteLLM 3-bug SSRF + Code Injection chain by k3vg3n; LLM-proxy API surface; track upstream patch and CVE assignments",
@@ -2089,7 +2126,7 @@
2089
2126
  "CISA KEV additions for cloud-control-plane CVEs (IMDSv1 abuses, federation token mishandling, cross-tenant boundary failures); CISA Cybersecurity Advisories for cross-cloud advisories"
2090
2127
  ],
2091
2128
  "signature": "L1DVbQq61lkUrAz/DkV/Je9u653qhyUoTfGrUEgbHrc/rX4UWYOnWObR0P3EsPPq5t9GS8YKsMkZH0WJevAxAQ==",
2092
- "signed_at": "2026-07-23T05:37:43.158Z"
2129
+ "signed_at": "2026-08-06T01:22:51.537Z"
2093
2130
  },
2094
2131
  {
2095
2132
  "name": "container-runtime-security",
@@ -2161,7 +2198,7 @@
2161
2198
  ],
2162
2199
  "last_threat_review": "2026-06-10",
2163
2200
  "signature": "s4kKyXP0UVCE4IAo2ogL7Vb9YygYZxvWgx5azGfehLQKwBZ4RinUBdlqC/OhRdzi/ZpCGAViEGusGHexKmNXAA==",
2164
- "signed_at": "2026-07-23T05:37:43.158Z",
2201
+ "signed_at": "2026-08-06T01:22:51.537Z",
2165
2202
  "forward_watch": [
2166
2203
  "Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — NVIDIA Container Toolkit container escape ($50K award) by chompie / IBM X-Force XOR; high-severity container/hypervisor boundary break; track patch and KEV add post-embargo"
2167
2204
  ]
@@ -2242,7 +2279,7 @@
2242
2279
  "MITRE ATLAS v2026.06 (released June 2026) is additive over v2026.05 — it adds AML.T0113 (Steal Web Session Cookie), AML.T0091.001 (Use Alternate Authentication Material: Web Session Cookie), and AML.T0114 (AI Service Web Interface) and refreshes AML.T0054 (LLM Jailbreak), with no technique-ID removals. Earlier releases shipped the AML.T0010 sub-technique expansion and agentic-AI techniques (\"Publish Poisoned AI Agent Tool\", \"Escape to Host\") this forecast tracked. Forward watch: subsequent monthly ATLAS releases — track next-cadence updates to agentic-AI TTPs and MLOps-pipeline-specific techniques"
2243
2280
  ],
2244
2281
  "signature": "Lksu8f3T2mlR1mzDVLFPNknjR7gi9ZyQkCTx5z3Pp7Wb2BYB4tixL1DkWQiX0TO5ay9n6OrlG724tELESAUGBw==",
2245
- "signed_at": "2026-07-23T05:37:43.159Z"
2282
+ "signed_at": "2026-08-06T01:22:51.537Z"
2246
2283
  },
2247
2284
  {
2248
2285
  "name": "incident-response-playbook",
@@ -2316,7 +2353,7 @@
2316
2353
  "NYDFS 23 NYCRR 500.17 amendments tightening ransom-payment 24h disclosure operationalization"
2317
2354
  ],
2318
2355
  "signature": "YseIGVsCqWXjavUPbmbgeTRKDOhFPgVqm453+n0z7haj4DNeKobnNVK8ZCYj+YDJ1A5c5Sg/EF4/UUYpD5qIDw==",
2319
- "signed_at": "2026-07-23T05:37:43.159Z"
2356
+ "signed_at": "2026-08-06T01:22:51.538Z"
2320
2357
  },
2321
2358
  {
2322
2359
  "name": "ransomware-response",
@@ -2396,7 +2433,7 @@
2396
2433
  ],
2397
2434
  "last_threat_review": "2026-06-10",
2398
2435
  "signature": "aKpZzYGkstC1E3FPjf0gpwObUoCOzztBFjfa8/e5alOfcqYX1oryKo8A/j8QpVwSOTJ5nab+2DMHtvyrXq5hAQ==",
2399
- "signed_at": "2026-07-23T05:37:43.159Z"
2436
+ "signed_at": "2026-08-06T01:22:51.538Z"
2400
2437
  },
2401
2438
  {
2402
2439
  "name": "email-security-anti-phishing",
@@ -2464,7 +2501,7 @@
2464
2501
  ],
2465
2502
  "last_threat_review": "2026-05-18",
2466
2503
  "signature": "FVBn4ex2qPIo9SHMVJ6tntoz4tVwjbIq3m6wDjjZyv2JODlS+90GBYCOkNamxxkmw/6de6SMs0YHQiF/xjo/DQ==",
2467
- "signed_at": "2026-07-23T05:37:43.160Z"
2504
+ "signed_at": "2026-08-06T01:22:51.538Z"
2468
2505
  },
2469
2506
  {
2470
2507
  "name": "age-gates-child-safety",
@@ -2539,7 +2576,7 @@
2539
2576
  "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"
2540
2577
  ],
2541
2578
  "signature": "Bk+pigkDpy/jexcfQBZLPZR0+CnO7XW5gF4UCMf10ZWPB43iOR89UC+MYr7VUDybgaH20LPIZPCHuy+LFq9+Dw==",
2542
- "signed_at": "2026-07-23T05:37:43.160Z"
2579
+ "signed_at": "2026-08-06T01:22:51.539Z"
2543
2580
  },
2544
2581
  {
2545
2582
  "name": "cloud-iam-incident",
@@ -2619,7 +2656,7 @@
2619
2656
  ],
2620
2657
  "last_threat_review": "2026-05-15",
2621
2658
  "signature": "r9ii4nb3HJELdtKCGF5qy9PHOiot3GC24yfxfGAKlLENHkdRvRkvvL99eV/6RXyfUaMyrnc2Te8tPQcNu5bsDg==",
2622
- "signed_at": "2026-07-23T05:37:43.160Z",
2659
+ "signed_at": "2026-08-06T01:22:51.539Z",
2623
2660
  "forward_watch": [
2624
2661
  "AWS IAM Identity Center session-policy refresh and step-up-on-admin enforcement (anticipated 2026-H2 release)",
2625
2662
  "GCP Workload Identity Federation principal-set attribute mapping tightening (post-2026 Q3 Federation hardening guide)",
@@ -2713,7 +2750,7 @@
2713
2750
  ],
2714
2751
  "last_threat_review": "2026-05-15",
2715
2752
  "signature": "9mfDtMApMAg9V/lmwpniNxo/6gNZoOEoYDfyFvyWvKrPMtc7H9F8uz06FVoARe/J49saAKTVXOurNE1D/KtpCQ==",
2716
- "signed_at": "2026-07-23T05:37:43.161Z",
2753
+ "signed_at": "2026-08-06T01:22:51.539Z",
2717
2754
  "forward_watch": [
2718
2755
  "Entra ID conditional access evolution post-Midnight Blizzard — Microsoft's 2025-2026 commitments on legacy-tenant MFA enforcement and OAuth-app consent gating",
2719
2756
  "Okta IPSIE (Interoperability Profile for Secure Identity in the Enterprise) OpenID Foundation working-group output and adoption timeline",
@@ -2785,7 +2822,7 @@
2785
2822
  "d3fend_refs": [],
2786
2823
  "last_threat_review": "2026-06-02",
2787
2824
  "signature": "dOFgANMtHm64uSFRjMfeA0fWZS9ISwMTt59I2CbjaF1PgTtbtb8yg/f+3pC4eXcXIET0KPGxRRmENycfIz3rAw==",
2788
- "signed_at": "2026-07-23T05:37:43.161Z"
2825
+ "signed_at": "2026-08-06T01:22:51.539Z"
2789
2826
  },
2790
2827
  {
2791
2828
  "name": "mail-server-hardening",
@@ -2844,7 +2881,7 @@
2844
2881
  "d3fend_refs": [],
2845
2882
  "last_threat_review": "2026-06-02",
2846
2883
  "signature": "5x8RGzKo/T2IbYnFkYMZs16ThD9a5FEdrKHsnwvtMuGxdyyfZsKNIJVWw2I8O0um0UOXwwkl17Z3zhch26ymCQ==",
2847
- "signed_at": "2026-07-23T05:37:43.161Z"
2884
+ "signed_at": "2026-08-06T01:22:51.540Z"
2848
2885
  },
2849
2886
  {
2850
2887
  "name": "network-trust",
@@ -2900,7 +2937,7 @@
2900
2937
  "d3fend_refs": [],
2901
2938
  "last_threat_review": "2026-06-02",
2902
2939
  "signature": "C/RdmnGjXKreKiGkwJfUESIxUwQzisGJ9A7KBdE9cBRBHBYHkAcScV89L+Z3kOG032Qax6LeIQai7Lr3nrQBCA==",
2903
- "signed_at": "2026-07-23T05:37:43.161Z"
2940
+ "signed_at": "2026-08-06T01:22:51.540Z"
2904
2941
  },
2905
2942
  {
2906
2943
  "name": "audit-log-integrity",
@@ -2955,7 +2992,7 @@
2955
2992
  "d3fend_refs": [],
2956
2993
  "last_threat_review": "2026-06-02",
2957
2994
  "signature": "LvUAq+rXCA8PgNy9lTKOmFqa8T9EJg4JEH0axXvEAf9MIHqbR51ergUkFMLaTuvFuApwsPu0r1C30QgScZbiAw==",
2958
- "signed_at": "2026-07-23T05:37:43.161Z"
2995
+ "signed_at": "2026-08-06T01:22:51.540Z"
2959
2996
  },
2960
2997
  {
2961
2998
  "name": "self-update-integrity",
@@ -3009,7 +3046,7 @@
3009
3046
  "d3fend_refs": [],
3010
3047
  "last_threat_review": "2026-06-02",
3011
3048
  "signature": "BOQZ8G9LdyG/tfpz6rCU4THz5Dq2HGJkUV7uCqSTCMrqnXH6seNXKM41FWawYo0s2VUlXtRgaO7ETp5qgxw+CQ==",
3012
- "signed_at": "2026-07-23T05:37:43.161Z"
3049
+ "signed_at": "2026-08-06T01:22:51.540Z"
3013
3050
  },
3014
3051
  {
3015
3052
  "name": "multitenancy-isolation",
@@ -3067,7 +3104,7 @@
3067
3104
  "d3fend_refs": [],
3068
3105
  "last_threat_review": "2026-06-02",
3069
3106
  "signature": "bncN0VE4ns0lxtPe48xDR33lerw54BPVkSwX7XlrLQcMHTrV94lmjO8z4ZP4Ko61n+KpuP2SNU8v9JT0bGMmAA==",
3070
- "signed_at": "2026-07-23T05:37:43.162Z"
3107
+ "signed_at": "2026-08-06T01:22:51.540Z"
3071
3108
  },
3072
3109
  {
3073
3110
  "name": "decompression-dos",
@@ -3125,7 +3162,7 @@
3125
3162
  "d3fend_refs": [],
3126
3163
  "last_threat_review": "2026-06-02",
3127
3164
  "signature": "03i0ZO5ScHIOjGvDKUEsws6m+20fnlJrEhSBtMU7PJzQutrPpmW9gULE0wbayTD5H9URh5nSKZuuVjvjVhZNCg==",
3128
- "signed_at": "2026-07-23T05:37:43.162Z"
3165
+ "signed_at": "2026-08-06T01:22:51.541Z"
3129
3166
  },
3130
3167
  {
3131
3168
  "name": "log-injection-telemetry",
@@ -3180,7 +3217,7 @@
3180
3217
  "d3fend_refs": [],
3181
3218
  "last_threat_review": "2026-06-02",
3182
3219
  "signature": "twTmA2l+Am2k2PCzB2DNxDQwoYlGopJp/3QgQwBsP7h2LF+uNudisqfuOVV/bYnWfrUhuYZUWbsR3mhzbJCUBw==",
3183
- "signed_at": "2026-07-23T05:37:43.162Z"
3220
+ "signed_at": "2026-08-06T01:22:51.541Z"
3184
3221
  },
3185
3222
  {
3186
3223
  "name": "privacy-consent-ops",
@@ -3235,11 +3272,11 @@
3235
3272
  "d3fend_refs": [],
3236
3273
  "last_threat_review": "2026-06-02",
3237
3274
  "signature": "0sfKSVrIf555c9bDGkXB96fUClN52fMAMYoQsNQ9eUUSzDiWUwdou+q0gYt43nObtj3m9Yb9X6q3oCXDVMgUDg==",
3238
- "signed_at": "2026-07-23T05:37:43.162Z"
3275
+ "signed_at": "2026-08-06T01:22:51.541Z"
3239
3276
  }
3240
3277
  ],
3241
3278
  "manifest_signature": {
3242
3279
  "algorithm": "Ed25519",
3243
- "signature_base64": "FW9xL0DnlZTCFRsw/kjaj84U33OOVq4rKVHp2rYh+dy7j5Vdl3bI22P7hjQQp5wmqwlpIaqRGNLI3v2Nv89XDw=="
3280
+ "signature_base64": "CGwVEARUHNMrIqRS3aBQhxyKZ0CrOf9OjPbgCGn3xl8hKunkQZpbLmdI/IjIdfe48ef75dvccglvxbwWAsbABg=="
3244
3281
  }
3245
3282
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@blamejs/exceptd-skills",
3
- "version": "0.18.26",
4
- "description": "AI security skills grounded in mid-2026 threat reality, not stale framework documentation. 51 skills, 11 catalogs (823 CVEs / 218 CWEs / 805 ATT&CK + ICS / 170 ATLAS / 468 D3FEND / 8888 RFCs), 35 jurisdictions, 10-class catalog gap detector + budget gate, real XML parser + canonical-form diff + content-pattern regression detection, Ed25519-signed.",
3
+ "version": "0.18.28",
4
+ "description": "AI security skills grounded in mid-2026 threat reality, not stale framework documentation. 51 skills, 11 catalogs (923 CVEs / 220 CWEs / 805 ATT&CK + ICS / 170 ATLAS / 468 D3FEND / 8889 RFCs), 35 jurisdictions, 10-class catalog gap detector + budget gate, real XML parser + canonical-form diff + content-pattern regression detection, Ed25519-signed.",
5
5
  "keywords": [
6
6
  "ai-security",
7
7
  "ai-skills",