@clear-capabilities/agentic-security-scanner 0.75.0 → 0.76.1

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.
@@ -1,7 +1,7 @@
1
1
  {
2
- "scanId": "fd9545b1-258a-4aee-a6a9-512c9f1c1397",
3
- "startedAt": "2026-05-19T23:06:34.927Z",
4
- "durationMs": 206,
2
+ "scanId": "b7dc55f1-c531-4200-b6b4-c55b94d2af74",
3
+ "startedAt": "2026-05-24T15:10:46.292Z",
4
+ "durationMs": 200,
5
5
  "scanned": {
6
6
  "files": 6,
7
7
  "lines": 0
@@ -86,7 +86,9 @@
86
86
  "comparable": "Snyk 2022 path-traversal disclosure → CDN cache poisoning + .env exfil",
87
87
  "confidence": "low",
88
88
  "narrative": "Sensitive Directory Path Construction on `audit.js:87` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Snyk 2022 path-traversal disclosure → CDN cache poisoning + .env exfil."
89
- }
89
+ },
90
+ "parser": "LOGIC",
91
+ "family": null
90
92
  },
91
93
  {
92
94
  "id": "3fe487064529945e",
@@ -167,7 +169,9 @@
167
169
  "comparable": "Snyk 2022 path-traversal disclosure → CDN cache poisoning + .env exfil",
168
170
  "confidence": "low",
169
171
  "narrative": "Sensitive Directory Path Construction on `audit.js:107` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Snyk 2022 path-traversal disclosure → CDN cache poisoning + .env exfil."
170
- }
172
+ },
173
+ "parser": "LOGIC",
174
+ "family": null
171
175
  },
172
176
  {
173
177
  "id": "struct:audit.js:52:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
@@ -278,6 +282,7 @@
278
282
  "unvalidated": true,
279
283
  "cross_language": false,
280
284
  "family": "dos-sync-io",
285
+ "parser": "STRUCTURAL",
281
286
  "_unsigned": false,
282
287
  "_passThroughSigning": false,
283
288
  "signatureStatus": "verified",
@@ -506,6 +511,7 @@
506
511
  "unvalidated": true,
507
512
  "cross_language": false,
508
513
  "family": "dos-sync-io",
514
+ "parser": "STRUCTURAL",
509
515
  "_unsigned": false,
510
516
  "_passThroughSigning": false,
511
517
  "signatureStatus": "verified",
@@ -734,6 +740,7 @@
734
740
  "unvalidated": true,
735
741
  "cross_language": false,
736
742
  "family": "dos-sync-io",
743
+ "parser": "STRUCTURAL",
737
744
  "_unsigned": false,
738
745
  "_passThroughSigning": false,
739
746
  "signatureStatus": "verified",
@@ -962,6 +969,7 @@
962
969
  "unvalidated": true,
963
970
  "cross_language": false,
964
971
  "family": "dos-sync-io",
972
+ "parser": "STRUCTURAL",
965
973
  "_unsigned": false,
966
974
  "_passThroughSigning": false,
967
975
  "signatureStatus": "verified",
@@ -1190,6 +1198,7 @@
1190
1198
  "unvalidated": true,
1191
1199
  "cross_language": false,
1192
1200
  "family": "dos-sync-io",
1201
+ "parser": "STRUCTURAL",
1193
1202
  "_unsigned": false,
1194
1203
  "_passThroughSigning": false,
1195
1204
  "signatureStatus": "verified",
@@ -1418,6 +1427,7 @@
1418
1427
  "unvalidated": true,
1419
1428
  "cross_language": false,
1420
1429
  "family": "dos-sync-io",
1430
+ "parser": "STRUCTURAL",
1421
1431
  "_unsigned": false,
1422
1432
  "_passThroughSigning": false,
1423
1433
  "signatureStatus": "verified",
@@ -1646,6 +1656,7 @@
1646
1656
  "unvalidated": true,
1647
1657
  "cross_language": false,
1648
1658
  "family": "dos-sync-io",
1659
+ "parser": "STRUCTURAL",
1649
1660
  "_unsigned": false,
1650
1661
  "_passThroughSigning": false,
1651
1662
  "signatureStatus": "verified",
@@ -1874,6 +1885,7 @@
1874
1885
  "unvalidated": true,
1875
1886
  "cross_language": false,
1876
1887
  "family": "dos-sync-io",
1888
+ "parser": "STRUCTURAL",
1877
1889
  "_unsigned": false,
1878
1890
  "_passThroughSigning": false,
1879
1891
  "signatureStatus": "verified",
@@ -1994,7 +2006,7 @@
1994
2006
  "attackPlaybook": null
1995
2007
  },
1996
2008
  {
1997
- "id": "struct:tools.js:146:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
2009
+ "id": "struct:tools.js:159:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
1998
2010
  "kind": "sast",
1999
2011
  "severity": "medium",
2000
2012
  "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
@@ -2002,7 +2014,7 @@
2002
2014
  "owaspLlm": null,
2003
2015
  "stride": "Denial of Service",
2004
2016
  "file": "tools.js",
2005
- "line": 146,
2017
+ "line": 159,
2006
2018
  "snippet": "if (!fs.existsSync(base)) return 0;",
2007
2019
  "fix": null,
2008
2020
  "reachable": false,
@@ -2085,7 +2097,7 @@
2085
2097
  "dominantDriver": "legal counsel",
2086
2098
  "comparable": "Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage",
2087
2099
  "confidence": "low",
2088
- "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:146` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
2100
+ "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:159` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
2089
2101
  },
2090
2102
  "stableId": "1e9acea1c604735d",
2091
2103
  "confidenceTier": "very-low",
@@ -2102,6 +2114,7 @@
2102
2114
  "unvalidated": true,
2103
2115
  "cross_language": false,
2104
2116
  "family": "dos-sync-io",
2117
+ "parser": "STRUCTURAL",
2105
2118
  "_unsigned": false,
