@blamejs/exceptd-skills 0.16.15 → 0.16.17

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.
@@ -4722,6 +4722,176 @@
4722
4722
  "h3_count": 0
4723
4723
  }
4724
4724
  ]
4725
+ },
4726
+ "multitenancy-isolation": {
4727
+ "path": "skills/multitenancy-isolation/skill.md",
4728
+ "total_bytes": 7794,
4729
+ "total_lines": 84,
4730
+ "frontmatter": {
4731
+ "line_start": 1,
4732
+ "line_end": 49,
4733
+ "byte_start": 0,
4734
+ "byte_end": 1201
4735
+ },
4736
+ "sections": [
4737
+ {
4738
+ "name": "Threat Context (mid-2026)",
4739
+ "normalized_name": "threat-context",
4740
+ "line": 53,
4741
+ "byte_start": 1270,
4742
+ "byte_end": 2091,
4743
+ "bytes": 821,
4744
+ "h3_count": 0
4745
+ },
4746
+ {
4747
+ "name": "Framework Lag Declaration",
4748
+ "normalized_name": "framework-lag-declaration",
4749
+ "line": 57,
4750
+ "byte_start": 2091,
4751
+ "byte_end": 2910,
4752
+ "bytes": 819,
4753
+ "h3_count": 0
4754
+ },
4755
+ {
4756
+ "name": "TTP Mapping",
4757
+ "normalized_name": "ttp-mapping",
4758
+ "line": 61,
4759
+ "byte_start": 2910,
4760
+ "byte_end": 3713,
4761
+ "bytes": 803,
4762
+ "h3_count": 0
4763
+ },
4764
+ {
4765
+ "name": "Exploit Availability Matrix",
4766
+ "normalized_name": "exploit-availability-matrix",
4767
+ "line": 65,
4768
+ "byte_start": 3713,
4769
+ "byte_end": 4438,
4770
+ "bytes": 725,
4771
+ "h3_count": 0
4772
+ },
4773
+ {
4774
+ "name": "Analysis Procedure",
4775
+ "normalized_name": "analysis-procedure",
4776
+ "line": 69,
4777
+ "byte_start": 4438,
4778
+ "byte_end": 5337,
4779
+ "bytes": 899,
4780
+ "h3_count": 0
4781
+ },
4782
+ {
4783
+ "name": "Output Format",
4784
+ "normalized_name": "output-format",
4785
+ "line": 73,
4786
+ "byte_start": 5337,
4787
+ "byte_end": 6219,
4788
+ "bytes": 882,
4789
+ "h3_count": 0
4790
+ },
4791
+ {
4792
+ "name": "Compliance Theater Check",
4793
+ "normalized_name": "compliance-theater-check",
4794
+ "line": 77,
4795
+ "byte_start": 6219,
4796
+ "byte_end": 6970,
4797
+ "bytes": 751,
4798
+ "h3_count": 0
4799
+ },
4800
+ {
4801
+ "name": "Defensive Countermeasure Mapping",
4802
+ "normalized_name": "defensive-countermeasure-mapping",
4803
+ "line": 81,
4804
+ "byte_start": 6970,
4805
+ "byte_end": 7794,
4806
+ "bytes": 824,
4807
+ "h3_count": 0
4808
+ }
4809
+ ]
4810
+ },
4811
+ "decompression-dos": {
4812
+ "path": "skills/decompression-dos/skill.md",
4813
+ "total_bytes": 7711,
4814
+ "total_lines": 84,
4815
+ "frontmatter": {
4816
+ "line_start": 1,
4817
+ "line_end": 49,
4818
+ "byte_start": 0,
4819
+ "byte_end": 1186
4820
+ },
4821
+ "sections": [
4822
+ {
4823
+ "name": "Threat Context (mid-2026)",
4824
+ "normalized_name": "threat-context",
4825
+ "line": 53,
4826
+ "byte_start": 1241,
4827
+ "byte_end": 2037,
4828
+ "bytes": 796,
4829
+ "h3_count": 0
4830
+ },
4831
+ {
4832
+ "name": "Framework Lag Declaration",
4833
+ "normalized_name": "framework-lag-declaration",
4834
+ "line": 57,
4835
+ "byte_start": 2037,
4836
+ "byte_end": 2868,
4837
+ "bytes": 831,
4838
+ "h3_count": 0
4839
+ },
4840
+ {
4841
+ "name": "TTP Mapping",
4842
+ "normalized_name": "ttp-mapping",
4843
+ "line": 61,
4844
+ "byte_start": 2868,
4845
+ "byte_end": 3698,
4846
+ "bytes": 830,
4847
+ "h3_count": 0
4848
+ },
4849
+ {
4850
+ "name": "Exploit Availability Matrix",
4851
+ "normalized_name": "exploit-availability-matrix",
4852
+ "line": 65,
4853
+ "byte_start": 3698,
4854
+ "byte_end": 4388,
4855
+ "bytes": 690,
4856
+ "h3_count": 0
4857
+ },
4858
+ {
4859
+ "name": "Analysis Procedure",
4860
+ "normalized_name": "analysis-procedure",
4861
+ "line": 69,
4862
+ "byte_start": 4388,
4863
+ "byte_end": 5310,
4864
+ "bytes": 922,
4865
+ "h3_count": 0
4866
+ },
4867
+ {
4868
+ "name": "Output Format",
4869
+ "normalized_name": "output-format",
4870
+ "line": 73,
4871
+ "byte_start": 5310,
4872
+ "byte_end": 6198,
4873
+ "bytes": 888,
4874
+ "h3_count": 0
4875
+ },
4876
+ {
4877
+ "name": "Compliance Theater Check",
4878
+ "normalized_name": "compliance-theater-check",
4879
+ "line": 77,
4880
+ "byte_start": 6198,
4881
+ "byte_end": 6868,
4882
+ "bytes": 670,
4883
+ "h3_count": 0
4884
+ },
4885
+ {
4886
+ "name": "Defensive Countermeasure Mapping",
4887
+ "normalized_name": "defensive-countermeasure-mapping",
4888
+ "line": 81,
4889
+ "byte_start": 6868,
4890
+ "byte_end": 7711,
4891
+ "bytes": 843,
4892
+ "h3_count": 0
4893
+ }
4894
+ ]
4725
4895
  }
