@clear-capabilities/agentic-security-scanner 0.86.0 → 0.119.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.
Files changed (128) hide show
  1. package/CHANGELOG.md +660 -0
  2. package/bin/agentic-security.js +78 -1
  3. package/dist/178.index.js +1 -1
  4. package/dist/384.index.js +1 -1
  5. package/dist/415.index.js +90 -0
  6. package/dist/444.index.js +89 -0
  7. package/dist/503.index.js +288 -0
  8. package/dist/637.index.js +15 -1
  9. package/dist/838.index.js +1 -1
  10. package/dist/985.index.js +5 -1
  11. package/dist/agentic-security.mjs +84 -84
  12. package/dist/agentic-security.mjs.sha256 +1 -1
  13. package/package.json +21 -10
  14. package/src/dataflow/CLAUDE.md +18 -6
  15. package/src/dataflow/catalog.js +59 -11
  16. package/src/dataflow/engine.js +106 -5
  17. package/src/dataflow/implicit-flow.js +4 -2
  18. package/src/dataflow/index.js +17 -4
  19. package/src/dataflow/proof-gate.js +100 -0
  20. package/src/dataflow/summaries.js +63 -6
  21. package/src/engine.js +292 -10
  22. package/src/ir/CLAUDE.md +1 -0
  23. package/src/ir/callgraph.js +12 -1
  24. package/src/ir/parser-go.js +8 -0
  25. package/src/ir/tree-sitter-loader.js +108 -0
  26. package/src/mcp/tools.js +6 -2
  27. package/src/posture/corpus-status.js +74 -0
  28. package/src/posture/coverage-report.js +113 -0
  29. package/src/posture/fix-history.js +24 -0
  30. package/src/posture/holdout-eval.js +57 -0
  31. package/src/posture/provenance.js +39 -0
  32. package/src/posture/router.js +33 -3
  33. package/src/posture/sca-verdict.js +130 -0
  34. package/src/posture/secret-history.js +72 -0
  35. package/src/pr-delta.js +13 -0
  36. package/src/report/index.js +67 -0
  37. package/src/sast/CLAUDE.md +9 -3
  38. package/src/sast/agent-untrusted-flow.js +107 -0
  39. package/src/sast/api-authz.js +71 -0
  40. package/src/sast/code-injection-multilang.js +117 -0
  41. package/src/sast/cross-service.js +98 -0
  42. package/src/sast/crypto-protocol.js +43 -1
  43. package/src/sast/csharp-structural.js +65 -0
  44. package/src/sast/csharp.js +3 -0
  45. package/src/sast/csrf.js +24 -3
  46. package/src/sast/csv-injection.js +84 -0
  47. package/src/sast/event-entrypoint.js +90 -0
  48. package/src/sast/frontend-hygiene.js +106 -0
  49. package/src/sast/go-structural.js +60 -0
  50. package/src/sast/iac-terraform.js +107 -0
  51. package/src/sast/java-structural.js +81 -0
  52. package/src/sast/js-framework-structural.js +115 -0
  53. package/src/sast/kotlin.js +72 -0
  54. package/src/sast/ldap-injection.js +73 -17
  55. package/src/sast/open-redirect.js +47 -5
  56. package/src/sast/php.js +35 -0
  57. package/src/sast/python-structural.js +83 -0
  58. package/src/sast/rbac-consistency.js +113 -0
  59. package/src/sast/redos-nfa.js +75 -0
  60. package/src/sast/response-splitting.js +48 -19
  61. package/src/sast/ruby.js +38 -0
  62. package/src/sast/secret-concat.js +60 -0
  63. package/src/sast/ssrf-cloud-metadata.js +13 -0
  64. package/src/sast/stored-taint.js +88 -0
  65. package/src/sast/tree-sitter-sinks.js +62 -0
  66. package/src/sast/weak-password-hash.js +28 -0
  67. package/src/sast/weak-randomness.js +46 -5
  68. package/src/sast/wrong-context-sanitizer.js +149 -0
  69. package/src/sast/xpath-injection.js +30 -6
  70. package/src/sast/xss-reflected-multilang.js +116 -0
  71. package/src/sast/xxe.js +67 -0
  72. package/src/sca/image-packages.js +74 -0
  73. package/src/sca/import-reachability.js +271 -0
  74. package/src/sca/install-script-analysis.js +82 -0
  75. package/bin/.agentic-security/findings.json +0 -1907
  76. package/bin/.agentic-security/last-scan.json +0 -1907
  77. package/bin/.agentic-security/last-scan.json.sig +0 -1
  78. package/bin/.agentic-security/scan-history.json +0 -166
  79. package/bin/.agentic-security/streak.json +0 -20
  80. package/src/.agentic-security/findings.json +0 -117732
  81. package/src/.agentic-security/last-scan.json +0 -117732
  82. package/src/.agentic-security/last-scan.json.sig +0 -1
  83. package/src/.agentic-security/scan-history.json +0 -12946
  84. package/src/.agentic-security/streak.json +0 -21
  85. package/src/dataflow/.agentic-security/findings.json +0 -6086
  86. package/src/dataflow/.agentic-security/last-scan.json +0 -6086
  87. package/src/dataflow/.agentic-security/last-scan.json.sig +0 -1
  88. package/src/dataflow/.agentic-security/scan-history.json +0 -250
  89. package/src/dataflow/.agentic-security/streak.json +0 -21
  90. package/src/ir/.agentic-security/findings.json +0 -4011
  91. package/src/ir/.agentic-security/last-scan.json +0 -4011
  92. package/src/ir/.agentic-security/last-scan.json.sig +0 -1
  93. package/src/ir/.agentic-security/scan-history.json +0 -193
  94. package/src/ir/.agentic-security/streak.json +0 -20
  95. package/src/mcp/.agentic-security/findings.json +0 -8632
  96. package/src/mcp/.agentic-security/last-scan.json +0 -8632
  97. package/src/mcp/.agentic-security/last-scan.json.sig +0 -1
  98. package/src/mcp/.agentic-security/scan-history.json +0 -331
  99. package/src/mcp/.agentic-security/streak.json +0 -20
  100. package/src/posture/.agentic-security/dpia.md +0 -26
  101. package/src/posture/.agentic-security/findings.json +0 -77181
  102. package/src/posture/.agentic-security/last-scan.json +0 -77181
  103. package/src/posture/.agentic-security/last-scan.json.sig +0 -1
  104. package/src/posture/.agentic-security/pqc-migration-plan.json +0 -65
  105. package/src/posture/.agentic-security/pqc-migration-plan.md +0 -30
  106. package/src/posture/.agentic-security/sbom-history/7d45b5e03804aac084b4a2b4dc8c6f10107d2005.json +0 -6
  107. package/src/posture/.agentic-security/scan-history.json +0 -8904
  108. package/src/posture/.agentic-security/streak.json +0 -21
  109. package/src/posture/.agentic-security/threat-model.json +0 -2038
  110. package/src/posture/.agentic-security/threat-model.md +0 -73
  111. package/src/posture/compliance-frameworks/.agentic-security/findings.json +0 -80
  112. package/src/posture/compliance-frameworks/.agentic-security/last-scan.json +0 -80
  113. package/src/posture/compliance-frameworks/.agentic-security/last-scan.json.sig +0 -1
  114. package/src/posture/compliance-frameworks/.agentic-security/scan-history.json +0 -90
  115. package/src/posture/compliance-frameworks/.agentic-security/streak.json +0 -22
  116. package/src/report/.agentic-security/sbom-history/7d45b5e03804aac084b4a2b4dc8c6f10107d2005.json +0 -6
  117. package/src/report/.agentic-security/threat-model.json +0 -7
  118. package/src/report/.agentic-security/threat-model.md +0 -22
  119. package/src/sast/.agentic-security/findings.json +0 -6154
  120. package/src/sast/.agentic-security/last-scan.json +0 -6154
  121. package/src/sast/.agentic-security/last-scan.json.sig +0 -1
  122. package/src/sast/.agentic-security/scan-history.json +0 -941
  123. package/src/sast/.agentic-security/streak.json +0 -22
  124. package/src/sca/.agentic-security/findings.json +0 -7460
  125. package/src/sca/.agentic-security/last-scan.json +0 -7460
  126. package/src/sca/.agentic-security/last-scan.json.sig +0 -1
  127. package/src/sca/.agentic-security/scan-history.json +0 -113
  128. package/src/sca/.agentic-security/streak.json +0 -21