2106
2119
  "_passThroughSigning": false,
2107
2120
  "signatureStatus": "verified",
@@ -2222,7 +2235,7 @@
2222
2235
  "attackPlaybook": null
2223
2236
  },
2224
2237
  {
2225
- "id": "struct:tools.js:150:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
2238
+ "id": "struct:tools.js:163:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
2226
2239
  "kind": "sast",
2227
2240
  "severity": "medium",
2228
2241
  "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
@@ -2230,7 +2243,7 @@
2230
2243
  "owaspLlm": null,
2231
2244
  "stride": "Denial of Service",
2232
2245
  "file": "tools.js",
2233
- "line": 150,
2246
+ "line": 163,
2234
2247
  "snippet": "try { entries = fs.readdirSync(dir, { withFileTypes: true }); } catch { return; }",
2235
2248
  "fix": null,
2236
2249
  "reachable": false,
@@ -2313,7 +2326,7 @@
2313
2326
  "dominantDriver": "legal counsel",
2314
2327
  "comparable": "Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage",
2315
2328
  "confidence": "low",
2316
- "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:150` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
2329
+ "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:163` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
2317
2330
  },
2318
2331
  "stableId": "2fa201373bb88289",
2319
2332
  "confidenceTier": "very-low",
@@ -2330,6 +2343,7 @@
2330
2343
  "unvalidated": true,
2331
2344
  "cross_language": false,
2332
2345
  "family": "dos-sync-io",
2346
+ "parser": "STRUCTURAL",
2333
2347
  "_unsigned": false,
2334
2348
  "_passThroughSigning": false,
2335
2349
  "signatureStatus": "verified",
@@ -2450,7 +2464,7 @@
2450
2464
  "attackPlaybook": null
2451
2465
  },
2452
2466
  {
2453
- "id": "struct:tools.js:154:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
2467
+ "id": "struct:tools.js:167:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
2454
2468
  "kind": "sast",
2455
2469
  "severity": "medium",
2456
2470
  "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
@@ -2458,7 +2472,7 @@
2458
2472
  "owaspLlm": null,
2459
2473
  "stride": "Denial of Service",
2460
2474
  "file": "tools.js",
2461
- "line": 154,
2475
+ "line": 167,
2462
2476
  "snippet": "if (e.isFile()) { total += fs.statSync(fp).size; }",
2463
2477
  "fix": null,
2464
2478
  "reachable": false,
@@ -2541,7 +2555,7 @@
2541
2555
  "dominantDriver": "legal counsel",
2542
2556
  "comparable": "Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage",
2543
2557
  "confidence": "low",
2544
- "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:154` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
2558
+ "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:167` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
2545
2559
  },
2546
2560
  "stableId": "547b2fb09d6b2ee6",
2547
2561
  "confidenceTier": "very-low",
@@ -2558,6 +2572,7 @@
2558
2572
  "unvalidated": true,
2559
2573
  "cross_language": false,
2560
2574
  "family": "dos-sync-io",
2575
+ "parser": "STRUCTURAL",
2561
2576
  "_unsigned": false,
2562
2577
  "_passThroughSigning": false,
2563
2578
  "signatureStatus": "verified",
@@ -2678,7 +2693,7 @@
2678
2693
  "attackPlaybook": null
2679
2694
  },
2680
2695
  {
2681
- "id": "struct:tools.js:183:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
2696
+ "id": "struct:tools.js:196:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
2682
2697
  "kind": "sast",
2683
2698
  "severity": "medium",
2684
2699
  "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
@@ -2686,7 +2701,7 @@
2686
2701
  "owaspLlm": null,
2687
2702
  "stride": "Denial of Service",
2688
2703
  "file": "tools.js",
2689
- "line": 183,
2704
+ "line": 196,
2690
2705
  "snippet": "if (fs.existsSync(abs)) {",
2691
2706
  "fix": null,
2692
2707
  "reachable": false,
@@ -2769,7 +2784,7 @@
2769
2784
  "dominantDriver": "legal counsel",
2770
2785
  "comparable": "Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage",
2771
2786
  "confidence": "low",
2772
- "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:183` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
2787
+ "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:196` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
2773
2788
  },
2774
2789
  "stableId": "85516745fc5cd07d",
2775
2790
  "confidenceTier": "very-low",
@@ -2786,6 +2801,7 @@
2786
2801
  "unvalidated": true,
2787
2802
  "cross_language": false,
2788
2803
  "family": "dos-sync-io",
2804
+ "parser": "STRUCTURAL",
2789
2805
  "_unsigned": false,
2790
2806
  "_passThroughSigning": false,
2791
2807
  "signatureStatus": "verified",
@@ -2906,7 +2922,7 @@
2906
2922
  "attackPlaybook": null
2907
2923
  },
2908
2924
  {
2909
- "id": "struct:tools.js:198:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
2925
+ "id": "struct:tools.js:211:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
2910
2926
  "kind": "sast",
2911
2927
  "severity": "medium",
2912
2928
  "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
@@ -2914,7 +2930,7 @@
2914
2930
  "owaspLlm": null,
2915
2931
  "stride": "Denial of Service",
2916
2932
  "file": "tools.js",
2917
- "line": 198,
2933
+ "line": 211,
2918
2934
  "snippet": "while (parent !== path.dirname(parent) && !fs.existsSync(parent)) {",
2919
2935
  "fix": null,
2920
2936
  "reachable": false,
@@ -2997,7 +3013,7 @@
2997
3013
  "dominantDriver": "legal counsel",
2998
3014
  "comparable": "Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage",
2999
3015
  "confidence": "low",
3000
- "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:198` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
3016
+ "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:211` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
3001
3017
  },
3002
3018
  "stableId": "7a9376b6ae56e112",
3003
3019
  "confidenceTier": "very-low",
@@ -3014,6 +3030,7 @@
3014
3030
  "unvalidated": true,
3015
3031
  "cross_language": false,
