@clear-capabilities/agentic-security-scanner 0.78.0 → 0.80.0
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/bin/.agentic-security/findings.json +16 -16
- package/bin/.agentic-security/last-scan.json +16 -16
- package/bin/.agentic-security/last-scan.json.sig +1 -1
- package/bin/.agentic-security/scan-history.json +51 -0
- package/bin/.agentic-security/streak.json +5 -5
- package/bin/agentic-security.js +22 -7
- package/dist/178.index.js +1 -1
- package/dist/333.index.js +283 -0
- package/dist/384.index.js +1 -1
- package/dist/476.index.js +5 -5
- package/dist/637.index.js +1 -1
- package/dist/700.index.js +138 -0
- package/dist/718.index.js +53 -0
- package/dist/838.index.js +1 -1
- package/dist/985.index.js +95 -1
- package/dist/agentic-security.mjs +83 -83
- package/dist/agentic-security.mjs.sha256 +1 -1
- package/package.json +6 -4
- package/src/.agentic-security/findings.json +29799 -7803
- package/src/.agentic-security/last-scan.json +29799 -7803
- package/src/.agentic-security/last-scan.json.sig +1 -1
- package/src/.agentic-security/scan-history.json +5119 -2611
- package/src/.agentic-security/streak.json +6 -6
- package/src/dataflow/.agentic-security/findings.json +2879 -308
- package/src/dataflow/.agentic-security/last-scan.json +2879 -308
- package/src/dataflow/.agentic-security/last-scan.json.sig +1 -1
- package/src/dataflow/.agentic-security/scan-history.json +68 -520
- package/src/dataflow/.agentic-security/streak.json +6 -7
- package/src/dataflow/cross-service-taint.js +201 -0
- package/src/dataflow/engine.js +52 -8
- package/src/dataflow/formal-verify.js +204 -0
- package/src/dataflow/ifds-precise.js +222 -0
- package/src/dataflow/k2-summary-cache.js +153 -0
- package/src/dataflow/lib-taint-summaries.js +198 -0
- package/src/dataflow/privacy-taint.js +205 -0
- package/src/dataflow/smt-feasibility.js +189 -0
- package/src/engine.js +890 -132
- package/src/integrations/index.js +2 -1
- package/src/ir/.agentic-security/findings.json +240 -6
- package/src/ir/.agentic-security/last-scan.json +240 -6
- package/src/ir/.agentic-security/last-scan.json.sig +1 -1
- package/src/ir/.agentic-security/scan-history.json +16 -594
- package/src/ir/.agentic-security/streak.json +8 -9
- package/src/ir/callgraph.js +27 -7
- package/src/ir/cpp-preprocessor.js +142 -0
- package/src/ir/csharp-ir.js +604 -0
- package/src/ir/universal-ir.js +403 -0
- package/src/llm-validator/index.js +7 -5
- package/src/mcp/.agentic-security/findings.json +8632 -0
- package/src/mcp/.agentic-security/last-scan.json +8632 -0
- package/src/mcp/.agentic-security/last-scan.json.sig +1 -0
- package/src/mcp/.agentic-security/scan-history.json +143 -0
- package/src/mcp/.agentic-security/streak.json +20 -0
- package/src/mcp/audit.js +5 -0
- package/src/mcp/tools.js +90 -1
- package/src/posture/.agentic-security/findings.json +16809 -4367
- package/src/posture/.agentic-security/last-scan.json +16809 -4367
- package/src/posture/.agentic-security/last-scan.json.sig +1 -1
- package/src/posture/.agentic-security/scan-history.json +6689 -177
- package/src/posture/.agentic-security/streak.json +8 -7
- package/src/posture/api-contract.js +193 -0
- package/src/posture/attack-taxonomy.js +227 -0
- package/src/posture/calibration-drift.js +2 -1
- package/src/posture/calibration.js +3 -2
- package/src/posture/compliance-policy.js +218 -0
- package/src/posture/composite-risk.js +122 -0
- package/src/posture/csharp-analysis.js +330 -0
- package/src/posture/exploit-bundle.js +210 -0
- package/src/posture/federated-learning.js +172 -0
- package/src/posture/fix-history.js +8 -2
- package/src/posture/license-attributions.js +94 -0
- package/src/posture/license-graph.js +238 -0
- package/src/posture/pqc-migration-plan.js +158 -0
- package/src/posture/profile.js +4 -5
- package/src/posture/reachability-filter.js +33 -2
- package/src/posture/realtime-cve-monitor.js +214 -0
- package/src/posture/rule-overrides.js +2 -3
- package/src/posture/rule-pack-signing.js +2 -3
- package/src/posture/rule-synthesis.js +5 -6
- package/src/posture/runtime-correlation.js +174 -0
- package/src/posture/sbom-diff.js +171 -0
- package/src/posture/sca-policy.js +235 -0
- package/src/posture/sca-upgrade.js +259 -0
- package/src/posture/security-trend.js +4 -7
- package/src/posture/state-dir.js +124 -0
- package/src/posture/streak.js +3 -0
- package/src/posture/suppressions.js +5 -8
- package/src/posture/threat-model-auto.js +268 -0
- package/src/posture/triage-learning.js +170 -0
- package/src/posture/triage.js +29 -6
- package/src/posture/validator-metrics.js +3 -6
- package/src/sast/.agentic-security/findings.json +996 -32
- package/src/sast/.agentic-security/last-scan.json +996 -32
- package/src/sast/.agentic-security/last-scan.json.sig +1 -1
- package/src/sast/.agentic-security/scan-history.json +565 -32
- package/src/sast/.agentic-security/streak.json +10 -8
- package/src/sast/_secret-entropy.js +145 -0
- package/src/sast/cloud-iam.js +312 -0
- package/src/sast/cpp.js +138 -4
- package/src/sast/crypto-protocol.js +388 -0
- package/src/sast/csharp-tokenizer.js +392 -0
- package/src/sast/csharp.js +924 -138
- package/src/sast/dapp-frontend.js +200 -0
- package/src/sast/db-taint.js +24 -0
- package/src/sast/k8s-admission.js +271 -0
- package/src/sast/llm-app.js +272 -0
- package/src/sast/ml-supply-chain.js +259 -0
- package/src/sast/mobile.js +224 -0
- package/src/sast/post-quantum-crypto.js +348 -0
- package/src/sast/rust.js +26 -0
- package/src/sast/web3-advanced.js +375 -0
- package/src/sca/.agentic-security/findings.json +6044 -171
- package/src/sca/.agentic-security/last-scan.json +6044 -171
- package/src/sca/.agentic-security/last-scan.json.sig +1 -1
- package/src/sca/.agentic-security/scan-history.json +83 -6
- package/src/sca/.agentic-security/streak.json +9 -9
- package/src/sca/CLAUDE.md +161 -0
- package/src/sca/binary-metadata.js +146 -0
- package/src/sca/py-package-functions.js +118 -0
- package/src/sca/sigstore-verify.js +215 -0
- package/src/sca/vendor-detect.js +53 -0
- package/src/report/.agentic-security/findings.json +0 -80
- package/src/report/.agentic-security/last-scan.json +0 -80
- package/src/report/.agentic-security/last-scan.json.sig +0 -1
- package/src/report/.agentic-security/scan-history.json +0 -35
- package/src/report/.agentic-security/streak.json +0 -22
|
@@ -13,9 +13,10 @@
|
|
|
13
13
|
import * as fs from 'node:fs';
|
|
14
14
|
import * as path from 'node:path';
|
|
15
15
|
import * as yaml from 'js-yaml';
|
|
16
|
+
import { statePath } from '../posture/state-dir.js';
|
|
16
17
|
|
|
17
18
|
function _configPath(scanRoot) {
|
|
18
|
-
return
|
|
19
|
+
return statePath(scanRoot, 'integrations.yml');
|
|
19
20
|
}
|
|
20
21
|
|
|
21
22
|
export function loadIntegrationConfig(scanRoot) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"scanId": "
|
|
3
|
-
"startedAt": "2026-05-
|
|
4
|
-
"durationMs":
|
|
2
|
+
"scanId": "dab30d60-68ee-499a-a5a0-9a73b9fc15de",
|
|
3
|
+
"startedAt": "2026-05-29T06:24:38.089Z",
|
|
4
|
+
"durationMs": 435,
|
|
5
5
|
"scanned": {
|
|
6
|
-
"files":
|
|
6
|
+
"files": 18,
|
|
7
7
|
"lines": 0
|
|
8
8
|
},
|
|
9
9
|
"findings": [
|
|
@@ -1217,6 +1217,235 @@
|
|
|
1217
1217
|
"ethics": "# AUTHORIZED USE ONLY — run only against systems you own or have explicit permission to test."
|
|
1218
1218
|
}
|
|
1219
1219
|
},
|
|
1220
|
+
{
|
|
1221
|
+
"id": "struct:cpp-preprocessor.js:94:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
|
|
1222
|
+
"kind": "sast",
|
|
1223
|
+
"severity": "medium",
|
|
1224
|
+
"vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
|
|
1225
|
+
"cwe": "CWE-400",
|
|
1226
|
+
"owaspLlm": null,
|
|
1227
|
+
"stride": "Denial of Service",
|
|
1228
|
+
"file": "cpp-preprocessor.js",
|
|
1229
|
+
"line": 94,
|
|
1230
|
+
"snippet": "try { content = fs.readFileSync(abs, 'utf8'); }",
|
|
1231
|
+
"fix": null,
|
|
1232
|
+
"reachable": false,
|
|
1233
|
+
"triage": 22,
|
|
1234
|
+
"dataClasses": [],
|
|
1235
|
+
"chain": null,
|
|
1236
|
+
"confidence": 0.212,
|
|
1237
|
+
"toxicity": 28,
|
|
1238
|
+
"toxicityFactors": [
|
|
1239
|
+
"http-facing"
|
|
1240
|
+
],
|
|
1241
|
+
"toxicityLabel": "Medium",
|
|
1242
|
+
"sources": null,
|
|
1243
|
+
"epssScore": null,
|
|
1244
|
+
"epssPercentile": null,
|
|
1245
|
+
"epssCve": null,
|
|
1246
|
+
"exploitedNow": false,
|
|
1247
|
+
"tags": null,
|
|
1248
|
+
"blastRadius": {
|
|
1249
|
+
"scope": "all-users",
|
|
1250
|
+
"dataAtRisk": [
|
|
1251
|
+
"config"
|
|
1252
|
+
],
|
|
1253
|
+
"userCount": 50,
|
|
1254
|
+
"industry": "generic",
|
|
1255
|
+
"jurisdictions": [],
|
|
1256
|
+
"controlsApplied": [],
|
|
1257
|
+
"dollarBest": 23250,
|
|
1258
|
+
"dollarLikely": 136250,
|
|
1259
|
+
"dollarWorst": 775000,
|
|
1260
|
+
"dollarLow": 23250,
|
|
1261
|
+
"dollarHigh": 775000,
|
|
1262
|
+
"components": {
|
|
1263
|
+
"incidentResponse": {
|
|
1264
|
+
"low": 8000,
|
|
1265
|
+
"likely": 50000,
|
|
1266
|
+
"high": 250000
|
|
1267
|
+
},
|
|
1268
|
+
"legal": {
|
|
1269
|
+
"low": 10000,
|
|
1270
|
+
"likely": 75000,
|
|
1271
|
+
"high": 500000
|
|
1272
|
+
},
|
|
1273
|
+
"crisisPR": {
|
|
1274
|
+
"low": 0,
|
|
1275
|
+
"likely": 0,
|
|
1276
|
+
"high": 0
|
|
1277
|
+
},
|
|
1278
|
+
"notification": {
|
|
1279
|
+
"low": 5000,
|
|
1280
|
+
"likely": 10000,
|
|
1281
|
+
"high": 15000
|
|
1282
|
+
},
|
|
1283
|
+
"creditMonitoring": {
|
|
1284
|
+
"low": 0,
|
|
1285
|
+
"likely": 0,
|
|
1286
|
+
"high": 0
|
|
1287
|
+
},
|
|
1288
|
+
"regulatoryFines": {
|
|
1289
|
+
"low": 0,
|
|
1290
|
+
"likely": 0,
|
|
1291
|
+
"high": 0
|
|
1292
|
+
},
|
|
1293
|
+
"directDamage": {
|
|
1294
|
+
"low": 250,
|
|
1295
|
+
"likely": 1250,
|
|
1296
|
+
"high": 10000
|
|
1297
|
+
},
|
|
1298
|
+
"classAction": {
|
|
1299
|
+
"low": 0,
|
|
1300
|
+
"likely": 0,
|
|
1301
|
+
"high": 0
|
|
1302
|
+
},
|
|
1303
|
+
"lostBusiness": {
|
|
1304
|
+
"low": 0,
|
|
1305
|
+
"likely": 0,
|
|
1306
|
+
"high": 0
|
|
1307
|
+
}
|
|
1308
|
+
},
|
|
1309
|
+
"dominantDriver": "legal counsel",
|
|
1310
|
+
"comparable": "Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage",
|
|
1311
|
+
"confidence": "low",
|
|
1312
|
+
"narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `cpp-preprocessor.js:94` 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."
|
|
1313
|
+
},
|
|
1314
|
+
"stableId": "0b0187a7e1476c07",
|
|
1315
|
+
"confidenceTier": "very-low",
|
|
1316
|
+
"exploitability": 0.2,
|
|
1317
|
+
"exploitabilityTier": "low",
|
|
1318
|
+
"exploitabilityFactors": [
|
|
1319
|
+
"sev:medium",
|
|
1320
|
+
"unreachable"
|
|
1321
|
+
],
|
|
1322
|
+
"clusterSize": null,
|
|
1323
|
+
"unreachable": false,
|
|
1324
|
+
"validator_verdict": "unvalidated",
|
|
1325
|
+
"llm_confidence": null,
|
|
1326
|
+
"unvalidated": true,
|
|
1327
|
+
"cross_language": false,
|
|
1328
|
+
"family": "dos-sync-io",
|
|
1329
|
+
"parser": "STRUCTURAL",
|
|
1330
|
+
"_unsigned": false,
|
|
1331
|
+
"_passThroughSigning": false,
|
|
1332
|
+
"signatureStatus": "verified",
|
|
1333
|
+
"regression_test": null,
|
|
1334
|
+
"poc": null,
|
|
1335
|
+
"calibrated_confidence": null,
|
|
1336
|
+
"calibrated_confidence_ci": null,
|
|
1337
|
+
"calibrated_n": 0,
|
|
1338
|
+
"calibration_reason": "no-history",
|
|
1339
|
+
"verifier_verdict": "cannot-verify",
|
|
1340
|
+
"verifier_reason": "no-poc-no-sanitizer-rule",
|
|
1341
|
+
"verifier_runner": null,
|
|
1342
|
+
"narration": null,
|
|
1343
|
+
"mitigationVerdict": "unreachable-in-prod",
|
|
1344
|
+
"mitigationsApplied": [],
|
|
1345
|
+
"mitigatedByWaf": false,
|
|
1346
|
+
"wafRuleId": null,
|
|
1347
|
+
"mitigatedByAuth": false,
|
|
1348
|
+
"authMechanism": null,
|
|
1349
|
+
"mitigatedByNetwork": false,
|
|
1350
|
+
"networkExposure": null,
|
|
1351
|
+
"featureFlag": null,
|
|
1352
|
+
"featureFlagState": null,
|
|
1353
|
+
"featureFlagRollout": null,
|
|
1354
|
+
"exposedInProd": false,
|
|
1355
|
+
"unreachableInProd": true,
|
|
1356
|
+
"coldPath": false,
|
|
1357
|
+
"hotPath": false,
|
|
1358
|
+
"prodRequestCount": null,
|
|
1359
|
+
"crownJewelScore": 0,
|
|
1360
|
+
"crownJewelTier": "unknown",
|
|
1361
|
+
"crownJewelFactors": [],
|
|
1362
|
+
"cloneClusterId": "c5704ff81dc82f80",
|
|
1363
|
+
"cloneClusterSize": 1,
|
|
1364
|
+
"provenance": "mixed",
|
|
1365
|
+
"provenanceScore": 0.3,
|
|
1366
|
+
"typeNarrowed": null,
|
|
1367
|
+
"strideCategory": "denialOfService",
|
|
1368
|
+
"personaScores": {
|
|
1369
|
+
"script-kiddie": {
|
|
1370
|
+
"score": 0.4,
|
|
1371
|
+
"tier": "medium",
|
|
1372
|
+
"factors": [
|
|
1373
|
+
"sev:medium"
|
|
1374
|
+
]
|
|
1375
|
+
},
|
|
1376
|
+
"opportunistic-criminal": {
|
|
1377
|
+
"score": 0.4,
|
|
1378
|
+
"tier": "medium",
|
|
1379
|
+
"factors": [
|
|
1380
|
+
"sev:medium"
|
|
1381
|
+
]
|
|
1382
|
+
},
|
|
1383
|
+
"apt-nation-state": {
|
|
1384
|
+
"score": 0.4,
|
|
1385
|
+
"tier": "medium",
|
|
1386
|
+
"factors": [
|
|
1387
|
+
"sev:medium"
|
|
1388
|
+
]
|
|
1389
|
+
},
|
|
1390
|
+
"supply-chain-attacker": {
|
|
1391
|
+
"score": 0.4,
|
|
1392
|
+
"tier": "medium",
|
|
1393
|
+
"factors": [
|
|
1394
|
+
"sev:medium"
|
|
1395
|
+
]
|
|
1396
|
+
},
|
|
1397
|
+
"malicious-insider": {
|
|
1398
|
+
"score": 0.4,
|
|
1399
|
+
"tier": "medium",
|
|
1400
|
+
"factors": [
|
|
1401
|
+
"sev:medium"
|
|
1402
|
+
]
|
|
1403
|
+
}
|
|
1404
|
+
},
|
|
1405
|
+
"personaTopTwo": [
|
|
1406
|
+
"script-kiddie",
|
|
1407
|
+
"opportunistic-criminal"
|
|
1408
|
+
],
|
|
1409
|
+
"personaMaxName": "script-kiddie",
|
|
1410
|
+
"personaMaxScore": 0.4,
|
|
1411
|
+
"reverseExposure": null,
|
|
1412
|
+
"specMined": null,
|
|
1413
|
+
"whyFired": {
|
|
1414
|
+
"detector": "sast/dos-sync-io",
|
|
1415
|
+
"ruleId": "CWE-400",
|
|
1416
|
+
"parser": "STRUCTURAL",
|
|
1417
|
+
"evidence": {
|
|
1418
|
+
"sinkSnippet": "try { content = fs.readFileSync(abs, 'utf8'); }",
|
|
1419
|
+
"sourceSnippet": "try { content = fs.readFileSync(abs, 'utf8'); }",
|
|
1420
|
+
"pathSteps": [],
|
|
1421
|
+
"sanitizers": [],
|
|
1422
|
+
"guards": []
|
|
1423
|
+
},
|
|
1424
|
+
"considered": {
|
|
1425
|
+
"suppressionsApplied": [],
|
|
1426
|
+
"suppressionsSkipped": [],
|
|
1427
|
+
"reachabilityFilter": "unaffected",
|
|
1428
|
+
"clusterCollapsed": false,
|
|
1429
|
+
"typeNarrowed": false,
|
|
1430
|
+
"crownJewelTier": "unknown",
|
|
1431
|
+
"mitigationVerdict": "unreachable-in-prod"
|
|
1432
|
+
},
|
|
1433
|
+
"scanner": {
|
|
1434
|
+
"rulesetVersion": null,
|
|
1435
|
+
"packHash": null,
|
|
1436
|
+
"modelId": null
|
|
1437
|
+
}
|
|
1438
|
+
},
|
|
1439
|
+
"adversaryTranscript": null,
|
|
1440
|
+
"predictedBountyUsd": {
|
|
1441
|
+
"low": 10,
|
|
1442
|
+
"likely": 40,
|
|
1443
|
+
"high": 120,
|
|
1444
|
+
"program": "web2"
|
|
1445
|
+
},
|
|
1446
|
+
"bountyConfidence": "high",
|
|
1447
|
+
"attackPlaybook": null
|
|
1448
|
+
},
|
|
1220
1449
|
{
|
|
1221
1450
|
"id": "struct:type-stubs.js:48:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
|
|
1222
1451
|
"kind": "sast",
|
|
@@ -3631,7 +3860,7 @@
|
|
|
3631
3860
|
"_v3": {
|
|
3632
3861
|
"counterfactual": {
|
|
3633
3862
|
"spofControls": [],
|
|
3634
|
-
"controlsDetected":
|
|
3863
|
+
"controlsDetected": 379
|
|
3635
3864
|
},
|
|
3636
3865
|
"threatModel": {
|
|
3637
3866
|
"summary": {
|
|
@@ -3642,7 +3871,7 @@
|
|
|
3642
3871
|
"tampering": 1,
|
|
3643
3872
|
"repudiation": 0,
|
|
3644
3873
|
"informationDisclosure": 0,
|
|
3645
|
-
"denialOfService":
|
|
3874
|
+
"denialOfService": 10,
|
|
3646
3875
|
"elevationOfPrivilege": 0
|
|
3647
3876
|
}
|
|
3648
3877
|
},
|
|
@@ -3674,6 +3903,11 @@
|
|
|
3674
3903
|
"repudiation": [],
|
|
3675
3904
|
"informationDisclosure": [],
|
|
3676
3905
|
"denialOfService": [
|
|
3906
|
+
{
|
|
3907
|
+
"vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
|
|
3908
|
+
"file": "cpp-preprocessor.js",
|
|
3909
|
+
"severity": "medium"
|
|
3910
|
+
},
|
|
3677
3911
|
{
|
|
3678
3912
|
"vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
|
|
3679
3913
|
"file": "type-stubs.js",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"scanId": "
|
|
3
|
-
"startedAt": "2026-05-
|
|
4
|
-
"durationMs":
|
|
2
|
+
"scanId": "dab30d60-68ee-499a-a5a0-9a73b9fc15de",
|
|
3
|
+
"startedAt": "2026-05-29T06:24:38.089Z",
|
|
4
|
+
"durationMs": 435,
|
|
5
5
|
"scanned": {
|
|
6
|
-
"files":
|
|
6
|
+
"files": 18,
|
|
7
7
|
"lines": 0
|
|
8
8
|
},
|
|
9
9
|
"findings": [
|
|
@@ -1217,6 +1217,235 @@
|
|
|
1217
1217
|
"ethics": "# AUTHORIZED USE ONLY — run only against systems you own or have explicit permission to test."
|
|
1218
1218
|
}
|
|
1219
1219
|
},
|
|
1220
|
+
{
|
|
1221
|
+
"id": "struct:cpp-preprocessor.js:94:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
|
|
1222
|
+
"kind": "sast",
|
|
1223
|
+
"severity": "medium",
|
|
1224
|
+
"vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
|
|
1225
|
+
"cwe": "CWE-400",
|
|
1226
|
+
"owaspLlm": null,
|
|
1227
|
+
"stride": "Denial of Service",
|
|
1228
|
+
"file": "cpp-preprocessor.js",
|
|
1229
|
+
"line": 94,
|
|
1230
|
+
"snippet": "try { content = fs.readFileSync(abs, 'utf8'); }",
|
|
1231
|
+
"fix": null,
|
|
1232
|
+
"reachable": false,
|
|
1233
|
+
"triage": 22,
|
|
1234
|
+
"dataClasses": [],
|
|
1235
|
+
"chain": null,
|
|
1236
|
+
"confidence": 0.212,
|
|
1237
|
+
"toxicity": 28,
|
|
1238
|
+
"toxicityFactors": [
|
|
1239
|
+
"http-facing"
|
|
1240
|
+
],
|
|
1241
|
+
"toxicityLabel": "Medium",
|
|
1242
|
+
"sources": null,
|
|
1243
|
+
"epssScore": null,
|
|
1244
|
+
"epssPercentile": null,
|
|
1245
|
+
"epssCve": null,
|
|
1246
|
+
"exploitedNow": false,
|
|
1247
|
+
"tags": null,
|
|
1248
|
+
"blastRadius": {
|
|
1249
|
+
"scope": "all-users",
|
|
1250
|
+
"dataAtRisk": [
|
|
1251
|
+
"config"
|
|
1252
|
+
],
|
|
1253
|
+
"userCount": 50,
|
|
1254
|
+
"industry": "generic",
|
|
1255
|
+
"jurisdictions": [],
|
|
1256
|
+
"controlsApplied": [],
|
|
1257
|
+
"dollarBest": 23250,
|
|
1258
|
+
"dollarLikely": 136250,
|
|
1259
|
+
"dollarWorst": 775000,
|
|
1260
|
+
"dollarLow": 23250,
|
|
1261
|
+
"dollarHigh": 775000,
|
|
1262
|
+
"components": {
|
|
1263
|
+
"incidentResponse": {
|
|
1264
|
+
"low": 8000,
|
|
1265
|
+
"likely": 50000,
|
|
1266
|
+
"high": 250000
|
|
1267
|
+
},
|
|
1268
|
+
"legal": {
|
|
1269
|
+
"low": 10000,
|
|
1270
|
+
"likely": 75000,
|
|
1271
|
+
"high": 500000
|
|
1272
|
+
},
|
|
1273
|
+
"crisisPR": {
|
|
1274
|
+
"low": 0,
|
|
1275
|
+
"likely": 0,
|
|
1276
|
+
"high": 0
|
|
1277
|
+
},
|
|
1278
|
+
"notification": {
|
|
1279
|
+
"low": 5000,
|
|
1280
|
+
"likely": 10000,
|
|
1281
|
+
"high": 15000
|
|
1282
|
+
},
|
|
1283
|
+
"creditMonitoring": {
|
|
1284
|
+
"low": 0,
|
|
1285
|
+
"likely": 0,
|
|
1286
|
+
"high": 0
|
|
1287
|
+
},
|
|
1288
|
+
"regulatoryFines": {
|
|
1289
|
+
"low": 0,
|
|
1290
|
+
"likely": 0,
|
|
1291
|
+
"high": 0
|
|
1292
|
+
},
|
|
1293
|
+
"directDamage": {
|
|
1294
|
+
"low": 250,
|
|
1295
|
+
"likely": 1250,
|
|
1296
|
+
"high": 10000
|
|
1297
|
+
},
|
|
1298
|
+
"classAction": {
|
|
1299
|
+
"low": 0,
|
|
1300
|
+
"likely": 0,
|
|
1301
|
+
"high": 0
|
|
1302
|
+
},
|
|
1303
|
+
"lostBusiness": {
|
|
1304
|
+
"low": 0,
|
|
1305
|
+
"likely": 0,
|
|
1306
|
+
"high": 0
|
|
1307
|
+
}
|
|
1308
|
+
},
|
|
1309
|
+
"dominantDriver": "legal counsel",
|
|
1310
|
+
"comparable": "Air Canada 2024 LLM chatbot DoS → court-ordered refunds + reputational damage",
|
|
1311
|
+
"confidence": "low",
|
|
1312
|
+
"narrative": "Synchronous Blocking I/O (DoS Risk in Server Context) on `cpp-preprocessor.js:94` 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."
|
|
1313
|
+
},
|
|
1314
|
+
"stableId": "0b0187a7e1476c07",
|
|
1315
|
+
"confidenceTier": "very-low",
|
|
1316
|
+
"exploitability": 0.2,
|
|
1317
|
+
"exploitabilityTier": "low",
|
|
1318
|
+
"exploitabilityFactors": [
|
|
1319
|
+
"sev:medium",
|
|
1320
|
+
"unreachable"
|
|
1321
|
+
],
|
|
1322
|
+
"clusterSize": null,
|
|
1323
|
+
"unreachable": false,
|
|
1324
|
+
"validator_verdict": "unvalidated",
|
|
1325
|
+
"llm_confidence": null,
|
|
1326
|
+
"unvalidated": true,
|
|
1327
|
+
"cross_language": false,
|
|
1328
|
+
"family": "dos-sync-io",
|
|
1329
|
+
"parser": "STRUCTURAL",
|
|
1330
|
+
"_unsigned": false,
|
|
1331
|
+
"_passThroughSigning": false,
|
|
1332
|
+
"signatureStatus": "verified",
|
|
1333
|
+
"regression_test": null,
|
|
1334
|
+
"poc": null,
|
|
1335
|
+
"calibrated_confidence": null,
|
|
1336
|
+
"calibrated_confidence_ci": null,
|
|
1337
|
+
"calibrated_n": 0,
|
|
1338
|
+
"calibration_reason": "no-history",
|
|
1339
|
+
"verifier_verdict": "cannot-verify",
|
|
1340
|
+
"verifier_reason": "no-poc-no-sanitizer-rule",
|
|
1341
|
+
"verifier_runner": null,
|
|
1342
|
+
"narration": null,
|
|
1343
|
+
"mitigationVerdict": "unreachable-in-prod",
|
|
1344
|
+
"mitigationsApplied": [],
|
|
1345
|
+
"mitigatedByWaf": false,
|
|
1346
|
+
"wafRuleId": null,
|
|
1347
|
+
"mitigatedByAuth": false,
|
|
1348
|
+
"authMechanism": null,
|
|
1349
|
+
"mitigatedByNetwork": false,
|
|
1350
|
+
"networkExposure": null,
|
|
1351
|
+
"featureFlag": null,
|
|
1352
|
+
"featureFlagState": null,
|
|
1353
|
+
"featureFlagRollout": null,
|
|
1354
|
+
"exposedInProd": false,
|
|
1355
|
+
"unreachableInProd": true,
|
|
1356
|
+
"coldPath": false,
|
|
1357
|
+
"hotPath": false,
|
|
1358
|
+
"prodRequestCount": null,
|
|
1359
|
+
"crownJewelScore": 0,
|
|
1360
|
+
"crownJewelTier": "unknown",
|
|
1361
|
+
"crownJewelFactors": [],
|
|
1362
|
+
"cloneClusterId": "c5704ff81dc82f80",
|
|
1363
|
+
"cloneClusterSize": 1,
|
|
1364
|
+
"provenance": "mixed",
|
|
1365
|
+
"provenanceScore": 0.3,
|
|
1366
|
+
"typeNarrowed": null,
|
|
1367
|
+
"strideCategory": "denialOfService",
|
|
1368
|
+
"personaScores": {
|
|
1369
|
+
"script-kiddie": {
|
|
1370
|
+
"score": 0.4,
|
|
1371
|
+
"tier": "medium",
|
|
1372
|
+
"factors": [
|
|
1373
|
+
"sev:medium"
|
|
1374
|
+
]
|
|
1375
|
+
},
|
|
1376
|
+
"opportunistic-criminal": {
|
|
1377
|
+
"score": 0.4,
|
|
1378
|
+
"tier": "medium",
|
|
1379
|
+
"factors": [
|
|
1380
|
+
"sev:medium"
|
|
1381
|
+
]
|
|
1382
|
+
},
|
|
1383
|
+
"apt-nation-state": {
|
|
1384
|
+
"score": 0.4,
|
|
1385
|
+
"tier": "medium",
|
|
1386
|
+
"factors": [
|
|
1387
|
+
"sev:medium"
|
|
1388
|
+
]
|
|
1389
|
+
},
|
|
1390
|
+
"supply-chain-attacker": {
|
|
1391
|
+
"score": 0.4,
|
|
1392
|
+
"tier": "medium",
|
|
1393
|
+
"factors": [
|
|
1394
|
+
"sev:medium"
|
|
1395
|
+
]
|
|
1396
|
+
},
|
|
1397
|
+
"malicious-insider": {
|
|
1398
|
+
"score": 0.4,
|
|
1399
|
+
"tier": "medium",
|
|
1400
|
+
"factors": [
|
|
1401
|
+
"sev:medium"
|
|
1402
|
+
]
|
|
1403
|
+
}
|
|
1404
|
+
},
|
|
1405
|
+
"personaTopTwo": [
|
|
1406
|
+
"script-kiddie",
|
|
1407
|
+
"opportunistic-criminal"
|
|
1408
|
+
],
|
|
1409
|
+
"personaMaxName": "script-kiddie",
|
|
1410
|
+
"personaMaxScore": 0.4,
|
|
1411
|
+
"reverseExposure": null,
|
|
1412
|
+
"specMined": null,
|
|
1413
|
+
"whyFired": {
|
|
1414
|
+
"detector": "sast/dos-sync-io",
|
|
1415
|
+
"ruleId": "CWE-400",
|
|
1416
|
+
"parser": "STRUCTURAL",
|
|
1417
|
+
"evidence": {
|
|
1418
|
+
"sinkSnippet": "try { content = fs.readFileSync(abs, 'utf8'); }",
|
|
1419
|
+
"sourceSnippet": "try { content = fs.readFileSync(abs, 'utf8'); }",
|
|
1420
|
+
"pathSteps": [],
|
|
1421
|
+
"sanitizers": [],
|
|
1422
|
+
"guards": []
|
|
1423
|
+
},
|
|
1424
|
+
"considered": {
|
|
1425
|
+
"suppressionsApplied": [],
|
|
1426
|
+
"suppressionsSkipped": [],
|
|
1427
|
+
"reachabilityFilter": "unaffected",
|
|
1428
|
+
"clusterCollapsed": false,
|
|
1429
|
+
"typeNarrowed": false,
|
|
1430
|
+
"crownJewelTier": "unknown",
|
|
1431
|
+
"mitigationVerdict": "unreachable-in-prod"
|
|
1432
|
+
},
|
|
1433
|
+
"scanner": {
|
|
1434
|
+
"rulesetVersion": null,
|
|
1435
|
+
"packHash": null,
|
|
1436
|
+
"modelId": null
|
|
1437
|
+
}
|
|
1438
|
+
},
|
|
1439
|
+
"adversaryTranscript": null,
|
|
1440
|
+
"predictedBountyUsd": {
|
|
1441
|
+
"low": 10,
|
|
1442
|
+
"likely": 40,
|
|
1443
|
+
"high": 120,
|
|
1444
|
+
"program": "web2"
|
|
1445
|
+
},
|
|
1446
|
+
"bountyConfidence": "high",
|
|
1447
|
+
"attackPlaybook": null
|
|
1448
|
+
},
|
|
1220
1449
|
{
|
|
1221
1450
|
"id": "struct:type-stubs.js:48:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
|
|
1222
1451
|
"kind": "sast",
|
|
@@ -3631,7 +3860,7 @@
|
|
|
3631
3860
|
"_v3": {
|
|
3632
3861
|
"counterfactual": {
|
|
3633
3862
|
"spofControls": [],
|
|
3634
|
-
"controlsDetected":
|
|
3863
|
+
"controlsDetected": 379
|
|
3635
3864
|
},
|
|
3636
3865
|
"threatModel": {
|
|
3637
3866
|
"summary": {
|
|
@@ -3642,7 +3871,7 @@
|
|
|
3642
3871
|
"tampering": 1,
|
|
3643
3872
|
"repudiation": 0,
|
|
3644
3873
|
"informationDisclosure": 0,
|
|
3645
|
-
"denialOfService":
|
|
3874
|
+
"denialOfService": 10,
|
|
3646
3875
|
"elevationOfPrivilege": 0
|
|
3647
3876
|
}
|
|
3648
3877
|
},
|
|
@@ -3674,6 +3903,11 @@
|
|
|
3674
3903
|
"repudiation": [],
|
|
3675
3904
|
"informationDisclosure": [],
|
|
3676
3905
|
"denialOfService": [
|
|
3906
|
+
{
|
|
3907
|
+
"vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
|
|
3908
|
+
"file": "cpp-preprocessor.js",
|
|
3909
|
+
"severity": "medium"
|
|
3910
|
+
},
|
|
3677
3911
|
{
|
|
3678
3912
|
"vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
|
|
3679
3913
|
"file": "type-stubs.js",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
da76e96762f8d7ee6ac2ee8968d5822c14bee45de513ed9c1d60cf6f6694c261
|