@blamejs/exceptd-skills 0.16.9 → 0.16.11

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.
Files changed (37) hide show
  1. package/AGENTS.md +2 -1
  2. package/CHANGELOG.md +8 -0
  3. package/README.md +5 -5
  4. package/bin/exceptd.js +2 -0
  5. package/data/_indexes/_meta.json +17 -16
  6. package/data/_indexes/activity-feed.json +9 -2
  7. package/data/_indexes/chains.json +1186 -56
  8. package/data/_indexes/currency.json +10 -1
  9. package/data/_indexes/frequency.json +89 -51
  10. package/data/_indexes/handoff-dag.json +5 -1
  11. package/data/_indexes/jurisdiction-map.json +4 -2
  12. package/data/_indexes/section-offsets.json +85 -0
  13. package/data/_indexes/stale-content.json +10 -3
  14. package/data/_indexes/summary-cards.json +40 -0
  15. package/data/_indexes/token-budget.json +53 -3
  16. package/data/_indexes/trigger-table.json +54 -0
  17. package/data/_indexes/xref.json +29 -6
  18. package/data/cwe-catalog.json +12 -3
  19. package/data/playbooks/cred-stores.json +24 -7
  20. package/data/playbooks/framework.json +17 -5
  21. package/data/playbooks/identity-sso-compromise.json +21 -4
  22. package/data/playbooks/vc-wallet-trust.json +725 -0
  23. package/lib/cve-curation.js +2 -4
  24. package/lib/flag-suggest.js +1 -1
  25. package/lib/lint-skills.js +1 -0
  26. package/lib/playbook-runner.js +2 -2
  27. package/lib/scoring.js +3 -3
  28. package/lib/validate-playbooks.js +0 -2
  29. package/manifest-snapshot.json +57 -2
  30. package/manifest-snapshot.sha256 +1 -1
  31. package/manifest.json +103 -44
  32. package/package.json +2 -2
  33. package/sbom.cdx.json +80 -50
  34. package/scripts/check-codebase-patterns-currency.js +1 -2
  35. package/scripts/check-codebase-patterns.js +109 -1
  36. package/scripts/release.js +2 -2
  37. package/skills/vc-wallet-trust/skill.md +84 -0
@@ -1626,5 +1626,59 @@
1626
1626
  ],
1627
1627
  "tenant compromise": [
1628
1628
  "idp-incident-response"
1629
+ ],
1630
+ "verifiable credential": [
1631
+ "vc-wallet-trust"
1632
+ ],
1633
+ "digital wallet": [
1634
+ "vc-wallet-trust"
1635
+ ],
1636
+ "sd-jwt-vc": [
1637
+ "vc-wallet-trust"
1638
+ ],
1639
+ "oid4vp": [
1640
+ "vc-wallet-trust"
1641
+ ],
1642
+ "oid4vci": [
1643
+ "vc-wallet-trust"
1644
+ ],
1645
+ "mdoc": [
1646
+ "vc-wallet-trust"
1647
+ ],
1648
+ "mdl": [
1649
+ "vc-wallet-trust"
1650
+ ],
1651
+ "iso 18013-5": [
1652
+ "vc-wallet-trust"
1653
+ ],
1654
+ "eudi wallet": [
1655
+ "vc-wallet-trust"
1656
+ ],
1657
+ "eidas 2.0": [
1658
+ "vc-wallet-trust"
1659
+ ],
1660
+ "did:web": [
1661
+ "vc-wallet-trust"
1662
+ ],
1663
+ "status list": [
1664
+ "vc-wallet-trust"
1665
+ ],
1666
+ "credential revocation": [
1667
+ "vc-wallet-trust"
1668
+ ],
1669
+ "openid federation": [
1670
+ "vc-wallet-trust"
1671
+ ],
1672
+ "trust anchor": [
1673
+ "vc-wallet-trust"
1674
+ ],
1675
+ "credential verifier": [
1676
+ "vc-wallet-trust"
1677
+ ],
1678
+ "presentation exchange": [
1679
+ "vc-wallet-trust"
1680
+ ],
1681
+ "dcql": [
1682
+ "vc-wallet-trust"
1629
1683
  ]
1630
1684
  }
@@ -13,7 +13,8 @@
13
13
  "kernel-lpe-triage"
14
14
  ],
15
15
  "CWE-672": [
16
- "kernel-lpe-triage"
16
+ "kernel-lpe-triage",
17
+ "vc-wallet-trust"
17
18
  ],