3016
3032
  "family": "dos-sync-io",
3033
+ "parser": "STRUCTURAL",
3017
3034
  "_unsigned": false,
3018
3035
  "_passThroughSigning": false,
3019
3036
  "signatureStatus": "verified",
@@ -3134,7 +3151,7 @@
3134
3151
  "attackPlaybook": null
3135
3152
  },
3136
3153
  {
3137
- "id": "struct:tools.js:213:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
3154
+ "id": "struct:tools.js:226:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
3138
3155
  "kind": "sast",
3139
3156
  "severity": "medium",
3140
3157
  "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
@@ -3142,7 +3159,7 @@
3142
3159
  "owaspLlm": null,
3143
3160
  "stride": "Denial of Service",
3144
3161
  "file": "tools.js",
3145
- "line": 213,
3162
+ "line": 226,
3146
3163
  "snippet": "if (!fs.existsSync(scanFile)) return { scan: null, status: 'missing' };",
3147
3164
  "fix": null,
3148
3165
  "reachable": false,
@@ -3225,7 +3242,7 @@
3225
3242
  "dominantDriver": "legal counsel",
3226
3243
  "comparable": "Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage",
3227
3244
  "confidence": "low",
3228
- "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:213` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
3245
+ "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:226` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
3229
3246
  },
3230
3247
  "stableId": "b825ad3b2f959d4e",
3231
3248
  "confidenceTier": "very-low",
@@ -3242,6 +3259,7 @@
3242
3259
  "unvalidated": true,
3243
3260
  "cross_language": false,
3244
3261
  "family": "dos-sync-io",
3262
+ "parser": "STRUCTURAL",
3245
3263
  "_unsigned": false,
3246
3264
  "_passThroughSigning": false,
3247
3265
  "signatureStatus": "verified",
@@ -3362,7 +3380,7 @@
3362
3380
  "attackPlaybook": null
3363
3381
  },
3364
3382
  {
3365
- "id": "struct:tools.js:214:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
3383
+ "id": "struct:tools.js:227:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
3366
3384
  "kind": "sast",
3367
3385
  "severity": "medium",
3368
3386
  "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
@@ -3370,7 +3388,7 @@
3370
3388
  "owaspLlm": null,
3371
3389
  "stride": "Denial of Service",
3372
3390
  "file": "tools.js",
3373
- "line": 214,
3391
+ "line": 227,
3374
3392
  "snippet": "const body = fs.readFileSync(scanFile, 'utf8');",
3375
3393
  "fix": null,
3376
3394
  "reachable": false,
@@ -3453,7 +3471,7 @@
3453
3471
  "dominantDriver": "legal counsel",
3454
3472
  "comparable": "Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage",
3455
3473
  "confidence": "low",
3456
- "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:214` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
3474
+ "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:227` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
3457
3475
  },
3458
3476
  "stableId": "eeec8daac4285882",
3459
3477
  "confidenceTier": "very-low",
@@ -3470,6 +3488,7 @@
3470
3488
  "unvalidated": true,
3471
3489
  "cross_language": false,
3472
3490
  "family": "dos-sync-io",
3491
+ "parser": "STRUCTURAL",
3473
3492
  "_unsigned": false,
3474
3493
  "_passThroughSigning": false,
3475
3494
  "signatureStatus": "verified",
@@ -3590,7 +3609,7 @@
3590
3609
  "attackPlaybook": null
3591
3610
  },
3592
3611
  {
3593
- "id": "struct:tools.js:266:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
3612
+ "id": "struct:tools.js:279:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
3594
3613
  "kind": "sast",
3595
3614
  "severity": "medium",
3596
3615
  "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
@@ -3598,7 +3617,7 @@
3598
3617
  "owaspLlm": null,
3599
3618
  "stride": "Denial of Service",
3600
3619
  "file": "tools.js",
3601
- "line": 266,
3620
+ "line": 279,
3602
3621
  "snippet": "fs.writeFileSync(abs, json);",
3603
3622
  "fix": null,
3604
3623
  "reachable": false,
@@ -3681,7 +3700,7 @@
3681
3700
  "dominantDriver": "legal counsel",
3682
3701
  "comparable": "Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage",
3683
3702
  "confidence": "low",
3684
- "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:266` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
3703
+ "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:279` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
3685
3704
  },
3686
3705
  "stableId": "ed24011ab73ede75",
3687
3706
  "confidenceTier": "very-low",
@@ -3698,6 +3717,7 @@
3698
3717
  "unvalidated": true,
3699
3718
  "cross_language": false,
3700
3719
  "family": "dos-sync-io",
3720
+ "parser": "STRUCTURAL",
3701
3721
  "_unsigned": false,
3702
3722
  "_passThroughSigning": false,
3703
3723
  "signatureStatus": "verified",
@@ -3818,7 +3838,7 @@
3818
3838
  "attackPlaybook": null
3819
3839
  },
3820
3840
  {
3821
- "id": "struct:tools.js:305:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
3841
+ "id": "struct:tools.js:318:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
3822
3842
  "kind": "sast",
3823
3843
  "severity": "medium",
3824
3844
  "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
@@ -3826,7 +3846,7 @@
3826
3846
  "owaspLlm": null,
3827
3847
  "stride": "Denial of Service",
3828
3848
  "file": "tools.js",
3829
- "line": 305,
3849
+ "line": 318,
3830
3850
  "snippet": "try { stat = fs.statSync(a); } catch { continue; }",
3831
3851
  "fix": null,
3832
3852
  "reachable": false,
@@ -3909,7 +3929,7 @@
3909
3929
  "dominantDriver": "legal counsel",
3910
3930
  "comparable": "Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage",
3911
3931
  "confidence": "low",
3912
- "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:305` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
3932
+ "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:318` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
3913
3933
  },
3914
3934
  "stableId": "dbe6f0f46abb1dd2",
3915
3935
  "confidenceTier": "very-low",
@@ -3926,6 +3946,7 @@
3926
3946
  "unvalidated": true,
