vaspera 2.9.0 → 2.10.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.
Files changed (166) hide show
  1. package/CHANGELOG.md +122 -7
  2. package/README.md +58 -1
  3. package/dist/__tests__/autofix/branch-manager.test.d.ts +2 -0
  4. package/dist/__tests__/autofix/branch-manager.test.d.ts.map +1 -0
  5. package/dist/__tests__/autofix/branch-manager.test.js +60 -0
  6. package/dist/__tests__/autofix/branch-manager.test.js.map +1 -0
  7. package/dist/__tests__/autofix/commit-generator.test.d.ts +2 -0
  8. package/dist/__tests__/autofix/commit-generator.test.d.ts.map +1 -0
  9. package/dist/__tests__/autofix/commit-generator.test.js +147 -0
  10. package/dist/__tests__/autofix/commit-generator.test.js.map +1 -0
  11. package/dist/__tests__/autofix/constitution.test.d.ts +9 -0
  12. package/dist/__tests__/autofix/constitution.test.d.ts.map +1 -0
  13. package/dist/__tests__/autofix/constitution.test.js +421 -0
  14. package/dist/__tests__/autofix/constitution.test.js.map +1 -0
  15. package/dist/__tests__/autofix/pr-generator.test.d.ts +2 -0
  16. package/dist/__tests__/autofix/pr-generator.test.d.ts.map +1 -0
  17. package/dist/__tests__/autofix/pr-generator.test.js +152 -0
  18. package/dist/__tests__/autofix/pr-generator.test.js.map +1 -0
  19. package/dist/__tests__/property-test-helpers.d.ts +87 -0
  20. package/dist/__tests__/property-test-helpers.d.ts.map +1 -0
  21. package/dist/__tests__/property-test-helpers.js +136 -0
  22. package/dist/__tests__/property-test-helpers.js.map +1 -0
  23. package/dist/__tests__/scanners/dast/index.test.d.ts +2 -0
  24. package/dist/__tests__/scanners/dast/index.test.d.ts.map +1 -0
  25. package/dist/__tests__/scanners/dast/index.test.js +183 -0
  26. package/dist/__tests__/scanners/dast/index.test.js.map +1 -0
  27. package/dist/__tests__/scanners/dast/nuclei.test.d.ts +2 -0
  28. package/dist/__tests__/scanners/dast/nuclei.test.d.ts.map +1 -0
  29. package/dist/__tests__/scanners/dast/nuclei.test.js +166 -0
  30. package/dist/__tests__/scanners/dast/nuclei.test.js.map +1 -0
  31. package/dist/__tests__/scanners/dast/zap.test.d.ts +2 -0
  32. package/dist/__tests__/scanners/dast/zap.test.d.ts.map +1 -0
  33. package/dist/__tests__/scanners/dast/zap.test.js +158 -0
  34. package/dist/__tests__/scanners/dast/zap.test.js.map +1 -0
  35. package/dist/__tests__/scanners/fp-feedback.test.d.ts +2 -0
  36. package/dist/__tests__/scanners/fp-feedback.test.d.ts.map +1 -0
  37. package/dist/__tests__/scanners/fp-feedback.test.js +202 -0
  38. package/dist/__tests__/scanners/fp-feedback.test.js.map +1 -0
  39. package/dist/__tests__/scanners/fp-filter.property.test.d.ts +9 -0
  40. package/dist/__tests__/scanners/fp-filter.property.test.d.ts.map +1 -0
  41. package/dist/__tests__/scanners/fp-filter.property.test.js +253 -0
  42. package/dist/__tests__/scanners/fp-filter.property.test.js.map +1 -0
  43. package/dist/__tests__/scanners/fp-filter.test.d.ts +2 -0
  44. package/dist/__tests__/scanners/fp-filter.test.d.ts.map +1 -0
  45. package/dist/__tests__/scanners/fp-filter.test.js +234 -0
  46. package/dist/__tests__/scanners/fp-filter.test.js.map +1 -0
  47. package/dist/__tests__/scanners/fp-tracker.test.d.ts +2 -0
  48. package/dist/__tests__/scanners/fp-tracker.test.d.ts.map +1 -0
  49. package/dist/__tests__/scanners/fp-tracker.test.js +262 -0
  50. package/dist/__tests__/scanners/fp-tracker.test.js.map +1 -0
  51. package/dist/__tests__/scanners/logic/endpoint-analyzer.property.test.d.ts +10 -0
  52. package/dist/__tests__/scanners/logic/endpoint-analyzer.property.test.d.ts.map +1 -0
  53. package/dist/__tests__/scanners/logic/endpoint-analyzer.property.test.js +238 -0
  54. package/dist/__tests__/scanners/logic/endpoint-analyzer.property.test.js.map +1 -0
  55. package/dist/__tests__/scanners/logic/endpoint-analyzer.test.d.ts +2 -0
  56. package/dist/__tests__/scanners/logic/endpoint-analyzer.test.d.ts.map +1 -0
  57. package/dist/__tests__/scanners/logic/endpoint-analyzer.test.js +55 -0
  58. package/dist/__tests__/scanners/logic/endpoint-analyzer.test.js.map +1 -0
  59. package/dist/__tests__/scanners/logic/index.test.d.ts +2 -0
  60. package/dist/__tests__/scanners/logic/index.test.d.ts.map +1 -0
  61. package/dist/__tests__/scanners/logic/index.test.js +165 -0
  62. package/dist/__tests__/scanners/logic/index.test.js.map +1 -0
  63. package/dist/__tests__/scanners/logic/types.test.d.ts +2 -0
  64. package/dist/__tests__/scanners/logic/types.test.d.ts.map +1 -0
  65. package/dist/__tests__/scanners/logic/types.test.js +85 -0
  66. package/dist/__tests__/scanners/logic/types.test.js.map +1 -0
  67. package/dist/action/pr-comment.test.js +4 -0
  68. package/dist/action/pr-comment.test.js.map +1 -1
  69. package/dist/action/sarif-upload.test.js +4 -0
  70. package/dist/action/sarif-upload.test.js.map +1 -1
  71. package/dist/autofix/branch-manager.d.ts +115 -0
  72. package/dist/autofix/branch-manager.d.ts.map +1 -0
  73. package/dist/autofix/branch-manager.js +308 -0
  74. package/dist/autofix/branch-manager.js.map +1 -0
  75. package/dist/autofix/commit-generator.d.ts +55 -0
  76. package/dist/autofix/commit-generator.d.ts.map +1 -0
  77. package/dist/autofix/commit-generator.js +277 -0
  78. package/dist/autofix/commit-generator.js.map +1 -0
  79. package/dist/autofix/constitution.d.ts +77 -0
  80. package/dist/autofix/constitution.d.ts.map +1 -0
  81. package/dist/autofix/constitution.js +261 -0
  82. package/dist/autofix/constitution.js.map +1 -0
  83. package/dist/autofix/constitution.schema.d.ts +441 -0
  84. package/dist/autofix/constitution.schema.d.ts.map +1 -0
  85. package/dist/autofix/constitution.schema.js +144 -0
  86. package/dist/autofix/constitution.schema.js.map +1 -0
  87. package/dist/autofix/index.d.ts +13 -0
  88. package/dist/autofix/index.d.ts.map +1 -0
  89. package/dist/autofix/index.js +15 -0
  90. package/dist/autofix/index.js.map +1 -0
  91. package/dist/autofix/pr-generator.d.ts +57 -0
  92. package/dist/autofix/pr-generator.d.ts.map +1 -0
  93. package/dist/autofix/pr-generator.js +597 -0
  94. package/dist/autofix/pr-generator.js.map +1 -0
  95. package/dist/autofix/types.d.ts +151 -0
  96. package/dist/autofix/types.d.ts.map +1 -0
  97. package/dist/autofix/types.js +22 -0
  98. package/dist/autofix/types.js.map +1 -0
  99. package/dist/eval/fixtures.d.ts +20 -0
  100. package/dist/eval/fixtures.d.ts.map +1 -1
  101. package/dist/eval/fixtures.js +430 -0
  102. package/dist/eval/fixtures.js.map +1 -1
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +84 -1
  105. package/dist/index.js.map +1 -1
  106. package/dist/scanners/cache.d.ts.map +1 -1
  107. package/dist/scanners/cache.js +4 -0
  108. package/dist/scanners/cache.js.map +1 -1
  109. package/dist/scanners/dast/index.d.ts +39 -0
  110. package/dist/scanners/dast/index.d.ts.map +1 -0
  111. package/dist/scanners/dast/index.js +259 -0
  112. package/dist/scanners/dast/index.js.map +1 -0
  113. package/dist/scanners/dast/nuclei.d.ts +26 -0
  114. package/dist/scanners/dast/nuclei.d.ts.map +1 -0
  115. package/dist/scanners/dast/nuclei.js +354 -0
  116. package/dist/scanners/dast/nuclei.js.map +1 -0
  117. package/dist/scanners/dast/types.d.ts +306 -0
  118. package/dist/scanners/dast/types.d.ts.map +1 -0
  119. package/dist/scanners/dast/types.js +52 -0
  120. package/dist/scanners/dast/types.js.map +1 -0
  121. package/dist/scanners/dast/zap.d.ts +26 -0
  122. package/dist/scanners/dast/zap.d.ts.map +1 -0
  123. package/dist/scanners/dast/zap.js +453 -0
  124. package/dist/scanners/dast/zap.js.map +1 -0
  125. package/dist/scanners/fp-feedback.d.ts +140 -0
  126. package/dist/scanners/fp-feedback.d.ts.map +1 -0
  127. package/dist/scanners/fp-feedback.js +292 -0
  128. package/dist/scanners/fp-feedback.js.map +1 -0
  129. package/dist/scanners/fp-filter.d.ts +94 -0
  130. package/dist/scanners/fp-filter.d.ts.map +1 -0
  131. package/dist/scanners/fp-filter.js +397 -0
  132. package/dist/scanners/fp-filter.js.map +1 -0
  133. package/dist/scanners/fp-tracker.d.ts +125 -0
  134. package/dist/scanners/fp-tracker.d.ts.map +1 -0
  135. package/dist/scanners/fp-tracker.js +330 -0
  136. package/dist/scanners/fp-tracker.js.map +1 -0
  137. package/dist/scanners/index.d.ts.map +1 -1
  138. package/dist/scanners/index.js +56 -0
  139. package/dist/scanners/index.js.map +1 -1
  140. package/dist/scanners/index.test.js +6 -6
  141. package/dist/scanners/index.test.js.map +1 -1
  142. package/dist/scanners/logic/auth-flow-analyzer.d.ts +18 -0
  143. package/dist/scanners/logic/auth-flow-analyzer.d.ts.map +1 -0
  144. package/dist/scanners/logic/auth-flow-analyzer.js +384 -0
  145. package/dist/scanners/logic/auth-flow-analyzer.js.map +1 -0
  146. package/dist/scanners/logic/endpoint-analyzer.d.ts +29 -0
  147. package/dist/scanners/logic/endpoint-analyzer.d.ts.map +1 -0
  148. package/dist/scanners/logic/endpoint-analyzer.js +528 -0
  149. package/dist/scanners/logic/endpoint-analyzer.js.map +1 -0
  150. package/dist/scanners/logic/index.d.ts +41 -0
  151. package/dist/scanners/logic/index.d.ts.map +1 -0
  152. package/dist/scanners/logic/index.js +268 -0
  153. package/dist/scanners/logic/index.js.map +1 -0
  154. package/dist/scanners/logic/types.d.ts +254 -0
  155. package/dist/scanners/logic/types.d.ts.map +1 -0
  156. package/dist/scanners/logic/types.js +142 -0
  157. package/dist/scanners/logic/types.js.map +1 -0
  158. package/dist/scanners/types.d.ts +1 -1
  159. package/dist/scanners/types.d.ts.map +1 -1
  160. package/dist/scanners/types.js +4 -0
  161. package/dist/scanners/types.js.map +1 -1
  162. package/dist/telemetry/usage.d.ts +1 -1
  163. package/dist/telemetry/usage.d.ts.map +1 -1
  164. package/dist/telemetry/usage.js +14 -6
  165. package/dist/telemetry/usage.js.map +1 -1
  166. package/package.json +6 -8
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/scanners/index.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/scanners/index.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Authorization Flow Analyzer
3
+ *
4
+ * Analyzes authorization patterns in API endpoints to detect
5
+ * potential BOLA, IDOR, and other authorization vulnerabilities.
6
+ *
7
+ * @module scanners/logic/auth-flow-analyzer
8
+ */
9
+ import type { APIEndpoint, AuthorizationAnalysis } from "./types.js";
10
+ /**
11
+ * Analyze authorization flow for an endpoint
12
+ */
13
+ export declare function analyzeAuthorizationFlow(endpoint: APIEndpoint, projectPath: string): Promise<AuthorizationAnalysis>;
14
+ /**
15
+ * Batch analyze multiple endpoints
16
+ */
17
+ export declare function analyzeEndpoints(endpoints: APIEndpoint[], projectPath: string): Promise<AuthorizationAnalysis[]>;
18
+ //# sourceMappingURL=auth-flow-analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-flow-analyzer.d.ts","sourceRoot":"","sources":["../../../src/scanners/logic/auth-flow-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EACV,WAAW,EACX,qBAAqB,EAStB,MAAM,YAAY,CAAC;AAmDpB;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,WAAW,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,CAAC,CA4ChC;AAuUD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,WAAW,EAAE,EACxB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAgBlC"}
@@ -0,0 +1,384 @@
1
+ /**
2
+ * Authorization Flow Analyzer
3
+ *
4
+ * Analyzes authorization patterns in API endpoints to detect
5
+ * potential BOLA, IDOR, and other authorization vulnerabilities.
6
+ *
7
+ * @module scanners/logic/auth-flow-analyzer
8
+ */
9
+ import { readFile } from "fs/promises";
10
+ import { join } from "path";
11
+ import { logger } from "../../logger.js";
12
+ import { LOGIC_VULN_CWE_MAP as CWE_MAP, LOGIC_VULN_OWASP_MAP as OWASP_MAP, LOGIC_VULN_SEVERITY_MAP as SEVERITY_MAP, } from "./types.js";
13
+ import { inferResourceType } from "./endpoint-analyzer.js";
14
+ /**
15
+ * Authentication method detection patterns
16
+ */
17
+ const AUTH_METHOD_PATTERNS = [
18
+ { pattern: /jwt|jsonwebtoken|jose|jws/i, method: "jwt" },
19
+ { pattern: /session\.(user|userId|passport)/i, method: "session" },
20
+ { pattern: /passport\.authenticate/i, method: "session" },
21
+ { pattern: /apiKey|api[_-]key|x-api-key/i, method: "api-key" },
22
+ { pattern: /oauth|openid|oidc/i, method: "oauth" },
23
+ { pattern: /basicAuth|basic-auth|authorization:\s*basic/i, method: "basic" },
24
+ ];
25
+ /**
26
+ * Patterns indicating sensitive operations
27
+ */
28
+ const SENSITIVE_OPERATION_PATTERNS = [
29
+ { pattern: /delete|remove|destroy/i, operation: "delete" },
30
+ { pattern: /update|modify|edit|patch/i, operation: "update" },
31
+ { pattern: /create|add|insert|new/i, operation: "create" },
32
+ { pattern: /get|find|fetch|read|list/i, operation: "read" },
33
+ ];
34
+ /**
35
+ * Patterns indicating resource ID access
36
+ */
37
+ const ID_SOURCE_PATTERNS = [
38
+ { pattern: /params\.(\w+)(?:Id)?/i, source: "path" },
39
+ { pattern: /req\.params\.(\w+)/i, source: "path" },
40
+ { pattern: /query\.(\w+)(?:Id)?/i, source: "query" },
41
+ { pattern: /req\.query\.(\w+)/i, source: "query" },
42
+ { pattern: /body\.(\w+)(?:Id)?/i, source: "body" },
43
+ { pattern: /req\.body\.(\w+)/i, source: "body" },
44
+ { pattern: /headers\['x-(\w+)-id'\]/i, source: "header" },
45
+ { pattern: /session\.(\w+)(?:Id)?/i, source: "session" },
46
+ { pattern: /req\.user\.(\w+)/i, source: "session" },
47
+ ];
48
+ /**
49
+ * Analyze authorization flow for an endpoint
50
+ */
51
+ export async function analyzeAuthorizationFlow(endpoint, projectPath) {
52
+ const filePath = join(projectPath, endpoint.file);
53
+ let content;
54
+ try {
55
+ content = await readFile(filePath, "utf-8");
56
+ }
57
+ catch {
58
+ return {
59
+ endpoint,
60
+ requiresAuth: endpoint.hasAuth,
61
+ authzChecks: endpoint.authzChecks,
62
+ resourceAccesses: [],
63
+ vulnerabilities: [],
64
+ confidence: 0,
65
+ };
66
+ }
67
+ // Detect auth method
68
+ let authMethod;
69
+ for (const { pattern, method } of AUTH_METHOD_PATTERNS) {
70
+ if (pattern.test(content)) {
71
+ authMethod = method;
72
+ break;
73
+ }
74
+ }
75
+ // Find resource accesses
76
+ const resourceAccesses = findResourceAccesses(content, endpoint);
77
+ // Detect vulnerabilities
78
+ const vulnerabilities = detectVulnerabilities(endpoint, resourceAccesses, content);
79
+ // Calculate confidence
80
+ const confidence = calculateConfidence(endpoint, resourceAccesses, vulnerabilities);
81
+ return {
82
+ endpoint,
83
+ requiresAuth: endpoint.hasAuth,
84
+ authMethod,
85
+ authzChecks: endpoint.authzChecks,
86
+ resourceAccesses,
87
+ vulnerabilities,
88
+ confidence,
89
+ };
90
+ }
91
+ /**
92
+ * Find resource accesses in endpoint code
93
+ */
94
+ function findResourceAccesses(content, endpoint) {
95
+ const accesses = [];
96
+ const resourceType = inferResourceType(endpoint.path);
97
+ const lines = content.split("\n");
98
+ // Find ID source in the code
99
+ let idSource = "path";
100
+ for (const { pattern, source } of ID_SOURCE_PATTERNS) {
101
+ if (pattern.test(content)) {
102
+ idSource = source;
103
+ break;
104
+ }
105
+ }
106
+ // Determine operation from HTTP method and code
107
+ let operation = "read";
108
+ const methodStr = Array.isArray(endpoint.method) ? endpoint.method.join(",") : endpoint.method;
109
+ if (/DELETE/i.test(methodStr)) {
110
+ operation = "delete";
111
+ }
112
+ else if (/POST/i.test(methodStr)) {
113
+ operation = "create";
114
+ }
115
+ else if (/PUT|PATCH/i.test(methodStr)) {
116
+ operation = "update";
117
+ }
118
+ // Look for database queries that access resources
119
+ for (const query of endpoint.dbQueries) {
120
+ const hasOwnership = query.hasOwnershipFilter ||
121
+ endpoint.authzChecks.some((c) => c.type === "ownership");
122
+ accesses.push({
123
+ resource: query.table || resourceType || "unknown",
124
+ operation,
125
+ ownershipCheck: hasOwnership,
126
+ idSource,
127
+ file: endpoint.file,
128
+ line: query.location.line,
129
+ });
130
+ }
131
+ // If no queries found but endpoint has path params, create access entry
132
+ if (accesses.length === 0 && endpoint.pathParams.length > 0) {
133
+ const hasOwnership = endpoint.authzChecks.some((c) => c.type === "ownership");
134
+ accesses.push({
135
+ resource: resourceType || endpoint.pathParams[0]?.replace(/Id$/i, "") || "unknown",
136
+ operation,
137
+ ownershipCheck: hasOwnership,
138
+ idSource,
139
+ file: endpoint.file,
140
+ line: endpoint.line,
141
+ });
142
+ }
143
+ return accesses;
144
+ }
145
+ /**
146
+ * Detect authorization vulnerabilities
147
+ */
148
+ function detectVulnerabilities(endpoint, resourceAccesses, content) {
149
+ const vulnerabilities = [];
150
+ // Check for missing authentication
151
+ if (!endpoint.hasAuth && hasSecureOperation(endpoint)) {
152
+ vulnerabilities.push(createVulnerability("missing-auth", endpoint, {
153
+ description: `Endpoint ${endpoint.path} performs sensitive operations without authentication`,
154
+ }));
155
+ }
156
+ // Check for BOLA/IDOR
157
+ for (const access of resourceAccesses) {
158
+ // BOLA: Object-level access without ownership check
159
+ if (!access.ownershipCheck && access.idSource === "path" && endpoint.hasAuth) {
160
+ vulnerabilities.push(createVulnerability("bola", endpoint, {
161
+ description: `Endpoint ${endpoint.path} accesses ${access.resource} by ID without ownership verification`,
162
+ resourceAccess: access,
163
+ }));
164
+ }
165
+ // IDOR: Direct object reference from user input
166
+ if (!access.ownershipCheck && ["path", "query", "body"].includes(access.idSource)) {
167
+ // Check if BOLA was already added
168
+ const hasBola = vulnerabilities.some((v) => v.vulnType === "bola" && v.line === endpoint.line);
169
+ if (!hasBola) {
170
+ vulnerabilities.push(createVulnerability("idor", endpoint, {
171
+ description: `Endpoint ${endpoint.path} uses user-controlled ${access.idSource} parameter to access ${access.resource}`,
172
+ resourceAccess: access,
173
+ }));
174
+ }
175
+ }
176
+ }
177
+ // Check for BFLA (function-level authorization)
178
+ if (isAdminFunction(endpoint.path, content) && !hasAdminCheck(endpoint.authzChecks)) {
179
+ vulnerabilities.push(createVulnerability("bfla", endpoint, {
180
+ description: `Admin endpoint ${endpoint.path} missing role/permission check`,
181
+ }));
182
+ }
183
+ // Check for mass assignment
184
+ if (hasMassAssignmentRisk(endpoint, content)) {
185
+ vulnerabilities.push(createVulnerability("mass-assignment", endpoint, {
186
+ description: `Endpoint ${endpoint.path} may allow mass assignment of sensitive fields`,
187
+ }));
188
+ }
189
+ // Check for direct database access without authorization
190
+ if (endpoint.dbQueries.length > 0 && !endpoint.hasAuth && endpoint.authzChecks.length === 0) {
191
+ vulnerabilities.push(createVulnerability("direct-db-access", endpoint, {
192
+ description: `Endpoint ${endpoint.path} accesses database without authorization checks`,
193
+ }));
194
+ }
195
+ // Check for privilege escalation patterns
196
+ const privEscPatterns = detectPrivilegeEscalation(endpoint, content);
197
+ vulnerabilities.push(...privEscPatterns);
198
+ return vulnerabilities;
199
+ }
200
+ /**
201
+ * Check if endpoint performs secure/sensitive operations
202
+ */
203
+ function hasSecureOperation(endpoint) {
204
+ const method = Array.isArray(endpoint.method) ? endpoint.method : [endpoint.method];
205
+ const sensitiveMethods = ["POST", "PUT", "PATCH", "DELETE"];
206
+ if (method.some((m) => sensitiveMethods.includes(m))) {
207
+ return true;
208
+ }
209
+ // Check path for sensitive resources
210
+ const sensitivePaths = [
211
+ /\/admin/i,
212
+ /\/user/i,
213
+ /\/account/i,
214
+ /\/profile/i,
215
+ /\/settings/i,
216
+ /\/config/i,
217
+ /\/payment/i,
218
+ /\/billing/i,
219
+ /\/order/i,
220
+ /\/secret/i,
221
+ ];
222
+ return sensitivePaths.some((p) => p.test(endpoint.path));
223
+ }
224
+ /**
225
+ * Check if path appears to be an admin function
226
+ */
227
+ function isAdminFunction(path, content) {
228
+ const adminPatterns = [
229
+ /\/admin\//i,
230
+ /\/management\//i,
231
+ /\/internal\//i,
232
+ /\/superuser/i,
233
+ /\/system\//i,
234
+ /bulk|batch|mass/i,
235
+ /delete-all|deleteAll/i,
236
+ ];
237
+ return adminPatterns.some((p) => p.test(path) || p.test(content));
238
+ }
239
+ /**
240
+ * Check if endpoint has admin/role check
241
+ */
242
+ function hasAdminCheck(checks) {
243
+ return checks.some((c) => c.type === "admin" || c.type === "role");
244
+ }
245
+ /**
246
+ * Check for mass assignment vulnerability
247
+ */
248
+ function hasMassAssignmentRisk(endpoint, content) {
249
+ const method = Array.isArray(endpoint.method) ? endpoint.method : [endpoint.method];
250
+ if (!method.some((m) => ["POST", "PUT", "PATCH"].includes(m))) {
251
+ return false;
252
+ }
253
+ // Look for direct body spread or assignment
254
+ const massAssignPatterns = [
255
+ /\.create\s*\(\s*req\.body\s*\)/i,
256
+ /\.update\s*\(\s*req\.body\s*\)/i,
257
+ /\{\s*\.\.\.req\.body\s*\}/i,
258
+ /Object\.assign\s*\([^,]+,\s*req\.body/i,
259
+ /\$set:\s*req\.body/i,
260
+ ];
261
+ // Check for allow/block list
262
+ const hasAllowList = /allowedFields|whitelist|pick\s*\(/i.test(content);
263
+ const hasBlockList = /blockedFields|blacklist|omit\s*\(/i.test(content);
264
+ return massAssignPatterns.some((p) => p.test(content)) && !hasAllowList && !hasBlockList;
265
+ }
266
+ /**
267
+ * Detect privilege escalation patterns
268
+ */
269
+ function detectPrivilegeEscalation(endpoint, content) {
270
+ const vulnerabilities = [];
271
+ // Horizontal privilege escalation: User can access other users' data
272
+ if (endpoint.pathParams.some((p) => /user|account|profile/i.test(p))) {
273
+ const hasUserIdFromSession = /session\.user\.id|req\.user\.id|currentUser/i.test(content);
274
+ const hasOwnershipCheck = endpoint.authzChecks.some((c) => c.type === "ownership");
275
+ if (!hasOwnershipCheck && !hasUserIdFromSession) {
276
+ vulnerabilities.push(createVulnerability("horizontal-priv-esc", endpoint, {
277
+ description: `Endpoint ${endpoint.path} allows accessing other users' data without ownership verification`,
278
+ }));
279
+ }
280
+ }
281
+ // Vertical privilege escalation: User can elevate their own role
282
+ const roleEscalationPatterns = [
283
+ /role\s*:\s*req\.body\.role/i,
284
+ /isAdmin\s*:\s*req\.body/i,
285
+ /permissions\s*:\s*req\.body/i,
286
+ /\.role\s*=\s*[^;]+body/i,
287
+ ];
288
+ if (roleEscalationPatterns.some((p) => p.test(content))) {
289
+ vulnerabilities.push(createVulnerability("vertical-priv-esc", endpoint, {
290
+ description: `Endpoint ${endpoint.path} allows users to modify their own role/permissions`,
291
+ }));
292
+ }
293
+ return vulnerabilities;
294
+ }
295
+ /**
296
+ * Create a logic vulnerability object
297
+ */
298
+ function createVulnerability(vulnType, endpoint, details) {
299
+ const vulnNames = {
300
+ "bola": "Broken Object Level Authorization",
301
+ "idor": "Insecure Direct Object Reference",
302
+ "bfla": "Broken Function Level Authorization",
303
+ "mass-assignment": "Mass Assignment Vulnerability",
304
+ "race-condition-auth": "Race Condition in Authorization",
305
+ "privilege-escalation": "Privilege Escalation",
306
+ "missing-auth": "Missing Authentication",
307
+ "missing-authz": "Missing Authorization",
308
+ "direct-db-access": "Direct Database Access Without Authorization",
309
+ "horizontal-priv-esc": "Horizontal Privilege Escalation",
310
+ "vertical-priv-esc": "Vertical Privilege Escalation",
311
+ };
312
+ const remediations = {
313
+ "bola": "Verify that the authenticated user owns or has permission to access the requested resource before performing any operation.",
314
+ "idor": "Implement object-level authorization checks. Validate that the user has permission to access the specific object referenced by the ID.",
315
+ "bfla": "Implement function-level access control. Verify that the user has the required role or permission before executing admin functions.",
316
+ "mass-assignment": "Use allowlists to specify which fields can be updated. Never directly pass user input to database operations.",
317
+ "race-condition-auth": "Use database transactions or locking mechanisms to prevent race conditions in authorization decisions.",
318
+ "privilege-escalation": "Never allow users to modify their own role or permissions. Implement server-side authorization for all privilege changes.",
319
+ "missing-auth": "Add authentication middleware to protect sensitive endpoints. Require valid credentials before processing requests.",
320
+ "missing-authz": "Add authorization checks after authentication. Verify the user has permission to perform the requested action.",
321
+ "direct-db-access": "Implement authorization middleware that validates permissions before any database operation.",
322
+ "horizontal-priv-esc": "Compare the resource's owner ID with the authenticated user's ID before allowing access.",
323
+ "vertical-priv-esc": "Implement strict server-side role validation. Never trust client-provided role or permission data.",
324
+ };
325
+ return {
326
+ vulnType,
327
+ name: vulnNames[vulnType],
328
+ description: details.description,
329
+ severity: SEVERITY_MAP[vulnType],
330
+ confidence: 70,
331
+ endpoint: endpoint.path,
332
+ method: endpoint.method,
333
+ file: endpoint.file,
334
+ line: endpoint.line,
335
+ authCheck: {
336
+ present: endpoint.hasAuth,
337
+ bypassable: endpoint.authzChecks.some((c) => c.potentiallyBypassable),
338
+ bypassReason: endpoint.authzChecks.find((c) => c.potentiallyBypassable)?.bypassReason,
339
+ },
340
+ resourceAccess: details.resourceAccess,
341
+ cweIds: CWE_MAP[vulnType],
342
+ owaspRefs: OWASP_MAP[vulnType],
343
+ remediation: remediations[vulnType],
344
+ };
345
+ }
346
+ /**
347
+ * Calculate confidence score for analysis
348
+ */
349
+ function calculateConfidence(endpoint, resourceAccesses, vulnerabilities) {
350
+ let confidence = 50;
351
+ // Higher confidence if we found clear patterns
352
+ if (endpoint.dbQueries.length > 0)
353
+ confidence += 15;
354
+ if (endpoint.authzChecks.length > 0)
355
+ confidence += 10;
356
+ if (resourceAccesses.length > 0)
357
+ confidence += 10;
358
+ if (vulnerabilities.length > 0)
359
+ confidence += 5;
360
+ // Lower confidence for complex endpoints
361
+ if (endpoint.pathParams.length > 3)
362
+ confidence -= 10;
363
+ return Math.max(0, Math.min(100, confidence));
364
+ }
365
+ /**
366
+ * Batch analyze multiple endpoints
367
+ */
368
+ export async function analyzeEndpoints(endpoints, projectPath) {
369
+ const analyses = [];
370
+ for (const endpoint of endpoints) {
371
+ try {
372
+ const analysis = await analyzeAuthorizationFlow(endpoint, projectPath);
373
+ analyses.push(analysis);
374
+ }
375
+ catch (error) {
376
+ logger.debug("auth_flow_analyzer.endpoint_error", {
377
+ endpoint: endpoint.path,
378
+ error: String(error),
379
+ });
380
+ }
381
+ }
382
+ return analyses;
383
+ }
384
+ //# sourceMappingURL=auth-flow-analyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-flow-analyzer.js","sourceRoot":"","sources":["../../../src/scanners/logic/auth-flow-analyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * API Endpoint Analyzer
3
+ *
4
+ * Extracts API endpoints from source code for various frameworks.
5
+ *
6
+ * @module scanners/logic/endpoint-analyzer
7
+ */
8
+ import type { APIEndpoint, WebFramework } from "./types.js";
9
+ /**
10
+ * Extract path parameters from route path
11
+ */
12
+ export declare function extractPathParams(path: string): string[];
13
+ /**
14
+ * Detect framework from package.json
15
+ */
16
+ export declare function detectFramework(projectPath: string): Promise<WebFramework>;
17
+ /**
18
+ * Extract all endpoints from a project
19
+ */
20
+ export declare function extractEndpoints(projectPath: string, options?: {
21
+ framework?: WebFramework;
22
+ include?: string[];
23
+ exclude?: string[];
24
+ }): Promise<APIEndpoint[]>;
25
+ /**
26
+ * Infer resource type from endpoint path
27
+ */
28
+ export declare function inferResourceType(path: string): string | undefined;
29
+ //# sourceMappingURL=endpoint-analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-analyzer.d.ts","sourceRoot":"","sources":["../../../src/scanners/logic/endpoint-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EAKb,MAAM,YAAY,CAAC;AA+JpB;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CA4BxD;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CA+BhF;AAwRD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IACR,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,GACA,OAAO,CAAC,WAAW,EAAE,CAAC,CAiCxB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA+BlE"}