18
19
  "CWE-787": [
19
20
  "attack-surface-pentest",
@@ -133,6 +134,7 @@
133
134
  "cloud-security",
134
135
  "dlp-gap-analysis",
135
136
  "sector-healthcare",
137
+ "vc-wallet-trust",
136
138
  "webapp-security"
137
139
  ],
138
140
  "CWE-1357": [
@@ -195,6 +197,7 @@
195
197
  "identity-assurance",
196
198
  "idp-incident-response",
197
199
  "sector-financial",
200
+ "vc-wallet-trust",
198
201
  "webapp-security"
199
202
  ],
200
203
  "CWE-1037": [
@@ -207,6 +210,12 @@
207
210
  ],
208
211
  "CWE-284": [
209
212
  "idp-incident-response"
213
+ ],
214
+ "CWE-347": [
215
+ "vc-wallet-trust"
216
+ ],
217
+ "CWE-290": [
218
+ "vc-wallet-trust"
210
219
  ]
211
220
  },
212
221
  "d3fend_refs": {
@@ -534,7 +543,8 @@
534
543
  "supply-chain-integrity"
535
544
  ],
536
545
  "NIST-800-63B-rev4": [
537
- "identity-assurance"
546
+ "identity-assurance",
547
+ "vc-wallet-trust"
538
548
  ],
539
549
  "PSD2-RTS-SCA": [
540
550
  "identity-assurance",
@@ -622,10 +632,12 @@
622
632
  "cloud-iam-incident"
623
633
  ],
624
634
  "NIST-800-53-IA-5-Federated": [
625
- "idp-incident-response"
635
+ "idp-incident-response",
636
+ "vc-wallet-trust"
626
637
  ],
627
638
  "ISO-27001-2022-A.5.16-Federated": [
628
- "idp-incident-response"
639
+ "idp-incident-response",
640
+ "vc-wallet-trust"
629
641
  ],
630
642
  "SOC2-CC6-OAuth-Consent": [
631
643
  "idp-incident-response"
@@ -637,13 +649,17 @@
637
649
  "idp-incident-response"
638
650
  ],
639
651
  "NIS2-Art-21-Federated-Identity": [
640
- "idp-incident-response"
652
+ "idp-incident-response",
653
+ "vc-wallet-trust"
641
654
  ],
642
655
  "DORA-Art-19-IdP-4h": [
643
656
  "idp-incident-response"
644
657
  ],
645
658
  "OFAC-Sanctions-Threat-Actor-Negotiation": [
646
659
  "idp-incident-response"
660
+ ],
661
+ "UK-CAF-B2": [
662
+ "vc-wallet-trust"
647
663
  ]
648
664
  },
649
665
  "atlas_refs": {
@@ -822,7 +838,8 @@
822
838
  ],
823
839
  "T1556": [
824
840
  "identity-assurance",
825
- "sector-telecom"
841
+ "sector-telecom",
842
+ "vc-wallet-trust"
826
843
  ],
827
844
  "T1110": [
828
845
  "identity-assurance"
@@ -890,6 +907,12 @@
890
907
  ],
891
908
  "T1606.002": [
892
909
  "idp-incident-response"
910
+ ],
911
+ "T1606": [
912
+ "vc-wallet-trust"
913
+ ],
914
+ "T1550": [
915
+ "vc-wallet-trust"
893
916
  ]
894
917
  },
895
918
  "rfc_refs": {
@@ -533,6 +533,7 @@
533
533
  "cloud-security",
534
534
  "dlp-gap-analysis",
535
535
  "sector-healthcare",
536
+ "vc-wallet-trust",
536
537
  "webapp-security"
537
538
  ],
538
539
  "evidence_cves": [
@@ -1527,7 +1528,8 @@
1527
1528
  ],
1528
1529
  "related_attack_patterns_capec": [],
1529
1530
  "skills_referencing": [
1530
- "kernel-lpe-triage"
1531
+ "kernel-lpe-triage",
1532
+ "vc-wallet-trust"
1531
1533
  ],
1532
1534
  "evidence_cves": [
1533
1535
  "CVE-2026-46300",
@@ -1833,6 +1835,7 @@
1833
1835
  "identity-assurance",
1834
1836
  "idp-incident-response",
1835
1837
  "sector-financial",
1838
+ "vc-wallet-trust",
1836
1839
  "webapp-security"
1837
1840
  ],
1838
1841
  "evidence_cves": [
@@ -2565,7 +2568,10 @@
2565
2568
  "CVE-2025-59718"
2566
2569
  ],
2567
2570
  "last_verified": "2026-05-18",
2568
- "notes": "Added v0.13.17 KEV bulk-import."
2571
+ "notes": "Added v0.13.17 KEV bulk-import.",
2572
+ "skills_referencing": [
2573
+ "vc-wallet-trust"
2574
+ ]
2569
2575
  },