3927
3947
  "cross_language": false,
3928
3948
  "family": "dos-sync-io",
3949
+ "parser": "STRUCTURAL",
3929
3950
  "_unsigned": false,
3930
3951
  "_passThroughSigning": false,
3931
3952
  "signatureStatus": "verified",
@@ -4046,7 +4067,7 @@
4046
4067
  "attackPlaybook": null
4047
4068
  },
4048
4069
  {
4049
- "id": "struct:tools.js:313:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
4070
+ "id": "struct:tools.js:326:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
4050
4071
  "kind": "sast",
4051
4072
  "severity": "medium",
4052
4073
  "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
@@ -4054,7 +4075,7 @@
4054
4075
  "owaspLlm": null,
4055
4076
  "stride": "Denial of Service",
4056
4077
  "file": "tools.js",
4057
- "line": 313,
4078
+ "line": 326,
4058
4079
  "snippet": "try { content = fs.readFileSync(a, 'utf8'); } catch { continue; }",
4059
4080
  "fix": null,
4060
4081
  "reachable": false,
@@ -4137,7 +4158,7 @@
4137
4158
  "dominantDriver": "legal counsel",
4138
4159
  "comparable": "Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage",
4139
4160
  "confidence": "low",
4140
- "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:313` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
4161
+ "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:326` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
4141
4162
  },
4142
4163
  "stableId": "d42403835d68b343",
4143
4164
  "confidenceTier": "very-low",
@@ -4154,6 +4175,7 @@
4154
4175
  "unvalidated": true,
4155
4176
  "cross_language": false,
4156
4177
  "family": "dos-sync-io",
4178
+ "parser": "STRUCTURAL",
4157
4179
  "_unsigned": false,
4158
4180
  "_passThroughSigning": false,
4159
4181
  "signatureStatus": "verified",
@@ -4274,7 +4296,7 @@
4274
4296
  "attackPlaybook": null
4275
4297
  },
4276
4298
  {
4277
- "id": "struct:tools.js:506:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
4299
+ "id": "struct:tools.js:520:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
4278
4300
  "kind": "sast",
4279
4301
  "severity": "medium",
4280
4302
  "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
@@ -4282,7 +4304,7 @@
4282
4304
  "owaspLlm": null,
4283
4305
  "stride": "Denial of Service",
4284
4306
  "file": "tools.js",
4285
- "line": 506,
4307
+ "line": 520,
4286
4308
  "snippet": "if (!fs.existsSync(absFile)) {",
4287
4309
  "fix": null,
4288
4310
  "reachable": false,
@@ -4365,7 +4387,7 @@
4365
4387
  "dominantDriver": "legal counsel",
4366
4388
  "comparable": "Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage",
4367
4389
  "confidence": "low",
4368
- "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:506` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
4390
+ "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:520` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
4369
4391
  },
4370
4392
  "stableId": "a515ef632995d759",
4371
4393
  "confidenceTier": "very-low",
@@ -4382,6 +4404,7 @@
4382
4404
  "unvalidated": true,
4383
4405
  "cross_language": false,
4384
4406
  "family": "dos-sync-io",
4407
+ "parser": "STRUCTURAL",
4385
4408
  "_unsigned": false,
4386
4409
  "_passThroughSigning": false,
4387
4410
  "signatureStatus": "verified",
@@ -4502,7 +4525,7 @@
4502
4525
  "attackPlaybook": null
4503
4526
  },
4504
4527
  {
4505
- "id": "struct:tools.js:641:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
4528
+ "id": "struct:tools.js:656:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
4506
4529
  "kind": "sast",
4507
4530
  "severity": "medium",
4508
4531
  "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
@@ -4510,7 +4533,7 @@
4510
4533
  "owaspLlm": null,
4511
4534
  "stride": "Denial of Service",
4512
4535
  "file": "tools.js",
4513
- "line": 641,
4536
+ "line": 656,
4514
4537
  "snippet": "orig = fs.readFileSync(abs, 'utf8');",
4515
4538
  "fix": null,
4516
4539
  "reachable": false,
@@ -4593,7 +4616,7 @@
4593
4616
  "dominantDriver": "legal counsel",
4594
4617
  "comparable": "Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage",
4595
4618
  "confidence": "low",
4596
- "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:641` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
4619
+ "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:656` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
4597
4620
  },
4598
4621
  "stableId": "57f4b1b832698131",
4599
4622
  "confidenceTier": "very-low",
@@ -4610,6 +4633,7 @@
4610
4633
  "unvalidated": true,
4611
4634
  "cross_language": false,
4612
4635
  "family": "dos-sync-io",
4636
+ "parser": "STRUCTURAL",
4613
4637
  "_unsigned": false,
4614
4638
  "_passThroughSigning": false,
4615
4639
  "signatureStatus": "verified",
@@ -4730,7 +4754,7 @@
4730
4754
  "attackPlaybook": null
4731
4755
  },
4732
4756
  {
4733
- "id": "struct:tools.js:716:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
4757
+ "id": "struct:tools.js:731:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
4734
4758
  "kind": "sast",
4735
4759
  "severity": "medium",
4736
4760
  "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
@@ -4738,7 +4762,7 @@
4738
4762
  "owaspLlm": null,
4739
4763
  "stride": "Denial of Service",
4740
4764
  "file": "tools.js",
4741
- "line": 716,
4765
+ "line": 731,
4742
4766
  "snippet": "if (!fs.existsSync(root)) continue;",
4743
4767
  "fix": null,
4744
4768
  "reachable": false,
@@ -4821,7 +4845,7 @@
4821
4845
  "dominantDriver": "legal counsel",
4822
4846
  "comparable": "Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage",
4823
4847
  "confidence": "low",
4824
- "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:716` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
4848
+ "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:731` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
4825
4849
  },
4826
4850
  "stableId": "c9859099f48df29b",
4827
4851
  "confidenceTier": "very-low",