4726
4896
  }
4727
4897
  }
@@ -15,7 +15,7 @@
15
15
  "severity": "medium",
16
16
  "category": "researcher_claim_drift",
17
17
  "artifact": "skills/researcher/skill.md",
18
- "detail": "claims 41 specialized skills downstream; live count is 46"
18
+ "detail": "claims 41 specialized skills downstream; live count is 48"
19
19
  }
20
20
  ]
21
21
  }
@@ -2176,6 +2176,87 @@
2176
2176
  "last_threat_review": "2026-06-02",
2177
2177
  "path": "skills/self-update-integrity/skill.md",
2178
2178
  "handoff_targets": []
2179
+ },
2180
+ "multitenancy-isolation": {
2181
+ "description": "Application multitenancy isolation and availability/DoS resilience for mid-2026 — principal-bound tenant identity, data-layer row-level-security under a non-bypass role, cross-tenant cache/queue namespacing, per-tenant rate/byte quotas, HTTP/2 Rapid Reset caps, bounded allocation, distributed-lock fencing, and circuit breakers",
2182
+ "threat_context_excerpt": "Shared multitenant infrastructure has two linked failure classes. Isolation: if the tenant identifier is trusted from a client-controlled header/parameter/claim, or the tenant filter lives in per-query application discipline rather than the data layer, a single authenticated user of one tenant reads or writes another tenant's data — broken object-level authorization (CWE-639), the most common and highest-impact SaaS vulnerability class. Cache, pub/sub, and queue keys leak the same way when not tenant-namespaced. Availability: asymmetric denial of service — HTTP/2 Rapid Reset (CVE-2023-44487), ...",
2183
+ "produces": "Report per surface, marking each isolation and availability control enforced / missing / inconclusive (visibility gap). For every missing control, state whether a single authenticated user could read another tenant's data or a single client could deny service to all tenants. Distinguish a control enforced at a lower layer (data-layer RLS, CDN/WAF quotas) from an absent one, and a dedicated single-tenant deployment (cross-tenant indicators not applicable) from a shared one. Provide the prioritised remediation (bind tenant to principal + data-layer RLS under a non-bypass role, namespace shared k ...",
2184
+ "key_xrefs": {
2185
+ "cwe_refs": [
2186
+ "CWE-639",
2187
+ "CWE-770",
2188
+ "CWE-863",
2189
+ "CWE-668",
2190
+ "CWE-400"
2191
+ ],
2192
+ "d3fend_refs": [],
2193
+ "framework_gaps": [
2194
+ "NIST-800-53-AC-3",
2195
+ "NIS2-Art21-network-security",
2196
+ "UK-CAF-B4",
2197
+ "AU-ISM-1556"
2198
+ ],
2199
+ "atlas_refs": [],
2200
+ "attack_refs": [
2201
+ "T1078",
2202
+ "T1499",
2203
+ "T1499.001",
2204
+ "T1530"
2205
+ ],
2206
+ "rfc_refs": [],
2207
+ "dlp_refs": []
2208
+ },
2209
+ "trigger_count": 17,
2210
+ "atlas_count": 0,
2211
+ "attack_count": 4,
2212
+ "framework_gap_count": 4,
2213
+ "cwe_count": 5,
2214
+ "d3fend_count": 0,
2215
+ "rfc_count": 0,
2216
+ "last_threat_review": "2026-06-02",
2217
+ "path": "skills/multitenancy-isolation/skill.md",
2218
+ "handoff_targets": []
2219
+ },
2220
+ "decompression-dos": {
2221
+ "description": "Decompression-bomb, parser-DoS, and ReDoS resistance for mid-2026 — decompression size/ratio caps, Zip Slip path confinement, XML entity-expansion disabling, linear-time regex on untrusted input, parse-depth limits, and length-field allocation bounds against single-input amplification denial of service",
2222
+ "threat_context_excerpt": "Amplification denial of service turns a tiny, structurally-valid input into ruinous server work. A 42 KB zip bomb expands to petabytes; a few lines of nested XML entities expand to gigabytes (the billion-laughs attack); a crafted string pins a CPU core for seconds-to-minutes on a backtracking regular expression (ReDoS); a binary parser that reads a declared 2 GB length field allocates a 2 GB buffer from a 10-byte message. A Zip Slip archive entry named `../../x` escapes the extraction directory to overwrite a binary on the execution path. Input-format validation passes all of these because ...",
2223
+ "produces": "Report per parser/decompression path, marking each resource bound enforced / missing / inconclusive (visibility gap). For every missing bound, state whether the ingest is internet-facing and whether a single crafted input could exhaust the instance (or, for Zip Slip, write outside the target). Distinguish a bound enforced at a lower layer (streaming runtime, RE2 engine, size-limited proxy) from an absent one, and a path that ingests only trusted fixed-size input from one that ingests attacker input. Provide the prioritised remediation (cap decompression size/ratio/nesting, confine extraction p ...",
2224
+ "key_xrefs": {
2225
+ "cwe_refs": [
2226
+ "CWE-409",
2227
+ "CWE-1333",
2228
+ "CWE-400",
2229
+ "CWE-776",
2230
+ "CWE-22",
2231
+ "CWE-834",
2232
+ "CWE-770"
2233
+ ],
2234
+ "d3fend_refs": [],
2235
+ "framework_gaps": [
2236
+ "NIST-800-53-SI-2",
2237
+ "NIS2-Art21-network-security",
2238
+ "UK-CAF-B4",
2239
+ "AU-ISM-1556"
2240
+ ],
2241
+ "atlas_refs": [],
2242
+ "attack_refs": [
2243
+ "T1499",
2244
+ "T1499.001",
2245
+ "T1059"
2246
+ ],
2247
+ "rfc_refs": [],
2248
+ "dlp_refs": []
2249
+ },
2250
+ "trigger_count": 16,
2251
+ "atlas_count": 0,
2252
+ "attack_count": 3,
2253
+ "framework_gap_count": 4,
2254
+ "cwe_count": 7,
2255
+ "d3fend_count": 0,
2256
+ "rfc_count": 0,
2257
+ "last_threat_review": "2026-06-02",
2258
+ "path": "skills/decompression-dos/skill.md",
2259
+ "handoff_targets": []
2179
2260
  }