2570
2576
  "CWE-476": {
2571
2577
  "id": "CWE-476",
@@ -2922,7 +2928,10 @@
2922
2928
  "CVE-2024-54085"
2923
2929
  ],
2924
2930
  "last_verified": "2026-05-18",
2925
- "notes": "Added v0.13.17 KEV bulk-import round 2."
2931
+ "notes": "Added v0.13.17 KEV bulk-import round 2.",
2932
+ "skills_referencing": [
2933
+ "vc-wallet-trust"
2934
+ ]
2926
2935
  },
2927
2936
  "CWE-399": {
2928
2937
  "id": "CWE-399",
@@ -48,6 +48,7 @@
48
48
  "runtime",
49
49
  "secrets",
50
50
  "supply-chain-recovery",
51
+ "vc-wallet-trust",
51
52
  "webhook-callback-abuse"
52
53
  ]
53
54
  },
@@ -739,7 +740,9 @@
739
740
  "user_enrolled_in_sso == true"
740
741
  ],
741
742
  "priority": 1,
742
- "for_signals": ["aws-static-key-present"],
743
+ "for_signals": [
744
+ "aws-static-key-present"
745
+ ],
743
746
  "compensating_controls": [
744
747
  "iam-key-deactivated",
745
748
  "cloudtrail-monitor-on-old-key-for-residual-use"
@@ -753,7 +756,9 @@
753
756
  "org_has_workforce_identity_pool == true OR user_has_authorized_user_credentials == true"
754
757
  ],
755
758
  "priority": 1,
756
- "for_signals": ["gcp-service-account-json-adc"],
759
+ "for_signals": [
760
+ "gcp-service-account-json-adc"
761
+ ],
757
762
  "compensating_controls": [
758
763
  "gcp-key-deleted",
759
764
  "gcp-audit-log-monitor-on-old-key"
@@ -767,7 +772,9 @@
767
772
  "cluster_supports_oidc == true OR cluster_is_managed_cloud_k8s == true"
768
773
  ],
769
774
  "priority": 1,
770
- "for_signals": ["kube-static-token"],
775
+ "for_signals": [
776
+ "kube-static-token"
777
+ ],
771
778
  "compensating_controls": [
772
779
  "kube-token-revoked",
773
780
  "k8s-audit-log-monitor-on-old-token"
@@ -781,7 +788,9 @@
781
788
  "target_registry_supports_cred_helper == true"
782
789
  ],
783
790
  "priority": 1,
784
- "for_signals": ["docker-cleartext-auth"],
791
+ "for_signals": [
792
+ "docker-cleartext-auth"
793
+ ],
785
794
  "compensating_controls": [
786
795
  "docker-token-rotated"
787
796
  ],
@@ -794,7 +803,10 @@
794
803
  "org_authority_to_rotate == true"
795
804
  ],
796
805
  "priority": 2,
797
- "for_signals": ["npm-pat-present","pypi-token-present"],
806
+ "for_signals": [
807
+ "npm-pat-present",
808
+ "pypi-token-present"
809
+ ],
798
810
  "compensating_controls": [
799
811
  "token-scope-tightened",
800
812
  "publish-mfa-required"
@@ -808,7 +820,9 @@
808
820
  "file_owner_is_current_user"
809
821
  ],
810
822
  "priority": 2,
811
- "for_signals": ["credentials-file-bad-perms"],
823
+ "for_signals": [
824
+ "credentials-file-bad-perms"
825
+ ],
812
826
  "compensating_controls": [],
813
827
  "estimated_time_hours": 0.25
814
828
  },
@@ -819,7 +833,10 @@
819
833
  "all_authorized_hosts_known == true"
820
834
  ],
821
835
  "priority": 2,
822
- "for_signals": ["ssh-key-rsa-short-bits","ssh-key-old"],
836
+ "for_signals": [
837
+ "ssh-key-rsa-short-bits",
838
+ "ssh-key-old"
839
+ ],
823
840
  "compensating_controls": [
824
841
  "ssh-key-inventory-updated"
825
842
  ],
@@ -63,6 +63,7 @@
63
63
  "ransomware",
64
64
  "sbom",
65
65
  "supply-chain-recovery",
66
+ "vc-wallet-trust",
66
67
  "webhook-callback-abuse"
67
68
  ]
68
69
  },
@@ -723,7 +724,10 @@
723
724
  "upstream_findings_actionable == true"
724
725
  ],
725
726
  "priority": 1,