@@ -4838,6 +4862,7 @@
4838
4862
  "unvalidated": true,
4839
4863
  "cross_language": false,
4840
4864
  "family": "dos-sync-io",
4865
+ "parser": "STRUCTURAL",
4841
4866
  "_unsigned": false,
4842
4867
  "_passThroughSigning": false,
4843
4868
  "signatureStatus": "verified",
@@ -4958,7 +4983,7 @@
4958
4983
  "attackPlaybook": null
4959
4984
  },
4960
4985
  {
4961
- "id": "struct:tools.js:718:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
4986
+ "id": "struct:tools.js:733:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
4962
4987
  "kind": "sast",
4963
4988
  "severity": "medium",
4964
4989
  "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
@@ -4966,7 +4991,7 @@
4966
4991
  "owaspLlm": null,
4967
4992
  "stride": "Denial of Service",
4968
4993
  "file": "tools.js",
4969
- "line": 718,
4994
+ "line": 733,
4970
4995
  "snippet": "try { entries = fs.readdirSync(root); } catch { continue; }",
4971
4996
  "fix": null,
4972
4997
  "reachable": false,
@@ -5049,7 +5074,7 @@
5049
5074
  "dominantDriver": "legal counsel",
5050
5075
  "comparable": "Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage",
5051
5076
  "confidence": "low",
5052
- "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:718` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
5077
+ "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:733` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
5053
5078
  },
5054
5079
  "stableId": "89f91d08de0eb710",
5055
5080
  "confidenceTier": "very-low",
@@ -5066,6 +5091,7 @@
5066
5091
  "unvalidated": true,
5067
5092
  "cross_language": false,
5068
5093
  "family": "dos-sync-io",
5094
+ "parser": "STRUCTURAL",
5069
5095
  "_unsigned": false,
5070
5096
  "_passThroughSigning": false,
5071
5097
  "signatureStatus": "verified",
@@ -5186,7 +5212,7 @@
5186
5212
  "attackPlaybook": null
5187
5213
  },
5188
5214
  {
5189
- "id": "struct:tools.js:723:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
5215
+ "id": "struct:tools.js:738:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
5190
5216
  "kind": "sast",
5191
5217
  "severity": "medium",
5192
5218
  "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
@@ -5194,7 +5220,7 @@
5194
5220
  "owaspLlm": null,
5195
5221
  "stride": "Denial of Service",
5196
5222
  "file": "tools.js",
5197
- "line": 723,
5223
+ "line": 738,
5198
5224
  "snippet": "try { stat = fs.statSync(abs); } catch { continue; }",
5199
5225
  "fix": null,
5200
5226
  "reachable": false,
@@ -5277,7 +5303,7 @@
5277
5303
  "dominantDriver": "legal counsel",
5278
5304
  "comparable": "Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage",
5279
5305
  "confidence": "low",
5280
- "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:723` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
5306
+ "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:738` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
5281
5307
  },
5282
5308
  "stableId": "2d09043bbc86acb2",
5283
5309
  "confidenceTier": "very-low",
@@ -5294,6 +5320,7 @@
5294
5320
  "unvalidated": true,
5295
5321
  "cross_language": false,
5296
5322
  "family": "dos-sync-io",
5323
+ "parser": "STRUCTURAL",
5297
5324
  "_unsigned": false,
5298
5325
  "_passThroughSigning": false,
5299
5326
  "signatureStatus": "verified",
@@ -5414,7 +5441,7 @@
5414
5441
  "attackPlaybook": null
5415
5442
  },
5416
5443
  {
5417
- "id": "struct:tools.js:726:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
5444
+ "id": "struct:tools.js:741:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
5418
5445
  "kind": "sast",
5419
5446
  "severity": "medium",
5420
5447
  "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
@@ -5422,7 +5449,7 @@
5422
5449
  "owaspLlm": null,
5423
5450
  "stride": "Denial of Service",
5424
5451
  "file": "tools.js",
5425
- "line": 726,
5452
+ "line": 741,
5426
5453
  "snippet": "try { body = fs.readFileSync(abs, 'utf8'); } catch { continue; }",
5427
5454
  "fix": null,
5428
5455
  "reachable": false,
@@ -5505,7 +5532,7 @@
5505
5532
  "dominantDriver": "legal counsel",
5506
5533
  "comparable": "Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage",
5507
5534
  "confidence": "low",
5508
- "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:726` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
5535
+ "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:741` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
5509
5536
  },
5510
5537
  "stableId": "d35ae1ba160a099f",
5511
5538
  "confidenceTier": "very-low",
@@ -5522,6 +5549,7 @@
5522
5549
  "unvalidated": true,
5523
5550
  "cross_language": false,
5524
5551
  "family": "dos-sync-io",
5552
+ "parser": "STRUCTURAL",
5525
5553
  "_unsigned": false,
5526
5554
  "_passThroughSigning": false,
5527
5555
  "signatureStatus": "verified",
@@ -5642,7 +5670,7 @@
5642
5670
  "attackPlaybook": null
5643
5671
  },
5644
5672
  {
5645
- "id": "struct:tools.js:805:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
5673
+ "id": "struct:tools.js:820:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
5646
5674
  "kind": "sast",
5647
5675
  "severity": "medium",
5648
5676
  "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
@@ -5650,7 +5678,7 @@
5650
5678
  "owaspLlm": null,
5651
5679
  "stride": "Denial of Service",
5652
5680
  "file": "tools.js",
5653
- "line": 805,
5681
+ "line": 820,
5654
5682
  "snippet": "try { if (fs.existsSync(abs)) existing = fs.statSync(abs).size; } catch {}",
5655
5683
  "fix": null,
5656
5684
  "reachable": false,
@@ -5733,7 +5761,7 @@
5733
5761
  "dominantDriver": "legal counsel",
5734
5762
  "comparable": "Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage",
5735
5763
  "confidence": "low",
5736
- "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:805` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
5764
+ "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:820` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
5737
5765
  },