2180
2261
  }
2181
2262
  }
@@ -3,9 +3,9 @@
3
3
  "schema_version": "1.0.0",
4
4
  "tokenizer_note": "Character-density approximation: 1 token ≈ 4 chars. This is the canonical rule-of-thumb for OpenAI tokenizers on English+technical text. Claude's tokenizer is typically more efficient on prose; treat this as an upper-bound budget for both. Consumers with stricter precision needs should re-tokenize with their own tokenizer.",
5
5
  "approx_chars_per_token": 4,
6
- "total_chars": 1712869,
7
- "total_approx_tokens": 428220,
8
- "skill_count": 47
6
+ "total_chars": 1728352,
7
+ "total_approx_tokens": 432091,
8
+ "skill_count": 49
9
9
  },
10
10
  "skills": {
11
11
  "kernel-lpe-triage": {
@@ -2752,6 +2752,106 @@
2752
2752
  "approx_tokens": 221
2753
2753
  }
2754
2754
  }
2755
+ },
2756
+ "multitenancy-isolation": {
2757
+ "path": "skills/multitenancy-isolation/skill.md",
2758
+ "bytes": 7794,
2759
+ "chars": 7780,
2760
+ "lines": 84,
2761
+ "approx_tokens": 1945,
2762
+ "approx_chars_per_token": 4,
2763
+ "sections": {
2764
+ "threat-context": {
2765
+ "bytes": 821,
2766
+ "chars": 815,
2767
+ "approx_tokens": 204
2768
+ },
2769
+ "framework-lag-declaration": {
2770
+ "bytes": 819,
2771
+ "chars": 819,
2772
+ "approx_tokens": 205
2773
+ },
2774
+ "ttp-mapping": {
2775
+ "bytes": 803,
2776
+ "chars": 801,
2777
+ "approx_tokens": 200
2778
+ },
2779
+ "exploit-availability-matrix": {
2780
+ "bytes": 725,
2781
+ "chars": 721,
2782
+ "approx_tokens": 180
2783
+ },
2784
+ "analysis-procedure": {
2785
+ "bytes": 899,
2786
+ "chars": 899,
2787
+ "approx_tokens": 225
2788
+ },
2789
+ "output-format": {
2790
+ "bytes": 882,
2791
+ "chars": 882,
2792
+ "approx_tokens": 221
2793
+ },
2794
+ "compliance-theater-check": {
2795
+ "bytes": 751,
2796
+ "chars": 751,
2797
+ "approx_tokens": 188
2798
+ },
2799
+ "defensive-countermeasure-mapping": {
2800
+ "bytes": 824,
2801
+ "chars": 824,
2802
+ "approx_tokens": 206
2803
+ }
2804
+ }
2805
+ },
2806
+ "decompression-dos": {
2807
+ "path": "skills/decompression-dos/skill.md",
2808
+ "bytes": 7711,
2809
+ "chars": 7703,
2810
+ "lines": 84,
2811
+ "approx_tokens": 1926,
2812
+ "approx_chars_per_token": 4,
2813
+ "sections": {
2814
+ "threat-context": {
2815
+ "bytes": 796,
2816
+ "chars": 794,
2817
+ "approx_tokens": 199
2818
+ },
2819
+ "framework-lag-declaration": {
2820
+ "bytes": 831,
2821
+ "chars": 831,
2822
+ "approx_tokens": 208
2823
+ },
2824
+ "ttp-mapping": {
2825
+ "bytes": 830,
2826
+ "chars": 828,
2827
+ "approx_tokens": 207
2828
+ },
2829
+ "exploit-availability-matrix": {
2830
+ "bytes": 690,
2831
+ "chars": 688,
2832
+ "approx_tokens": 172
2833
+ },
2834
+ "analysis-procedure": {
2835
+ "bytes": 922,
2836
+ "chars": 922,
2837
+ "approx_tokens": 231
2838
+ },
2839
+ "output-format": {
2840
+ "bytes": 888,
2841
+ "chars": 888,
2842
+ "approx_tokens": 222
2843
+ },
2844
+ "compliance-theater-check": {
2845
+ "bytes": 670,
2846
+ "chars": 670,
2847
+ "approx_tokens": 168
2848
+ },
2849
+ "defensive-countermeasure-mapping": {
2850
+ "bytes": 843,
2851
+ "chars": 843,
2852
+ "approx_tokens": 211
2853
+ }
2854
+ }
2755
2855
  }