726
- "for_signals": ["audit-clean-with-active-finding","compound-theater"],
727
+ "for_signals": [
728
+ "audit-clean-with-active-finding",
729
+ "compound-theater"
730
+ ],
727
731
  "compensating_controls": [],
728
732
  "estimated_time_hours": 16
729
733
  },
@@ -734,7 +738,9 @@
734
738
  "compensating_control_design_feasible == true"
735
739
  ],
736
740
  "priority": 2,
737
- "for_signals": ["framework-lag-no-compensating-control"],
741
+ "for_signals": [
742
+ "framework-lag-no-compensating-control"
743
+ ],
738
744
  "compensating_controls": [
739
745
  "test_cadence_recorded_in_change_management"
740
746
  ],
@@ -747,7 +753,9 @@
747
753
  "exception_register_exists == true"
748
754
  ],
749
755
  "priority": 3,
750
- "for_signals": ["exception-missing-expiry-or-owner"],
756
+ "for_signals": [
757
+ "exception-missing-expiry-or-owner"
758
+ ],
751
759
  "compensating_controls": [
752
760
  "exception_review_cadence_documented"
753
761
  ],
@@ -760,7 +768,9 @@
760
768
  "jurisdictional_footprint_documented == true"
761
769
  ],
762
770
  "priority": 4,
763
- "for_signals": ["jurisdiction-without-framework"],
771
+ "for_signals": [
772
+ "jurisdiction-without-framework"
773
+ ],
764
774
  "compensating_controls": [
765
775
  "mapping_review_cadence_documented"
766
776
  ],
@@ -773,7 +783,9 @@
773
783
  "ai_in_production == true"
774
784
  ],
775
785
  "priority": 5,
776
- "for_signals": ["ai-use-without-ai-controls"],
786
+ "for_signals": [
787
+ "ai-use-without-ai-controls"
788
+ ],
777
789
  "compensating_controls": [],
778
790
  "estimated_time_hours": 80
779
791
  },
@@ -60,6 +60,9 @@
60
60
  "playbook_id": "framework",
61
61
  "condition": "analyze.compliance_theater_check.verdict == 'theater'"
62
62
  }
63
+ ],
64
+ "fed_by": [
65
+ "vc-wallet-trust"
63
66
  ]
64
67
  },
65
68
  "domain": {
@@ -672,7 +675,15 @@
672
675
  "rule_authoring_capacity_within_72h == true"
673
676
  ],
674
677
  "priority": 1,
675
- "for_signals": ["out-of-window-global-admin-grant","high-impact-oauth-consent-grant","conditional-access-exclusion-membership-change","federation-signing-cert-added","refresh-token-hoarding-by-sp","prt-claim-anomaly","okta-class-support-session"],
678
+ "for_signals": [
679
+ "out-of-window-global-admin-grant",
680
+ "high-impact-oauth-consent-grant",
681
+ "conditional-access-exclusion-membership-change",
682
+ "federation-signing-cert-added",
683
+ "refresh-token-hoarding-by-sp",
684
+ "prt-claim-anomaly",
685
+ "okta-class-support-session"
686
+ ],
676
687
  "compensating_controls": [
677
688
  "rule_set_recorded_in_iac",
678
689
  "rule_test_suite_in_ci"
@@ -687,7 +698,9 @@
687
698
  "break_glass_inventory_complete == true"
688
699
  ],
689
700
  "priority": 2,
690
- "for_signals": ["conditional-access-exclusion-membership-change"],
701
+ "for_signals": [
702
+ "conditional-access-exclusion-membership-change"
703
+ ],
691
704
  "compensating_controls": [
692
705
  "exclusion_group_membership_alert_active",
693
706
  "quarterly_attestation_recorded"
@@ -702,7 +715,9 @@
702
715
  "business_owner_engagement_secured == true"
703
716
  ],
704
717
  "priority": 2,
705
- "for_signals": ["high-impact-oauth-consent-grant"],
718
+ "for_signals": [
719
+ "high-impact-oauth-consent-grant"
720
+ ],
706
721
  "compensating_controls": [
707
722
  "consent_revocation_recorded",
708
723
  "re_grant_requires_documented_justification"
@@ -717,7 +732,9 @@
717
732
  "downstream_dependent_apps_can_tolerate_rotation_window == true"
718
733
  ],
719
734
  "priority": 1,
720
- "for_signals": ["federation-signing-cert-added"],
735
+ "for_signals": [
736
+ "federation-signing-cert-added"
737
+ ],
721
738
  "compensating_controls": [
722
739
  "rotation_recorded_in_change_management",
723
740
  "old_cert_signed_assertions_quarantined_for_review"