@blamejs/exceptd-skills 0.16.15 → 0.16.16
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/AGENTS.md +2 -1
- package/CHANGELOG.md +4 -0
- package/README.md +5 -5
- package/bin/exceptd.js +2 -1
- package/data/_indexes/_meta.json +16 -15
- package/data/_indexes/activity-feed.json +9 -2
- package/data/_indexes/chains.json +4216 -629
- package/data/_indexes/currency.json +10 -1
- package/data/_indexes/frequency.json +100 -52
- package/data/_indexes/handoff-dag.json +5 -1
- package/data/_indexes/jurisdiction-map.json +6 -3
- package/data/_indexes/section-offsets.json +85 -0
- package/data/_indexes/stale-content.json +1 -1
- package/data/_indexes/summary-cards.json +40 -0
- package/data/_indexes/token-budget.json +53 -3
- package/data/_indexes/trigger-table.json +50 -1
- package/data/_indexes/xref.json +26 -1
- package/data/cwe-catalog.json +15 -4
- package/data/playbooks/cloud-iam-incident.json +26 -5
- package/data/playbooks/framework.json +1 -0
- package/data/playbooks/multitenancy-isolation.json +660 -0
- package/manifest-snapshot.json +56 -2
- package/manifest-snapshot.sha256 +1 -1
- package/manifest.json +107 -49
- package/package.json +2 -2
- package/sbom.cdx.json +60 -30
- package/skills/multitenancy-isolation/skill.md +83 -0
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"decay_formula": "100 base; -30/-20/-10/-5 at 180/90/60/30-day thresholds. forward_watch count does NOT affect the score (it's a maintenance signal, not a staleness one). Label thresholds: ≥90 current, ≥70 acceptable, ≥50 stale, <50 critical_stale."
|
|
7
7
|
},
|
|
8
8
|
"summary": {
|
|
9
|
-
"current":
|
|
9
|
+
"current": 48,
|
|
10
10
|
"acceptable": 0,
|
|
11
11
|
"stale": 0,
|
|
12
12
|
"critical_stale": 0,
|
|
@@ -247,6 +247,15 @@
|
|
|
247
247
|
"forward_watch_count": 6,
|
|
248
248
|
"action_required": false
|
|
249
249
|
},
|
|
250
|
+
{
|
|
251
|
+
"skill": "multitenancy-isolation",
|
|
252
|
+
"last_threat_review": "2026-06-02",
|
|
253
|
+
"days_since_review": -18,
|
|
254
|
+
"currency_score": 100,
|
|
255
|
+
"currency_label": "current",
|
|
256
|
+
"forward_watch_count": 0,
|
|
257
|
+
"action_required": false
|
|
258
|
+
},
|
|
250
259
|
{
|
|
251
260
|
"skill": "network-trust",
|
|
252
261
|
"last_threat_review": "2026-06-02",
|
|
@@ -309,13 +309,14 @@
|
|
|
309
309
|
]
|
|
310
310
|
},
|
|
311
311
|
"CWE-863": {
|
|
312
|
-
"count":
|
|
312
|
+
"count": 9,
|
|
313
313
|
"skills": [
|
|
314
314
|
"api-security",
|
|
315
315
|
"cloud-iam-incident",
|
|
316
316
|
"identity-assurance",
|
|
317
317
|
"idp-incident-response",
|
|
318
318
|
"mail-server-hardening",
|
|
319
|
+
"multitenancy-isolation",
|
|
319
320
|
"sector-financial",
|
|
320
321
|
"vc-wallet-trust",
|
|
321
322
|
"webapp-security"
|
|
@@ -371,9 +372,10 @@
|
|
|
371
372
|
]
|
|
372
373
|
},
|
|
373
374
|
"CWE-400": {
|
|
374
|
-
"count":
|
|
375
|
+
"count": 2,
|
|
375
376
|
"skills": [
|
|
376
|
-
"mail-server-hardening"
|
|
377
|
+
"mail-server-hardening",
|
|
378
|
+
"multitenancy-isolation"
|
|
377
379
|
]
|
|
378
380
|
},
|
|
379
381
|
"CWE-778": {
|
|
@@ -387,6 +389,24 @@
|
|
|
387
389
|
"skills": [
|
|
388
390
|
"self-update-integrity"
|
|
389
391
|
]
|
|
392
|
+
},
|
|
393
|
+
"CWE-639": {
|
|
394
|
+
"count": 1,
|
|
395
|
+
"skills": [
|
|
396
|
+
"multitenancy-isolation"
|
|
397
|
+
]
|
|
398
|
+
},
|
|
399
|
+
"CWE-770": {
|
|
400
|
+
"count": 1,
|
|
401
|
+
"skills": [
|
|
402
|
+
"multitenancy-isolation"
|
|
403
|
+
]
|
|
404
|
+
},
|
|
405
|
+
"CWE-668": {
|
|
406
|
+
"count": 1,
|
|
407
|
+
"skills": [
|
|
408
|
+
"multitenancy-isolation"
|
|
409
|
+
]
|
|
390
410
|
}
|
|
391
411
|
},
|
|
392
412
|
"d3fend_refs": {
|
|
@@ -980,8 +1000,9 @@
|
|
|
980
1000
|
]
|
|
981
1001
|
},
|
|
982
1002
|
"AU-ISM-1556": {
|
|
983
|
-
"count":
|
|
1003
|
+
"count": 3,
|
|
984
1004
|
"skills": [
|
|
1005
|
+
"multitenancy-isolation",
|
|
985
1006
|
"sector-telecom",
|
|
986
1007
|
"self-update-integrity"
|
|
987
1008
|
]
|
|
@@ -1146,10 +1167,11 @@
|
|
|
1146
1167
|
]
|
|
1147
1168
|
},
|
|
1148
1169
|
"NIS2-Art21-network-security": {
|
|
1149
|
-
"count":
|
|
1170
|
+
"count": 5,
|
|
1150
1171
|
"skills": [
|
|
1151
1172
|
"audit-log-integrity",
|
|
1152
1173
|
"mail-server-hardening",
|
|
1174
|
+
"multitenancy-isolation",
|
|
1153
1175
|
"network-trust",
|
|
1154
1176
|
"self-update-integrity"
|
|
1155
1177
|
]
|
|
@@ -1161,8 +1183,9 @@
|
|
|
1161
1183
|
]
|
|
1162
1184
|
},
|
|
1163
1185
|
"UK-CAF-B4": {
|
|
1164
|
-
"count":
|
|
1186
|
+
"count": 3,
|
|
1165
1187
|
"skills": [
|
|
1188
|
+
"multitenancy-isolation",
|
|
1166
1189
|
"network-trust",
|
|
1167
1190
|
"self-update-integrity"
|
|
1168
1191
|
]
|
|
@@ -1178,6 +1201,12 @@
|
|
|
1178
1201
|
"skills": [
|
|
1179
1202
|
"self-update-integrity"
|
|
1180
1203
|
]
|
|
1204
|
+
},
|
|
1205
|
+
"NIST-800-53-AC-3": {
|
|
1206
|
+
"count": 1,
|
|
1207
|
+
"skills": [
|
|
1208
|
+
"multitenancy-isolation"
|
|
1209
|
+
]
|
|
1181
1210
|
}
|
|
1182
1211
|
},
|
|
1183
1212
|
"atlas_refs": {
|
|
@@ -1376,7 +1405,7 @@
|
|
|
1376
1405
|
]
|
|
1377
1406
|
},
|
|
1378
1407
|
"T1078": {
|
|
1379
|
-
"count":
|
|
1408
|
+
"count": 14,
|
|
1380
1409
|
"skills": [
|
|
1381
1410
|
"age-gates-child-safety",
|
|
1382
1411
|
"api-security",
|
|
@@ -1386,6 +1415,7 @@
|
|
|
1386
1415
|
"email-security-anti-phishing",
|
|
1387
1416
|
"identity-assurance",
|
|
1388
1417
|
"incident-response-playbook",
|
|
1418
|
+
"multitenancy-isolation",
|
|
1389
1419
|
"ransomware-response",
|
|
1390
1420
|
"sector-energy",
|
|
1391
1421
|
"sector-financial",
|
|
@@ -1406,10 +1436,11 @@
|
|
|
1406
1436
|
]
|
|
1407
1437
|
},
|
|
1408
1438
|
"T1530": {
|
|
1409
|
-
"count":
|
|
1439
|
+
"count": 4,
|
|
1410
1440
|
"skills": [
|
|
1411
1441
|
"cloud-security",
|
|
1412
1442
|
"dlp-gap-analysis",
|
|
1443
|
+
"multitenancy-isolation",
|
|
1413
1444
|
"sector-healthcare"
|
|
1414
1445
|
]
|
|
1415
1446
|
},
|
|
@@ -1630,6 +1661,18 @@
|
|
|
1630
1661
|
"skills": [
|
|
1631
1662
|
"self-update-integrity"
|
|
1632
1663
|
]
|
|
1664
|
+
},
|
|
1665
|
+
"T1499": {
|
|
1666
|
+
"count": 1,
|
|
1667
|
+
"skills": [
|
|
1668
|
+
"multitenancy-isolation"
|
|
1669
|
+
]
|
|
1670
|
+
},
|
|
1671
|
+
"T1499.001": {
|
|
1672
|
+
"count": 1,
|
|
1673
|
+
"skills": [
|
|
1674
|
+
"multitenancy-isolation"
|
|
1675
|
+
]
|
|
1633
1676
|
}
|
|
1634
1677
|
},
|
|
1635
1678
|
"rfc_refs": {
|
|
@@ -1841,13 +1884,14 @@
|
|
|
1841
1884
|
},
|
|
1842
1885
|
{
|
|
1843
1886
|
"id": "CWE-863",
|
|
1844
|
-
"count":
|
|
1887
|
+
"count": 9,
|
|
1845
1888
|
"skills": [
|
|
1846
1889
|
"api-security",
|
|
1847
1890
|
"cloud-iam-incident",
|
|
1848
1891
|
"identity-assurance",
|
|
1849
1892
|
"idp-incident-response",
|
|
1850
1893
|
"mail-server-hardening",
|
|
1894
|
+
"multitenancy-isolation",
|
|
1851
1895
|
"sector-financial",
|
|
1852
1896
|
"vc-wallet-trust",
|
|
1853
1897
|
"webapp-security"
|
|
@@ -2122,6 +2166,17 @@
|
|
|
2122
2166
|
"sector-healthcare"
|
|
2123
2167
|
]
|
|
2124
2168
|
},
|
|
2169
|
+
{
|
|
2170
|
+
"id": "NIS2-Art21-network-security",
|
|
2171
|
+
"count": 5,
|
|
2172
|
+
"skills": [
|
|
2173
|
+
"audit-log-integrity",
|
|
2174
|
+
"mail-server-hardening",
|
|
2175
|
+
"multitenancy-isolation",
|
|
2176
|
+
"network-trust",
|
|
2177
|
+
"self-update-integrity"
|
|
2178
|
+
]
|
|
2179
|
+
},
|
|
2125
2180
|
{
|
|
2126
2181
|
"id": "SOC2-CC7-anomaly-detection",
|
|
2127
2182
|
"count": 5,
|
|
@@ -2163,16 +2218,6 @@
|
|
|
2163
2218
|
"threat-modeling-methodology"
|
|
2164
2219
|
]
|
|
2165
2220
|
},
|
|
2166
|
-
{
|
|
2167
|
-
"id": "NIS2-Art21-network-security",
|
|
2168
|
-
"count": 4,
|
|
2169
|
-
"skills": [
|
|
2170
|
-
"audit-log-integrity",
|
|
2171
|
-
"mail-server-hardening",
|
|
2172
|
-
"network-trust",
|
|
2173
|
-
"self-update-integrity"
|
|
2174
|
-
]
|
|
2175
|
-
},
|
|
2176
2221
|
{
|
|
2177
2222
|
"id": "NIS2-Art21-patch-management",
|
|
2178
2223
|
"count": 4,
|
|
@@ -2298,6 +2343,26 @@
|
|
|
2298
2343
|
}
|
|
2299
2344
|
],
|
|
2300
2345
|
"attack_refs": [
|
|
2346
|
+
{
|
|
2347
|
+
"id": "T1078",
|
|
2348
|
+
"count": 14,
|
|
2349
|
+
"skills": [
|
|
2350
|
+
"age-gates-child-safety",
|
|
2351
|
+
"api-security",
|
|
2352
|
+
"attack-surface-pentest",
|
|
2353
|
+
"cloud-iam-incident",
|
|
2354
|
+
"cloud-security",
|
|
2355
|
+
"email-security-anti-phishing",
|
|
2356
|
+
"identity-assurance",
|
|
2357
|
+
"incident-response-playbook",
|
|
2358
|
+
"multitenancy-isolation",
|
|
2359
|
+
"ransomware-response",
|
|
2360
|
+
"sector-energy",
|
|
2361
|
+
"sector-financial",
|
|
2362
|
+
"sector-healthcare",
|
|
2363
|
+
"sector-telecom"
|
|
2364
|
+
]
|
|
2365
|
+
},
|
|
2301
2366
|
{
|
|
2302
2367
|
"id": "T1190",
|
|
2303
2368
|
"count": 14,
|
|
@@ -2318,25 +2383,6 @@
|
|
|
2318
2383
|
"webapp-security"
|
|
2319
2384
|
]
|
|
2320
2385
|
},
|
|
2321
|
-
{
|
|
2322
|
-
"id": "T1078",
|
|
2323
|
-
"count": 13,
|
|
2324
|
-
"skills": [
|
|
2325
|
-
"age-gates-child-safety",
|
|
2326
|
-
"api-security",
|
|
2327
|
-
"attack-surface-pentest",
|
|
2328
|
-
"cloud-iam-incident",
|
|
2329
|
-
"cloud-security",
|
|
2330
|
-
"email-security-anti-phishing",
|
|
2331
|
-
"identity-assurance",
|
|
2332
|
-
"incident-response-playbook",
|
|
2333
|
-
"ransomware-response",
|
|
2334
|
-
"sector-energy",
|
|
2335
|
-
"sector-financial",
|
|
2336
|
-
"sector-healthcare",
|
|
2337
|
-
"sector-telecom"
|
|
2338
|
-
]
|
|
2339
|
-
},
|
|
2340
2386
|
{
|
|
2341
2387
|
"id": "T1567",
|
|
2342
2388
|
"count": 7,
|
|
@@ -2371,6 +2417,16 @@
|
|
|
2371
2417
|
"supply-chain-integrity"
|
|
2372
2418
|
]
|
|
2373
2419
|
},
|
|
2420
|
+
{
|
|
2421
|
+
"id": "T1530",
|
|
2422
|
+
"count": 4,
|
|
2423
|
+
"skills": [
|
|
2424
|
+
"cloud-security",
|
|
2425
|
+
"dlp-gap-analysis",
|
|
2426
|
+
"multitenancy-isolation",
|
|
2427
|
+
"sector-healthcare"
|
|
2428
|
+
]
|
|
2429
|
+
},
|
|
2374
2430
|
{
|
|
2375
2431
|
"id": "T1556",
|
|
2376
2432
|
"count": 4,
|
|
@@ -2399,15 +2455,6 @@
|
|
|
2399
2455
|
"sector-financial"
|
|
2400
2456
|
]
|
|
2401
2457
|
},
|
|
2402
|
-
{
|
|
2403
|
-
"id": "T1530",
|
|
2404
|
-
"count": 3,
|
|
2405
|
-
"skills": [
|
|
2406
|
-
"cloud-security",
|
|
2407
|
-
"dlp-gap-analysis",
|
|
2408
|
-
"sector-healthcare"
|
|
2409
|
-
]
|
|
2410
|
-
},
|
|
2411
2458
|
{
|
|
2412
2459
|
"id": "T0855",
|
|
2413
2460
|
"count": 2,
|
|
@@ -2540,8 +2587,10 @@
|
|
|
2540
2587
|
"CWE-20",
|
|
2541
2588
|
"CWE-327",
|
|
2542
2589
|
"CWE-353",
|
|
2543
|
-
"CWE-400",
|
|
2544
2590
|
"CWE-611",
|
|
2591
|
+
"CWE-639",
|
|
2592
|
+
"CWE-668",
|
|
2593
|
+
"CWE-770",
|
|
2545
2594
|
"CWE-778",
|
|
2546
2595
|
"CWE-93"
|
|
2547
2596
|
],
|
|
@@ -2576,6 +2625,7 @@
|
|
|
2576
2625
|
"Insurance-Carrier-24h-Notification",
|
|
2577
2626
|
"NIS2-Annex-I-Telecom",
|
|
2578
2627
|
"NIST-800-53-AC-2-Cross-Account",
|
|
2628
|
+
"NIST-800-53-AC-3",
|
|
2579
2629
|
"NIST-800-53-SI-12",
|
|
2580
2630
|
"NIST-800-53-SR-11",
|
|
2581
2631
|
"OFAC-SDN-Payment-Block",
|
|
@@ -2606,6 +2656,8 @@
|
|
|
2606
2656
|
"T1110",
|
|
2607
2657
|
"T1133",
|
|
2608
2658
|
"T1213",
|
|
2659
|
+
"T1499",
|
|
2660
|
+
"T1499.001",
|
|
2609
2661
|
"T1505",
|
|
2610
2662
|
"T1538",
|
|
2611
2663
|
"T1548.001",
|
|
@@ -2734,14 +2786,12 @@
|
|
|
2734
2786
|
"CWE-601",
|
|
2735
2787
|
"CWE-613",
|
|
2736
2788
|
"CWE-614",
|
|
2737
|
-
"CWE-639",
|
|
2738
2789
|
"CWE-640",
|
|
2739
2790
|
"CWE-641",
|
|
2740
2791
|
"CWE-642",
|
|
2741
2792
|
"CWE-643",
|
|
2742
2793
|
"CWE-648",
|
|
2743
2794
|
"CWE-667",
|
|
2744
|
-
"CWE-668",
|
|
2745
2795
|
"CWE-669",
|
|
2746
2796
|
"CWE-680",
|
|
2747
2797
|
"CWE-693",
|
|
@@ -2753,7 +2803,6 @@
|
|
|
2753
2803
|
"CWE-755",
|
|
2754
2804
|
"CWE-759",
|
|
2755
2805
|
"CWE-760",
|
|
2756
|
-
"CWE-770",
|
|
2757
2806
|
"CWE-772",
|
|
2758
2807
|
"CWE-776",
|
|
2759
2808
|
"CWE-779",
|
|
@@ -3451,7 +3500,6 @@
|
|
|
3451
3500
|
"NIST-800-218-SSDF-PO.4.2",
|
|
3452
3501
|
"NIST-800-218-SSDF-PW.4",
|
|
3453
3502
|
"NIST-800-218-SSDF-PW.7.1",
|
|
3454
|
-
"NIST-800-53-AC-3",
|
|
3455
3503
|
"NIST-800-53-AC-6",
|
|
3456
3504
|
"NIST-800-53-AU-9",
|
|
3457
3505
|
"NIST-800-53-CM-3",
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"mail-server-hardening",
|
|
27
27
|
"mcp-agent-trust",
|
|
28
28
|
"mlops-security",
|
|
29
|
+
"multitenancy-isolation",
|
|
29
30
|
"network-trust",
|
|
30
31
|
"ot-ics-security",
|
|
31
32
|
"policy-exception-gen",
|
|
@@ -523,7 +524,8 @@
|
|
|
523
524
|
"mail-server-hardening": [],
|
|
524
525
|
"network-trust": [],
|
|
525
526
|
"audit-log-integrity": [],
|
|
526
|
-
"self-update-integrity": []
|
|
527
|
+
"self-update-integrity": [],
|
|
528
|
+
"multitenancy-isolation": []
|
|
527
529
|
},
|
|
528
530
|
"in_degree": {
|
|
529
531
|
"age-gates-child-safety": 1,
|
|
@@ -552,6 +554,7 @@
|
|
|
552
554
|
"mail-server-hardening": 0,
|
|
553
555
|
"mcp-agent-trust": 22,
|
|
554
556
|
"mlops-security": 6,
|
|
557
|
+
"multitenancy-isolation": 0,
|
|
555
558
|
"network-trust": 0,
|
|
556
559
|
"ot-ics-security": 4,
|
|
557
560
|
"policy-exception-gen": 16,
|
|
@@ -601,6 +604,7 @@
|
|
|
601
604
|
"mail-server-hardening": 0,
|
|
602
605
|
"mcp-agent-trust": 7,
|
|
603
606
|
"mlops-security": 10,
|
|
607
|
+
"multitenancy-isolation": 0,
|
|
604
608
|
"network-trust": 0,
|
|
605
609
|
"ot-ics-security": 14,
|
|
606
610
|
"policy-exception-gen": 0,
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"mail-server-hardening",
|
|
28
28
|
"mcp-agent-trust",
|
|
29
29
|
"mlops-security",
|
|
30
|
+
"multitenancy-isolation",
|
|
30
31
|
"network-trust",
|
|
31
32
|
"ot-ics-security",
|
|
32
33
|
"policy-exception-gen",
|
|
@@ -50,7 +51,7 @@
|
|
|
50
51
|
"zeroday-gap-learn"
|
|
51
52
|
],
|
|
52
53
|
"example_excerpts": {},
|
|
53
|
-
"skill_count":
|
|
54
|
+
"skill_count": 48
|
|
54
55
|
},
|
|
55
56
|
"UK": {
|
|
56
57
|
"skills": [
|
|
@@ -78,6 +79,7 @@
|
|
|
78
79
|
"kernel-lpe-triage",
|
|
79
80
|
"mcp-agent-trust",
|
|
80
81
|
"mlops-security",
|
|
82
|
+
"multitenancy-isolation",
|
|
81
83
|
"network-trust",
|
|
82
84
|
"ot-ics-security",
|
|
83
85
|
"policy-exception-gen",
|
|
@@ -101,7 +103,7 @@
|
|
|
101
103
|
"zeroday-gap-learn"
|
|
102
104
|
],
|
|
103
105
|
"example_excerpts": {},
|
|
104
|
-
"skill_count":
|
|
106
|
+
"skill_count": 46
|
|
105
107
|
},
|
|
106
108
|
"AU": {
|
|
107
109
|
"skills": [
|
|
@@ -129,6 +131,7 @@
|
|
|
129
131
|
"kernel-lpe-triage",
|
|
130
132
|
"mcp-agent-trust",
|
|
131
133
|
"mlops-security",
|
|
134
|
+
"multitenancy-isolation",
|
|
132
135
|
"ot-ics-security",
|
|
133
136
|
"policy-exception-gen",
|
|
134
137
|
"pqc-first",
|
|
@@ -150,7 +153,7 @@
|
|
|
150
153
|
"zeroday-gap-learn"
|
|
151
154
|
],
|
|
152
155
|
"example_excerpts": {},
|
|
153
|
-
"skill_count":
|
|
156
|
+
"skill_count": 44
|
|
154
157
|
},
|
|
155
158
|
"SG": {
|
|
156
159
|
"skills": [
|
|
@@ -4722,6 +4722,91 @@
|
|
|
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
|
+
]
|
|
4725
4810
|
}
|
|
4726
4811
|
}
|
|
4727
4812
|
}
|
|
@@ -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
|
|
18
|
+
"detail": "claims 41 specialized skills downstream; live count is 47"
|
|
19
19
|
}
|
|
20
20
|
]
|
|
21
21
|
}
|
|
@@ -2176,6 +2176,46 @@
|
|
|
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": []
|
|
2179
2219
|
}
|
|
2180
2220
|
}
|
|
2181
2221
|
}
|
|
@@ -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":
|
|
7
|
-
"total_approx_tokens":
|
|
8
|
-
"skill_count":
|
|
6
|
+
"total_chars": 1720649,
|
|
7
|
+
"total_approx_tokens": 430165,
|
|
8
|
+
"skill_count": 48
|
|
9
9
|
},
|
|
10
10
|
"skills": {
|
|
11
11
|
"kernel-lpe-triage": {
|
|
@@ -2752,6 +2752,56 @@
|
|
|
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
|
+
}
|
|
2755
2805
|
}
|
|
2756
2806
|
}
|
|
2757
2807
|
}
|