2756
2856
  }
2757
2857
  }
@@ -1119,7 +1119,8 @@
1119
1119
  "api-security"
1120
1120
  ],
1121
1121
  "bola": [
1122
- "api-security"
1122
+ "api-security",
1123
+ "multitenancy-isolation"
1123
1124
  ],
1124
1125
  "bfla": [
1125
1126
  "api-security"
@@ -1881,5 +1882,99 @@
1881
1882
  ],
1882
1883
  "update channel": [
1883
1884
  "self-update-integrity"
1885
+ ],
1886
+ "multitenancy isolation": [
1887
+ "multitenancy-isolation"
1888
+ ],
1889
+ "multi tenant": [
1890
+ "multitenancy-isolation"
1891
+ ],
1892
+ "cross tenant": [
1893
+ "multitenancy-isolation"
1894
+ ],
1895
+ "tenant isolation": [
1896
+ "multitenancy-isolation"
1897
+ ],
1898
+ "row level security": [
1899
+ "multitenancy-isolation"
1900
+ ],
1901
+ "rls": [
1902
+ "multitenancy-isolation"
1903
+ ],
1904
+ "broken object level authorization": [
1905
+ "multitenancy-isolation"
1906
+ ],
1907
+ "idor": [
1908
+ "multitenancy-isolation"
1909
+ ],
1910
+ "noisy neighbour": [
1911
+ "multitenancy-isolation"
1912
+ ],
1913
+ "rapid reset": [
1914
+ "multitenancy-isolation"
1915
+ ],
1916
+ "rate limit": [
1917
+ "multitenancy-isolation"
1918
+ ],
1919
+ "per tenant quota": [
1920
+ "multitenancy-isolation"
1921
+ ],
1922
+ "circuit breaker": [
1923
+ "multitenancy-isolation"
1924
+ ],
1925
+ "distributed lock fencing": [
1926
+ "multitenancy-isolation"
1927
+ ],
1928
+ "resource exhaustion": [
1929
+ "decompression-dos",
1930
+ "multitenancy-isolation"
1931
+ ],
1932
+ "denial of service": [
1933
+ "multitenancy-isolation"
1934
+ ],
1935
+ "decompression bomb": [
1936
+ "decompression-dos"
1937
+ ],
1938
+ "zip bomb": [
1939
+ "decompression-dos"
1940
+ ],
1941
+ "zip slip": [
1942
+ "decompression-dos"
1943
+ ],
1944
+ "redos": [
1945
+ "decompression-dos"
1946
+ ],
1947
+ "regular expression denial of service": [
1948
+ "decompression-dos"
1949
+ ],
1950
+ "catastrophic backtracking": [
1951
+ "decompression-dos"
1952
+ ],
1953
+ "billion laughs": [
1954
+ "decompression-dos"
1955
+ ],
1956
+ "xml entity expansion": [
1957
+ "decompression-dos"
1958
+ ],
1959
+ "xxe": [
1960
+ "decompression-dos"
1961
+ ],
1962
+ "parser dos": [
1963
+ "decompression-dos"
1964
+ ],
1965
+ "amplification attack": [
1966
+ "decompression-dos"
1967
+ ],
1968
+ "nested archive": [
1969
+ "decompression-dos"
1970
+ ],
1971
+ "recursion depth": [
1972
+ "decompression-dos"
1973
+ ],
1974
+ "length field allocation": [
1975
+ "decompression-dos"
1976
+ ],
1977
+ "input amplification": [
1978
+ "decompression-dos"
1884
1979
  ]