@@ -1 +0,0 @@
1
- da76e96762f8d7ee6ac2ee8968d5822c14bee45de513ed9c1d60cf6f6694c261
@@ -1,193 +0,0 @@
1
- [
2
- {
3
- "timestamp": "2026-05-28T18:59:26.541Z",
4
- "label": "scan",
5
- "total": 15,
6
- "critical": 0,
7
- "high": 5,
8
- "medium": 10,
9
- "low": 0,
10
- "kev": 0,
11
- "ids": [
12
- "struct:parser-cs.js:208:Mass_Assignment_(req.body_Direct_to_Model)",
13
- "struct:parser-go.js:253:Mass_Assignment_(req.body_Direct_to_Model)",
14
- "struct:parser-kt.js:207:Mass_Assignment_(req.body_Direct_to_Model)",
15
- "struct:parser-php.js:209:Mass_Assignment_(req.body_Direct_to_Model)",
16
- "struct:parser-py-cst.js:91:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
17
- "struct:parser-rb.js:201:Mass_Assignment_(req.body_Direct_to_Model)",
18
- "struct:type-stubs.js:190:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
19
- "struct:type-stubs.js:198:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
20
- "struct:type-stubs.js:216:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
21
- "struct:type-stubs.js:245:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
22
- "struct:type-stubs.js:48:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
23
- "struct:type-stubs.js:57:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
24
- "struct:type-stubs.js:58:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
25
- "struct:type-stubs.js:79:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
26
- "toctou-fs:type-stubs.js:48"
27
- ]
28
- },
29
- {
30
- "timestamp": "2026-05-28T19:04:00.910Z",
31
- "label": "scan",
32
- "total": 15,
33
- "critical": 0,
34
- "high": 5,
35
- "medium": 10,
36
- "low": 0,
37
- "kev": 0,
38
- "ids": [
39
- "struct:parser-cs.js:208:Mass_Assignment_(req.body_Direct_to_Model)",
40
- "struct:parser-go.js:253:Mass_Assignment_(req.body_Direct_to_Model)",
41
- "struct:parser-kt.js:207:Mass_Assignment_(req.body_Direct_to_Model)",
42
- "struct:parser-php.js:209:Mass_Assignment_(req.body_Direct_to_Model)",
43
- "struct:parser-py-cst.js:91:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
44
- "struct:parser-rb.js:201:Mass_Assignment_(req.body_Direct_to_Model)",
45
- "struct:type-stubs.js:190:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
46
- "struct:type-stubs.js:198:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
47
- "struct:type-stubs.js:216:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
48
- "struct:type-stubs.js:245:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
49
- "struct:type-stubs.js:48:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
50
- "struct:type-stubs.js:57:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
51
- "struct:type-stubs.js:58:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
52
- "struct:type-stubs.js:79:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
53
- "toctou-fs:type-stubs.js:48"
54
- ]
55
- },
56
- {
57
- "timestamp": "2026-05-28T19:06:14.172Z",
58
- "label": "scan",
59
- "total": 15,
60
- "critical": 0,
61
- "high": 5,
62
- "medium": 10,
63
- "low": 0,
64
- "kev": 0,
65
- "ids": [
66
- "struct:parser-cs.js:208:Mass_Assignment_(req.body_Direct_to_Model)",
67
- "struct:parser-go.js:253:Mass_Assignment_(req.body_Direct_to_Model)",
68
- "struct:parser-kt.js:207:Mass_Assignment_(req.body_Direct_to_Model)",
69
- "struct:parser-php.js:209:Mass_Assignment_(req.body_Direct_to_Model)",
70
- "struct:parser-py-cst.js:91:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
71
- "struct:parser-rb.js:201:Mass_Assignment_(req.body_Direct_to_Model)",
72
- "struct:type-stubs.js:190:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
73
- "struct:type-stubs.js:198:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
74
- "struct:type-stubs.js:216:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
75
- "struct:type-stubs.js:245:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
76
- "struct:type-stubs.js:48:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
77
- "struct:type-stubs.js:57:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
78
- "struct:type-stubs.js:58:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
79
- "struct:type-stubs.js:79:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
80
- "toctou-fs:type-stubs.js:48"
81
- ]
82
- },
83
- {
84
- "timestamp": "2026-05-28T19:06:52.695Z",
85
- "label": "scan",
86
- "total": 15,
87
- "critical": 0,
88
- "high": 5,
89
- "medium": 10,
90
- "low": 0,
91
- "kev": 0,
92
- "ids": [
93
- "struct:parser-cs.js:208:Mass_Assignment_(req.body_Direct_to_Model)",
94
- "struct:parser-go.js:253:Mass_Assignment_(req.body_Direct_to_Model)",
95
- "struct:parser-kt.js:207:Mass_Assignment_(req.body_Direct_to_Model)",
96
- "struct:parser-php.js:209:Mass_Assignment_(req.body_Direct_to_Model)",
97
- "struct:parser-py-cst.js:91:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
98
- "struct:parser-rb.js:201:Mass_Assignment_(req.body_Direct_to_Model)",
99
- "struct:type-stubs.js:190:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
100
- "struct:type-stubs.js:198:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
101
- "struct:type-stubs.js:216:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
102
- "struct:type-stubs.js:245:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
103
- "struct:type-stubs.js:48:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
104
- "struct:type-stubs.js:57:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
105
- "struct:type-stubs.js:58:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
106
- "struct:type-stubs.js:79:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
107
- "toctou-fs:type-stubs.js:48"
108
- ]
109
- },
110
- {
111
- "timestamp": "2026-05-28T20:16:46.839Z",
112
- "label": "scan",
113
- "total": 15,
114
- "critical": 0,
115
- "high": 5,
116
- "medium": 10,
117
- "low": 0,
118
- "kev": 0,
119
- "ids": [
120
- "struct:parser-cs.js:208:Mass_Assignment_(req.body_Direct_to_Model)",
121
- "struct:parser-go.js:253:Mass_Assignment_(req.body_Direct_to_Model)",
122
- "struct:parser-kt.js:207:Mass_Assignment_(req.body_Direct_to_Model)",
123
- "struct:parser-php.js:209:Mass_Assignment_(req.body_Direct_to_Model)",
124
- "struct:parser-py-cst.js:91:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
125
- "struct:parser-rb.js:201:Mass_Assignment_(req.body_Direct_to_Model)",
126
- "struct:type-stubs.js:190:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
127
- "struct:type-stubs.js:198:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
128
- "struct:type-stubs.js:216:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
129
- "struct:type-stubs.js:245:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
130
- "struct:type-stubs.js:48:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
131
- "struct:type-stubs.js:57:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
132
- "struct:type-stubs.js:58:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
133
- "struct:type-stubs.js:79:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
134
- "toctou-fs:type-stubs.js:48"
135
- ]
136
- },
137
- {
138
- "timestamp": "2026-05-28T21:57:00.566Z",
139
- "label": "scan",
140
- "total": 16,
141
- "critical": 0,
142
- "high": 5,
143
- "medium": 11,
144
- "low": 0,
145
- "kev": 0,
146
- "ids": [
147
- "struct:cpp-preprocessor.js:94:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
148
- "struct:parser-cs.js:208:Mass_Assignment_(req.body_Direct_to_Model)",
149
- "struct:parser-go.js:253:Mass_Assignment_(req.body_Direct_to_Model)",
150
- "struct:parser-kt.js:207:Mass_Assignment_(req.body_Direct_to_Model)",
151
- "struct:parser-php.js:209:Mass_Assignment_(req.body_Direct_to_Model)",
152
- "struct:parser-py-cst.js:91:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
153
- "struct:parser-rb.js:201:Mass_Assignment_(req.body_Direct_to_Model)",
154
- "struct:type-stubs.js:190:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
155
- "struct:type-stubs.js:198:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
156
- "struct:type-stubs.js:216:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
157
- "struct:type-stubs.js:245:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
158
- "struct:type-stubs.js:48:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
159
- "struct:type-stubs.js:57:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
160
- "struct:type-stubs.js:58:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
161
- "struct:type-stubs.js:79:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
162
- "toctou-fs:type-stubs.js:48"
163
- ]
164
- },
165
- {
166
- "timestamp": "2026-05-29T06:24:38.526Z",
167
- "label": "scan",
168
- "total": 16,
169
- "critical": 0,
170
- "high": 5,
171
- "medium": 11,
172
- "low": 0,
173
- "kev": 0,
174
- "ids": [
175
- "struct:cpp-preprocessor.js:94:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
176
- "struct:parser-cs.js:208:Mass_Assignment_(req.body_Direct_to_Model)",
177
- "struct:parser-go.js:253:Mass_Assignment_(req.body_Direct_to_Model)",
178
- "struct:parser-kt.js:207:Mass_Assignment_(req.body_Direct_to_Model)",
179
- "struct:parser-php.js:209:Mass_Assignment_(req.body_Direct_to_Model)",
180
- "struct:parser-py-cst.js:91:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
181
- "struct:parser-rb.js:201:Mass_Assignment_(req.body_Direct_to_Model)",
182
- "struct:type-stubs.js:190:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
183
- "struct:type-stubs.js:198:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
184
- "struct:type-stubs.js:216:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
185
- "struct:type-stubs.js:245:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
186
- "struct:type-stubs.js:48:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
187
- "struct:type-stubs.js:57:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
188
- "struct:type-stubs.js:58:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
189
- "struct:type-stubs.js:79:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
190
- "toctou-fs:type-stubs.js:48"
191
- ]
192
- }
193
- ]
@@ -1,20 +0,0 @@
1
- {
2
- "firstScanDate": "2026-05-28T18:59:26.568Z",
3
- "lastScanDate": "2026-05-29T06:24:38.574Z",
4
- "totalScans": 7,
5
- "daysCleanCritical": 2,
6
- "lastCleanDate": "2026-05-29",
7
- "lastCriticalDate": null,
8
- "hasEverHadCritical": false,
9
- "bestDaysCleanCritical": 2,
10
- "totalFindingsAtFirstScan": 16,
11
- "totalFindingsAtLastScan": 17,
12
- "totalFixesInferred": 0,
13
- "lastGrade": "B",
14
- "bestGrade": "B",
15
- "launchCheckPassedAt": null,
16
- "achievements": [
17
- "first-scan"
18
- ],
19
- "previousGrade": "B"
20
- }