5738
5766
  "stableId": "0f41b32c2a7726e9",
5739
5767
  "confidenceTier": "very-low",
@@ -5750,6 +5778,7 @@
5750
5778
  "unvalidated": true,
5751
5779
  "cross_language": false,
5752
5780
  "family": "dos-sync-io",
5781
+ "parser": "STRUCTURAL",
5753
5782
  "_unsigned": false,
5754
5783
  "_passThroughSigning": false,
5755
5784
  "signatureStatus": "verified",
@@ -5870,7 +5899,7 @@
5870
5899
  "attackPlaybook": null
5871
5900
  },
5872
5901
  {
5873
- "id": "struct:tools.js:814:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
5902
+ "id": "struct:tools.js:829:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
5874
5903
  "kind": "sast",
5875
5904
  "severity": "medium",
5876
5905
  "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
@@ -5878,7 +5907,7 @@
5878
5907
  "owaspLlm": null,
5879
5908
  "stride": "Denial of Service",
5880
5909
  "file": "tools.js",
5881
- "line": 814,
5910
+ "line": 829,
5882
5911
  "snippet": "fs.appendFileSync(abs, content);",
5883
5912
  "fix": null,
5884
5913
  "reachable": false,
@@ -5961,7 +5990,7 @@
5961
5990
  "dominantDriver": "legal counsel",
5962
5991
  "comparable": "Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage",
5963
5992
  "confidence": "low",
5964
- "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:814` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
5993
+ "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:829` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
5965
5994
  },
5966
5995
  "stableId": "43b3be77acefb914",
5967
5996
  "confidenceTier": "very-low",
@@ -5978,6 +6007,7 @@
5978
6007
  "unvalidated": true,
5979
6008
  "cross_language": false,
5980
6009
  "family": "dos-sync-io",
6010
+ "parser": "STRUCTURAL",
5981
6011
  "_unsigned": false,
5982
6012
  "_passThroughSigning": false,
5983
6013
  "signatureStatus": "verified",
@@ -6098,7 +6128,7 @@
6098
6128
  "attackPlaybook": null
6099
6129
  },
6100
6130
  {
6101
- "id": "struct:tools.js:843:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
6131
+ "id": "struct:tools.js:858:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
6102
6132
  "kind": "sast",
6103
6133
  "severity": "medium",
6104
6134
  "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
@@ -6106,7 +6136,7 @@
6106
6136
  "owaspLlm": null,
6107
6137
  "stride": "Denial of Service",
6108
6138
  "file": "tools.js",
6109
- "line": 843,
6139
+ "line": 858,
6110
6140
  "snippet": "if (!fs.existsSync(abs)) return { _meta: META, ok: false, reason: 'not-found' };",
6111
6141
  "fix": null,
6112
6142
  "reachable": false,
@@ -6189,7 +6219,7 @@
6189
6219
  "dominantDriver": "legal counsel",
6190
6220
  "comparable": "Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage",
6191
6221
  "confidence": "low",
6192
- "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:843` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
6222
+ "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:858` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
6193
6223
  },
6194
6224
  "stableId": "2c0b773208455585",
6195
6225
  "confidenceTier": "very-low",
@@ -6206,6 +6236,7 @@
6206
6236
  "unvalidated": true,
6207
6237
  "cross_language": false,
6208
6238
  "family": "dos-sync-io",
6239
+ "parser": "STRUCTURAL",
6209
6240
  "_unsigned": false,
6210
6241
  "_passThroughSigning": false,
6211
6242
  "signatureStatus": "verified",
@@ -6326,7 +6357,7 @@
6326
6357
  "attackPlaybook": null
6327
6358
  },
6328
6359
  {
6329
- "id": "struct:tools.js:845:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
6360
+ "id": "struct:tools.js:860:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
6330
6361
  "kind": "sast",
6331
6362
  "severity": "medium",
6332
6363
  "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
@@ -6334,7 +6365,7 @@
6334
6365
  "owaspLlm": null,
6335
6366
  "stride": "Denial of Service",
6336
6367
  "file": "tools.js",
6337
- "line": 845,
6368
+ "line": 860,
6338
6369
  "snippet": "try { stat = fs.statSync(abs); } catch (e) { return { _meta: META, ok: false, reason: `stat-failed: ${e.message}` }; }",
6339
6370
  "fix": null,
6340
6371
  "reachable": false,
@@ -6417,7 +6448,7 @@
6417
6448
  "dominantDriver": "legal counsel",
6418
6449
  "comparable": "Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage",
6419
6450
  "confidence": "low",
6420
- "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:845` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
6451
+ "narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `tools.js:860` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage."
6421
6452
  },
6422
6453
  "stableId": "fcad03311769791b",
6423
6454
  "confidenceTier": "very-low",
@@ -6434,6 +6465,7 @@
6434
6465
  "unvalidated": true,
6435
6466
  "cross_language": false,
6436
6467
  "family": "dos-sync-io",
6468
+ "parser": "STRUCTURAL",
6437
6469
  "_unsigned": false,
6438
6470
  "_passThroughSigning": false,
6439
6471
  "signatureStatus": "verified",
@@ -6660,6 +6692,7 @@
6660
6692
  "unvalidated": true,
6661
6693
  "cross_language": false,
6662
6694
  "family": "toctou-file-existence-permission-check-b",
6695
+ "parser": "TOCTOU",
6663
6696
  "_unsigned": false,
6664
6697
  "_passThroughSigning": false,
6665
6698
  "signatureStatus": "verified",
@@ -6881,6 +6914,7 @@
6881
6914
  "unvalidated": true,
6882
6915
  "cross_language": false,
6883
6916
  "family": "toctou-file-existence-permission-check-b",
6917
+ "parser": "TOCTOU",
6884
6918
  "_unsigned": false,
6885
6919
  "_passThroughSigning": false,
6886
6920
  "signatureStatus": "verified",