1885
1980
  }
@@ -42,6 +42,7 @@
42
42
  "CWE-22": [
43
43
  "api-security",
44
44
  "attack-surface-pentest",
45
+ "decompression-dos",
45
46
  "mail-server-hardening",
46
47
  "mcp-agent-trust",
47
48
  "webapp-security"
@@ -204,6 +205,7 @@
204
205
  "identity-assurance",
205
206
  "idp-incident-response",
206
207
  "mail-server-hardening",
208
+ "multitenancy-isolation",
207
209
  "sector-financial",
208
210
  "vc-wallet-trust",
209
211
  "webapp-security"
@@ -237,13 +239,37 @@
237
239
  "mail-server-hardening"
238
240
  ],
239
241
  "CWE-400": [
240
- "mail-server-hardening"
242
+ "decompression-dos",
243
+ "mail-server-hardening",
244
+ "multitenancy-isolation"
241
245
  ],
242
246
  "CWE-778": [
243
247
  "audit-log-integrity"
244
248
  ],
245
249
  "CWE-353": [
246
250
  "self-update-integrity"
251
+ ],
252
+ "CWE-639": [
253
+ "multitenancy-isolation"
254
+ ],
255
+ "CWE-770": [
256
+ "decompression-dos",
257
+ "multitenancy-isolation"
258
+ ],
259
+ "CWE-668": [
260
+ "multitenancy-isolation"
261
+ ],
262
+ "CWE-409": [
263
+ "decompression-dos"
264
+ ],
265
+ "CWE-1333": [
266
+ "decompression-dos"
267
+ ],
268
+ "CWE-776": [
269
+ "decompression-dos"
270
+ ],
271
+ "CWE-834": [
272
+ "decompression-dos"
247
273
  ]
248
274
  },
249
275
  "d3fend_refs": {
@@ -367,6 +393,7 @@
367
393
  "framework_gaps": {
368
394
  "NIST-800-53-SI-2": [
369
395
  "audit-log-integrity",
396
+ "decompression-dos",
370
397
  "kernel-lpe-triage",
371
398
  "mail-server-hardening"
372
399
  ],
@@ -612,6 +639,8 @@
612
639
  "sector-telecom"
613
640
  ],
614
641
  "AU-ISM-1556": [
642
+ "decompression-dos",
643
+ "multitenancy-isolation",
615
644
  "sector-telecom",
616
645
  "self-update-integrity"
617
646
  ],
@@ -698,7 +727,9 @@
698
727
  ],
699
728
  "NIS2-Art21-network-security": [
700
729
  "audit-log-integrity",
730
+ "decompression-dos",
701
731
  "mail-server-hardening",
732
+ "multitenancy-isolation",
702
733
  "network-trust",
703
734
  "self-update-integrity"
704
735
  ],
@@ -706,6 +737,8 @@
706
737
  "network-trust"
707
738
  ],
708
739
  "UK-CAF-B4": [
740
+ "decompression-dos",
741
+ "multitenancy-isolation",
709
742
  "network-trust",
710
743
  "self-update-integrity"
711
744
  ],
@@ -714,6 +747,9 @@
714
747
  ],
715
748
  "NIST-800-53-SR-11": [
716
749
  "self-update-integrity"
750
+ ],
751
+ "NIST-800-53-AC-3": [
752
+ "multitenancy-isolation"
717
753
  ]
718
754
  },
719
755
  "atlas_refs": {
@@ -805,6 +841,7 @@
805
841
  "T1059": [
806
842
  "ai-attack-surface",
807
843
  "attack-surface-pentest",
844
+ "decompression-dos",
808
845
  "mcp-agent-trust",
809
846
  "ransomware-response",
810
847
  "webapp-security"
@@ -857,6 +894,7 @@
857
894
  "email-security-anti-phishing",
858
895
  "identity-assurance",
859
896
  "incident-response-playbook",
897
+ "multitenancy-isolation",
860
898
  "ransomware-response",
861
899
  "sector-energy",
862
900
  "sector-financial",
@@ -875,6 +913,7 @@
875
913
  "T1530": [
876
914
  "cloud-security",
877
915
  "dlp-gap-analysis",
916
+ "multitenancy-isolation",
878
917
  "sector-healthcare"
879
918
  ],
880
919
  "T1213": [
@@ -992,6 +1031,14 @@
992
1031
  ],
993
1032
  "T1574": [
994
1033
  "self-update-integrity"
1034
+ ],
1035
+ "T1499": [
1036
+ "decompression-dos",
1037
+ "multitenancy-isolation"
1038
+ ],
1039
+ "T1499.001": [
1040
+ "decompression-dos",
1041
+ "multitenancy-isolation"
995
1042
  ]
996
1043
  },
997
1044
  "rfc_refs": {