@@ -6996,7 +7030,7 @@
6996
7030
  "attackPlaybook": null
6997
7031
  },
6998
7032
  {
6999
- "id": "toctou-fs:tools.js:183",
7033
+ "id": "toctou-fs:tools.js:196",
7000
7034
  "kind": "sast",
7001
7035
  "severity": "medium",
7002
7036
  "vuln": "TOCTOU: file existence/permission check before open",
@@ -7004,7 +7038,7 @@
7004
7038
  "owaspLlm": null,
7005
7039
  "stride": "Tampering",
7006
7040
  "file": "tools.js",
7007
- "line": 183,
7041
+ "line": 196,
7008
7042
  "snippet": "if (fs.existsSync(abs)) {",
7009
7043
  "fix": null,
7010
7044
  "reachable": false,
@@ -7085,7 +7119,7 @@
7085
7119
  "dominantDriver": "legal counsel",
7086
7120
  "comparable": "Generic finding — likely cost driven by user count + jurisdiction stack",
7087
7121
  "confidence": "low",
7088
- "narrative": "TOCTOU: file existence/permission check before open on `tools.js:183` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Generic finding — likely cost driven by user count + jurisdiction stack."
7122
+ "narrative": "TOCTOU: file existence/permission check before open on `tools.js:196` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Generic finding — likely cost driven by user count + jurisdiction stack."
7089
7123
  },
7090
7124
  "stableId": "6001d4045ab6d2ac",
7091
7125
  "confidenceTier": "medium",
@@ -7102,6 +7136,7 @@
7102
7136
  "unvalidated": true,
7103
7137
  "cross_language": false,
7104
7138
  "family": "toctou-file-existence-permission-check-b",
7139
+ "parser": "TOCTOU",
7105
7140
  "_unsigned": false,
7106
7141
  "_passThroughSigning": false,
7107
7142
  "signatureStatus": "verified",
@@ -7217,7 +7252,7 @@
7217
7252
  "attackPlaybook": null
7218
7253
  },
7219
7254
  {
7220
- "id": "toctou-fs:tools.js:305",
7255
+ "id": "toctou-fs:tools.js:318",
7221
7256
  "kind": "sast",
7222
7257
  "severity": "medium",
7223
7258
  "vuln": "TOCTOU: file existence/permission check before open",
@@ -7225,7 +7260,7 @@
7225
7260
  "owaspLlm": null,
7226
7261
  "stride": "Tampering",
7227
7262
  "file": "tools.js",
7228
- "line": 305,
7263
+ "line": 318,
7229
7264
  "snippet": "try { stat = fs.statSync(a); } catch { continue; }",
7230
7265
  "fix": null,
7231
7266
  "reachable": false,
@@ -7306,7 +7341,7 @@
7306
7341
  "dominantDriver": "legal counsel",
7307
7342
  "comparable": "Generic finding — likely cost driven by user count + jurisdiction stack",
7308
7343
  "confidence": "low",
7309
- "narrative": "TOCTOU: file existence/permission check before open on `tools.js:305` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Generic finding — likely cost driven by user count + jurisdiction stack."
7344
+ "narrative": "TOCTOU: file existence/permission check before open on `tools.js:318` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Generic finding — likely cost driven by user count + jurisdiction stack."
7310
7345
  },
7311
7346
  "stableId": "d2d919466a97f830",
7312
7347
  "confidenceTier": "medium",
@@ -7323,6 +7358,7 @@
7323
7358
  "unvalidated": true,
7324
7359
  "cross_language": false,
7325
7360
  "family": "toctou-file-existence-permission-check-b",
7361
+ "parser": "TOCTOU",
7326
7362
  "_unsigned": false,
7327
7363
  "_passThroughSigning": false,
7328
7364
  "signatureStatus": "verified",
@@ -7438,7 +7474,7 @@
7438
7474
  "attackPlaybook": null
7439
7475
  },
7440
7476
  {
7441
- "id": "toctou-fs:tools.js:723",
7477
+ "id": "toctou-fs:tools.js:738",
7442
7478
  "kind": "sast",
7443
7479
  "severity": "medium",
7444
7480
  "vuln": "TOCTOU: file existence/permission check before open",
@@ -7446,7 +7482,7 @@
7446
7482
  "owaspLlm": null,
7447
7483
  "stride": "Tampering",
7448
7484
  "file": "tools.js",
7449
- "line": 723,
7485
+ "line": 738,
7450
7486
  "snippet": "try { stat = fs.statSync(abs); } catch { continue; }",
7451
7487
  "fix": null,
7452
7488
  "reachable": false,
@@ -7527,7 +7563,7 @@
7527
7563
  "dominantDriver": "legal counsel",
7528
7564
  "comparable": "Generic finding — likely cost driven by user count + jurisdiction stack",
7529
7565
  "confidence": "low",
7530
- "narrative": "TOCTOU: file existence/permission check before open on `tools.js:723` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Generic finding — likely cost driven by user count + jurisdiction stack."
7566
+ "narrative": "TOCTOU: file existence/permission check before open on `tools.js:738` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Generic finding — likely cost driven by user count + jurisdiction stack."
7531
7567
  },
7532
7568
  "stableId": "4908178e2835d3e9",
7533
7569
  "confidenceTier": "medium",
@@ -7544,6 +7580,7 @@
7544
7580
  "unvalidated": true,
7545
7581
  "cross_language": false,
7546
7582
  "family": "toctou-file-existence-permission-check-b",
7583
+ "parser": "TOCTOU",
7547
7584
  "_unsigned": false,
7548
7585
  "_passThroughSigning": false,
7549
7586
  "signatureStatus": "verified",
@@ -7659,7 +7696,7 @@
7659
7696
  "attackPlaybook": null
7660
7697
  },
7661
7698
  {
7662
- "id": "toctou-fs:tools.js:805",
7699
+ "id": "toctou-fs:tools.js:820",
7663
7700
  "kind": "sast",
7664
7701
  "severity": "medium",
7665
7702
  "vuln": "TOCTOU: file existence/permission check before open",
@@ -7667,7 +7704,7 @@
7667
7704
  "owaspLlm": null,
7668
7705
  "stride": "Tampering",
7669
7706
  "file": "tools.js",
7670
- "line": 805,
7707
+ "line": 820,
7671
7708
  "snippet": "try { if (fs.existsSync(abs)) existing = fs.statSync(abs).size; } catch {}",
7672
7709
  "fix": null,
7673
7710
  "reachable": false,
@@ -7748,7 +7785,7 @@
7748
7785
  "dominantDriver": "legal counsel",
7749
7786
  "comparable": "Generic finding — likely cost driven by user count + jurisdiction stack",
7750
7787
  "confidence": "low",
7751
- "narrative": "TOCTOU: file existence/permission check before open on `tools.js:805` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Generic finding — likely cost driven by user count + jurisdiction stack."
7788
+ "narrative": "TOCTOU: file existence/permission check before open on `tools.js:820` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Generic finding — likely cost driven by user count + jurisdiction stack."
7752
7789
  },
7753
7790
  "stableId": "f1876a31fc5c2f66",
7754
7791
  "confidenceTier": "medium",
@@ -7765,6 +7802,7 @@
7765
7802
  "unvalidated": true,
7766
7803
  "cross_language": false,
7767
7804
  "family": "toctou-file-existence-permission-check-b",
7805
+ "parser": "TOCTOU",
7768
7806
  "_unsigned": false,
7769
7807
  "_passThroughSigning": false,
7770
7808
  "signatureStatus": "verified",
@@ -7958,7 +7996,9 @@
7958
7996
  "comparable": "Generic finding — likely cost driven by user count + jurisdiction stack",
7959
7997
  "confidence": "low",
7960
7998
  "narrative": "TOCTOU: existsSync followed by file op on `audit.js:52` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Generic finding — likely cost driven by user count + jurisdiction stack."
7961
- }
7999
+ },
8000
+ "parser": "LOGIC",
8001
+ "family": null
7962
8002
  },
7963
8003
  {
7964
8004
  "id": "logic:audit.js:122:TOCTOU:_existsSync_followed_by_file_op",
@@ -8039,17 +8079,19 @@
8039
8079
  "comparable": "Generic finding — likely cost driven by user count + jurisdiction stack",
8040
8080
  "confidence": "low",
8041
8081
  "narrative": "TOCTOU: existsSync followed by file op on `audit.js:122` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Generic finding — likely cost driven by user count + jurisdiction stack."
8042
- }
8082
+ },
8083
+ "parser": "LOGIC",
8084
+ "family": null
8043
8085
  },
8044
8086
  {
8045
- "id": "logic:tools.js:213:TOCTOU:_existsSync_followed_by_file_op",
8087
+ "id": "logic:tools.js:226:TOCTOU:_existsSync_followed_by_file_op",
8046
8088
  "kind": "logic",
8047
8089
  "severity": "medium",
8048
8090
  "vuln": "TOCTOU: existsSync followed by file op",
8049
8091
  "cwe": "CWE-367",
8050
8092
  "stride": "Tampering",
8051
8093
  "file": "tools.js",
8052
- "line": 213,
8094
+ "line": 226,
8053
8095
  "snippet": "if (!fs.existsSync(scanFile)) return { scan: null, status: 'missing' };",
8054
8096
  "fix": {
8055
8097
  "description": "Replace the check-then-act sequence with a single atomic operation (e.g., `fs.open` with appropriate flags). Between `existsSync` and the file op the file can be replaced by a symlink or removed.",
@@ -8119,8 +8161,10 @@
8119
8161
  "dominantDriver": "legal counsel",
8120
8162
  "comparable": "Generic finding — likely cost driven by user count + jurisdiction stack",
8121
8163
  "confidence": "low",
8122
- "narrative": "TOCTOU: existsSync followed by file op on `tools.js:213` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Generic finding — likely cost driven by user count + jurisdiction stack."
8123
- }
8164
+ "narrative": "TOCTOU: existsSync followed by file op on `tools.js:226` could expose configuration / internal data. Context: general SaaS / no specific regulatory exposure. Estimated cost: best $23k · likely $136k · worst $775k. Dominant driver: legal counsel. Comparable: Generic finding — likely cost driven by user count + jurisdiction stack."
8165
+ },
8166
+ "parser": "LOGIC",
8167
+ "family": null
8124
8168
  }
8125
8169
  ],
8126
8170
  "bundles": [],
@@ -8179,25 +8223,25 @@
8179
8223
  {
8180
8224
  "vuln": "TOCTOU: file existence/permission check before open",
8181
8225
  "file": "tools.js",
8182
- "line": 183,
8226
+ "line": 196,
8183
8227
  "severity": "medium"
8184
8228
  },
8185
8229
  {
8186
8230
  "vuln": "TOCTOU: file existence/permission check before open",
8187
8231
  "file": "tools.js",
8188
- "line": 305,
8232
+ "line": 318,
8189
8233
  "severity": "medium"
8190
8234
  },
8191
8235
  {
8192
8236
  "vuln": "TOCTOU: file existence/permission check before open",
8193
8237
  "file": "tools.js",
8194
- "line": 723,
8238
+ "line": 738,
8195
8239
  "severity": "medium"
8196
8240
  },
8197
8241
  {
8198
8242
  "vuln": "TOCTOU: file existence/permission check before open",
8199
8243
  "file": "tools.js",
8200
- "line": 805,
8244
+ "line": 820,
8201
8245
  "severity": "medium"
8202
8246
  }
8203
8247
  ],
@@ -8354,5 +8398,6 @@
8354
8398
  "alarms": [],
8355
8399
  "note": "no-feedback-data"
8356
8400
  }
8357
- }
8401
+ },
8402
+ "annotatorErrors": []
8358
8403
  }