@hoanghainh/komagu 2.0.0 → 2.1.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 (143) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +1 -1
  3. package/assess/lsa/examples/eval-run-4/ground-truth.json +823 -0
  4. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/ai-run-stats.json +58 -0
  5. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/coverage.json +85 -0
  6. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/findings/priv-privilege-001.json +822 -0
  7. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/findings/priv-privilege-002.json +393 -0
  8. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/findings.json +4477 -0
  9. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/mass-assignment.candidates.json +232 -0
  10. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/routes/routes-001.json +425 -0
  11. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/routes/routes-002.json +333 -0
  12. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/routes/routes-003.json +400 -0
  13. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/routes/routes-004.json +403 -0
  14. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/routes/routes-005.json +398 -0
  15. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/routes/routes-006.json +63 -0
  16. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/score.json +120 -0
  17. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/ai-run-stats.json +55 -0
  18. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/coverage.json +50 -0
  19. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/findings/priv-privilege-001.json +613 -0
  20. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/findings/priv-privilege-002.json +287 -0
  21. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/findings.json +4870 -0
  22. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/mass-assignment.candidates.json +232 -0
  23. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/routes/routes-001.json +425 -0
  24. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/routes/routes-002.json +333 -0
  25. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/routes/routes-003.json +400 -0
  26. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/routes/routes-004.json +403 -0
  27. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/routes/routes-005.json +398 -0
  28. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/routes/routes-006.json +63 -0
  29. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/score.json +107 -0
  30. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/ai-run-stats.json +58 -0
  31. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/coverage.json +92 -0
  32. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/findings/priv-privilege-001.json +645 -0
  33. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/findings/priv-privilege-002.json +222 -0
  34. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/findings.json +4859 -0
  35. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/mass-assignment.candidates.json +232 -0
  36. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/routes/routes-001.json +425 -0
  37. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/routes/routes-002.json +333 -0
  38. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/routes/routes-003.json +400 -0
  39. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/routes/routes-004.json +403 -0
  40. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/routes/routes-005.json +398 -0
  41. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/routes/routes-006.json +63 -0
  42. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/score.json +121 -0
  43. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/coverage.json +111 -0
  44. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/findings/priv-privilege-001.json +6 -0
  45. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/findings/priv-privilege-002.json +344 -0
  46. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/findings.json +3544 -0
  47. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/mass-assignment.candidates.json +232 -0
  48. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/routes/routes-001.json +425 -0
  49. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/routes/routes-002.json +333 -0
  50. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/routes/routes-003.json +400 -0
  51. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/routes/routes-004.json +403 -0
  52. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/routes/routes-005.json +398 -0
  53. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/routes/routes-006.json +63 -0
  54. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/score.json +123 -0
  55. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/ai-run-stats.json +50 -0
  56. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/coverage.json +42 -0
  57. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/findings/priv-privilege-001.json +540 -0
  58. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/findings/priv-privilege-002.json +238 -0
  59. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/findings.json +4383 -0
  60. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/findings.sarif +8729 -0
  61. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/mass-assignment.candidates.json +232 -0
  62. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/report.ja.md +1911 -0
  63. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/report.md +1911 -0
  64. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/routes/routes-001.json +425 -0
  65. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/routes/routes-002.json +333 -0
  66. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/routes/routes-003.json +400 -0
  67. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/routes/routes-004.json +403 -0
  68. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/routes/routes-005.json +398 -0
  69. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/routes/routes-006.json +63 -0
  70. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/score.json +101 -0
  71. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/stack-profile.json +226 -0
  72. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/ai-run-stats.json +54 -0
  73. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/coverage.json +66 -0
  74. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/findings/priv-privilege-001.json +440 -0
  75. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/findings/priv-privilege-002.json +229 -0
  76. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/findings.json +3424 -0
  77. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/mass-assignment.candidates.json +232 -0
  78. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/routes/routes-001.json +425 -0
  79. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/routes/routes-002.json +333 -0
  80. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/routes/routes-003.json +400 -0
  81. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/routes/routes-004.json +403 -0
  82. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/routes/routes-005.json +398 -0
  83. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/routes/routes-006.json +63 -0
  84. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/score.json +120 -0
  85. package/assess/lsa/examples/eval-run-5/gptoss-a/ai-run-stats.json +88 -0
  86. package/assess/lsa/examples/eval-run-5/gptoss-a/coverage.json +36 -0
  87. package/assess/lsa/examples/eval-run-5/gptoss-a/findings/priv-privilege-001.json +530 -0
  88. package/assess/lsa/examples/eval-run-5/gptoss-a/findings/priv-privilege-002.json +248 -0
  89. package/assess/lsa/examples/eval-run-5/gptoss-a/findings.json +4766 -0
  90. package/assess/lsa/examples/eval-run-5/gptoss-a/findings.sarif +9326 -0
  91. package/assess/lsa/examples/eval-run-5/gptoss-a/mass-assignment.candidates.json +232 -0
  92. package/assess/lsa/examples/eval-run-5/gptoss-a/report.ja.md +2011 -0
  93. package/assess/lsa/examples/eval-run-5/gptoss-a/report.md +2011 -0
  94. package/assess/lsa/examples/eval-run-5/gptoss-a/routes/routes-001.json +425 -0
  95. package/assess/lsa/examples/eval-run-5/gptoss-a/routes/routes-002.json +333 -0
  96. package/assess/lsa/examples/eval-run-5/gptoss-a/routes/routes-003.json +400 -0
  97. package/assess/lsa/examples/eval-run-5/gptoss-a/routes/routes-004.json +403 -0
  98. package/assess/lsa/examples/eval-run-5/gptoss-a/routes/routes-005.json +398 -0
  99. package/assess/lsa/examples/eval-run-5/gptoss-a/routes/routes-006.json +63 -0
  100. package/assess/lsa/examples/eval-run-5/gptoss-a/score.json +80 -0
  101. package/assess/lsa/examples/eval-run-5/gptoss-a/stack-profile.json +226 -0
  102. package/assess/lsa/examples/eval-run-5/gptoss-b/ai-run-stats.json +83 -0
  103. package/assess/lsa/examples/eval-run-5/gptoss-b/coverage.json +44 -0
  104. package/assess/lsa/examples/eval-run-5/gptoss-b/findings/priv-privilege-001.json +579 -0
  105. package/assess/lsa/examples/eval-run-5/gptoss-b/findings/priv-privilege-002.json +268 -0
  106. package/assess/lsa/examples/eval-run-5/gptoss-b/findings.json +3913 -0
  107. package/assess/lsa/examples/eval-run-5/gptoss-b/mass-assignment.candidates.json +232 -0
  108. package/assess/lsa/examples/eval-run-5/gptoss-b/routes/routes-001.json +425 -0
  109. package/assess/lsa/examples/eval-run-5/gptoss-b/routes/routes-002.json +333 -0
  110. package/assess/lsa/examples/eval-run-5/gptoss-b/routes/routes-003.json +400 -0
  111. package/assess/lsa/examples/eval-run-5/gptoss-b/routes/routes-004.json +403 -0
  112. package/assess/lsa/examples/eval-run-5/gptoss-b/routes/routes-005.json +398 -0
  113. package/assess/lsa/examples/eval-run-5/gptoss-b/routes/routes-006.json +63 -0
  114. package/assess/lsa/examples/eval-run-5/gptoss-b/score.json +94 -0
  115. package/assess/lsa/examples/eval-run-5/ground-truth.json +823 -0
  116. package/assess/lsa/knowledge/injection-patterns.md +8 -1
  117. package/assess/lsa/knowledge/stacks/nextjs.md +62 -0
  118. package/assess/lsa/prompts/35-privilege-auditor.md +3 -1
  119. package/assess/lsa/prompts/_shared-rules.md +1 -0
  120. package/assess/lsa/scripts/detect_stack.py +5 -1
  121. package/assess/lsa/scripts/find_injection.py +34 -5
  122. package/assess/lsa/scripts/lsa_common.py +9 -2
  123. package/assess/lsa/scripts/make_batches.py +2 -1
  124. package/assess/lsa/scripts/map_routes.py +10 -2
  125. package/assess/lsa/scripts/nextjs_routes.py +236 -0
  126. package/assess/lsa/templates/audit-config.json +1 -1
  127. package/assess/lsa/tests/EVAL-RESULTS.md +156 -0
  128. package/assess/lsa/tests/score_findings.py +58 -0
  129. package/assess/lsa/tests/test_default_scope.py +86 -0
  130. package/assess/lsa/tests/test_eval_run_4.py +73 -0
  131. package/assess/lsa/tests/test_eval_run_5.py +73 -0
  132. package/assess/lsa/tests/test_js_tagged_sql.py +112 -0
  133. package/assess/lsa/tests/test_nextjs.py +198 -0
  134. package/assess/lsa/tests/test_privilege_tier2.py +30 -0
  135. package/operate/ai/anchoring.py +130 -0
  136. package/operate/ai/client.py +13 -0
  137. package/operate/ai/context.py +105 -0
  138. package/operate/ai/runner.py +197 -69
  139. package/operate/cli/__init__.py +1 -1
  140. package/operate/cli/commands/scan.py +1 -1
  141. package/operate/tests/test_ai_anchoring.py +184 -0
  142. package/operate/tests/test_headless_ai.py +148 -1
  143. package/package.json +1 -1
@@ -0,0 +1,398 @@
1
+ {
2
+ "routes": [
3
+ {
4
+ "route_id": "R-0072",
5
+ "method": [
6
+ "POST"
7
+ ],
8
+ "path": "/users",
9
+ "path_source": "declared",
10
+ "handler": {
11
+ "file": "python-flask/profile.py",
12
+ "line": 8
13
+ },
14
+ "id_inputs": [
15
+ {
16
+ "name": "id",
17
+ "source": "path"
18
+ }
19
+ ],
20
+ "guards": [],
21
+ "data_ops": [
22
+ {
23
+ "op": "read"
24
+ }
25
+ ],
26
+ "needs_bola_audit": true
27
+ },
28
+ {
29
+ "route_id": "R-0073",
30
+ "method": [
31
+ "POST"
32
+ ],
33
+ "path": "/users/<int:uid>/name",
34
+ "path_source": "declared",
35
+ "handler": {
36
+ "file": "python-flask/profile.py",
37
+ "line": 16
38
+ },
39
+ "id_inputs": [
40
+ {
41
+ "name": "uid",
42
+ "source": "path"
43
+ }
44
+ ],
45
+ "guards": [],
46
+ "data_ops": [
47
+ {
48
+ "op": "read"
49
+ }
50
+ ],
51
+ "needs_bola_audit": true
52
+ },
53
+ {
54
+ "route_id": "R-0074",
55
+ "method": [
56
+ "PATCH"
57
+ ],
58
+ "path": "/users/<int:uid>",
59
+ "path_source": "declared",
60
+ "handler": {
61
+ "file": "python-flask/profile.py",
62
+ "line": 24
63
+ },
64
+ "id_inputs": [
65
+ {
66
+ "name": "uid",
67
+ "source": "path"
68
+ }
69
+ ],
70
+ "guards": [],
71
+ "data_ops": [
72
+ {
73
+ "op": "read"
74
+ }
75
+ ],
76
+ "needs_bola_audit": true
77
+ },
78
+ {
79
+ "route_id": "R-0010",
80
+ "method": [
81
+ "POST"
82
+ ],
83
+ "path": "/Customer/Edit",
84
+ "path_source": "declared",
85
+ "handler": {
86
+ "file": "dotnet-legacy/Web/Controllers/CustomerController.cs",
87
+ "line": 12
88
+ },
89
+ "id_inputs": [
90
+ {
91
+ "name": "customer",
92
+ "source": "any"
93
+ }
94
+ ],
95
+ "guards": [],
96
+ "data_ops": [
97
+ {
98
+ "op": "read"
99
+ }
100
+ ],
101
+ "needs_bola_audit": true
102
+ },
103
+ {
104
+ "route_id": "R-0011",
105
+ "method": [
106
+ "POST",
107
+ "POST"
108
+ ],
109
+ "path": "/Customer/EditName",
110
+ "path_source": "declared",
111
+ "handler": {
112
+ "file": "dotnet-legacy/Web/Controllers/CustomerController.cs",
113
+ "line": 20
114
+ },
115
+ "id_inputs": [
116
+ {
117
+ "name": "id",
118
+ "source": "path"
119
+ }
120
+ ],
121
+ "guards": [],
122
+ "data_ops": [
123
+ {
124
+ "op": "read"
125
+ }
126
+ ],
127
+ "needs_bola_audit": true
128
+ },
129
+ {
130
+ "route_id": "R-0012",
131
+ "method": [
132
+ "POST",
133
+ "POST"
134
+ ],
135
+ "path": "/Customer/Refresh",
136
+ "path_source": "declared",
137
+ "handler": {
138
+ "file": "dotnet-legacy/Web/Controllers/CustomerController.cs",
139
+ "line": 27
140
+ },
141
+ "id_inputs": [
142
+ {
143
+ "name": "id",
144
+ "source": "any"
145
+ }
146
+ ],
147
+ "guards": [],
148
+ "data_ops": [
149
+ {
150
+ "op": "read"
151
+ }
152
+ ],
153
+ "needs_bola_audit": true
154
+ },
155
+ {
156
+ "route_id": "R-0016",
157
+ "method": [
158
+ "ANY"
159
+ ],
160
+ "path": "/dotnet-legacy/Web/Handlers/GetFile.ashx",
161
+ "path_source": "declared",
162
+ "handler": {
163
+ "file": "dotnet-legacy/Web/Handlers/GetFile.ashx",
164
+ "line": 1
165
+ },
166
+ "id_inputs": [
167
+ {
168
+ "name": "file_id",
169
+ "source": "query"
170
+ }
171
+ ],
172
+ "guards": [],
173
+ "data_ops": [
174
+ {
175
+ "op": "read"
176
+ }
177
+ ],
178
+ "needs_bola_audit": true
179
+ },
180
+ {
181
+ "route_id": "R-0029",
182
+ "method": [
183
+ "POST"
184
+ ],
185
+ "path": "<see web.xml servlet-mapping>",
186
+ "path_source": "declared",
187
+ "handler": {
188
+ "file": "java-legacy/src/com/acme/web/ProfileServlet.java",
189
+ "line": 9
190
+ },
191
+ "id_inputs": [
192
+ {
193
+ "name": "id",
194
+ "source": "path"
195
+ }
196
+ ],
197
+ "guards": [],
198
+ "data_ops": [
199
+ {
200
+ "op": "read"
201
+ }
202
+ ],
203
+ "needs_bola_audit": true
204
+ },
205
+ {
206
+ "route_id": "R-0039",
207
+ "method": [
208
+ "PUT"
209
+ ],
210
+ "path": "/profile",
211
+ "path_source": "declared",
212
+ "handler": {
213
+ "file": "node-express/routes/profile.js",
214
+ "line": 7
215
+ },
216
+ "id_inputs": [
217
+ {
218
+ "name": "id",
219
+ "source": "path"
220
+ }
221
+ ],
222
+ "guards": [],
223
+ "data_ops": [
224
+ {
225
+ "op": "read"
226
+ }
227
+ ],
228
+ "needs_bola_audit": true
229
+ },
230
+ {
231
+ "route_id": "R-0040",
232
+ "method": [
233
+ "PUT"
234
+ ],
235
+ "path": "/profile/name",
236
+ "path_source": "declared",
237
+ "handler": {
238
+ "file": "node-express/routes/profile.js",
239
+ "line": 11
240
+ },
241
+ "id_inputs": [
242
+ {
243
+ "name": "name",
244
+ "source": "body"
245
+ }
246
+ ],
247
+ "guards": [],
248
+ "data_ops": [
249
+ {
250
+ "op": "read"
251
+ }
252
+ ],
253
+ "needs_bola_audit": true
254
+ },
255
+ {
256
+ "route_id": "R-0041",
257
+ "method": [
258
+ "POST"
259
+ ],
260
+ "path": "/signup",
261
+ "path_source": "declared",
262
+ "handler": {
263
+ "file": "node-express/routes/profile.js",
264
+ "line": 15
265
+ },
266
+ "id_inputs": [
267
+ {
268
+ "name": "id",
269
+ "source": "path"
270
+ }
271
+ ],
272
+ "guards": [],
273
+ "data_ops": [
274
+ {
275
+ "op": "read"
276
+ }
277
+ ],
278
+ "needs_bola_audit": true
279
+ },
280
+ {
281
+ "route_id": "R-0042",
282
+ "method": [
283
+ "POST"
284
+ ],
285
+ "path": "/profile/settings",
286
+ "path_source": "declared",
287
+ "handler": {
288
+ "file": "node-express/routes/profile.js",
289
+ "line": 20
290
+ },
291
+ "id_inputs": [
292
+ {
293
+ "name": "theme",
294
+ "source": "body"
295
+ }
296
+ ],
297
+ "guards": [],
298
+ "data_ops": [
299
+ {
300
+ "op": "read"
301
+ }
302
+ ],
303
+ "needs_bola_audit": true
304
+ },
305
+ {
306
+ "route_id": "R-0063",
307
+ "method": [
308
+ "POST"
309
+ ],
310
+ "path": "/php-plain/profile.php",
311
+ "path_source": "declared",
312
+ "handler": {
313
+ "file": "php-plain/profile.php",
314
+ "line": 1
315
+ },
316
+ "id_inputs": [
317
+ {
318
+ "name": "nickname",
319
+ "source": "form"
320
+ },
321
+ {
322
+ "name": "role",
323
+ "source": "form"
324
+ }
325
+ ],
326
+ "guards": [],
327
+ "data_ops": [
328
+ {
329
+ "op": "read"
330
+ }
331
+ ],
332
+ "needs_bola_audit": true
333
+ },
334
+ {
335
+ "route_id": "R-0068",
336
+ "method": [
337
+ "POST"
338
+ ],
339
+ "path": "/php-plain/admin/settings.php",
340
+ "path_source": "declared",
341
+ "handler": {
342
+ "file": "php-plain/admin/settings.php",
343
+ "line": 1
344
+ },
345
+ "id_inputs": [
346
+ {
347
+ "name": "value",
348
+ "source": "form"
349
+ },
350
+ {
351
+ "name": "name",
352
+ "source": "form"
353
+ }
354
+ ],
355
+ "guards": [],
356
+ "data_ops": [
357
+ {
358
+ "op": "read"
359
+ }
360
+ ],
361
+ "needs_bola_audit": true
362
+ },
363
+ {
364
+ "route_id": "R-0060",
365
+ "method": [
366
+ "GET"
367
+ ],
368
+ "path": "/php-plain/mongo_find.php",
369
+ "path_source": "declared",
370
+ "handler": {
371
+ "file": "php-plain/mongo_find.php",
372
+ "line": 1
373
+ },
374
+ "id_inputs": [
375
+ {
376
+ "name": "login",
377
+ "source": "query"
378
+ },
379
+ {
380
+ "name": "pass",
381
+ "source": "query"
382
+ },
383
+ {
384
+ "name": "n",
385
+ "source": "query"
386
+ }
387
+ ],
388
+ "guards": [],
389
+ "data_ops": [
390
+ {
391
+ "op": "read"
392
+ }
393
+ ],
394
+ "needs_bola_audit": true
395
+ }
396
+ ],
397
+ "rejected": []
398
+ }
@@ -0,0 +1,63 @@
1
+ {
2
+ "routes": [
3
+ {
4
+ "route_id": "R-0064",
5
+ "method": [
6
+ "ANY"
7
+ ],
8
+ "path": "/php-plain/register.php",
9
+ "path_source": "declared",
10
+ "handler": {
11
+ "file": "php-plain/register.php",
12
+ "line": 1
13
+ },
14
+ "id_inputs": [
15
+ {
16
+ "name": "id",
17
+ "source": "path"
18
+ }
19
+ ],
20
+ "guards": [],
21
+ "data_ops": [
22
+ {
23
+ "op": "read"
24
+ }
25
+ ],
26
+ "needs_bola_audit": true
27
+ },
28
+ {
29
+ "route_id": "R-0065",
30
+ "method": [
31
+ "GET"
32
+ ],
33
+ "path": "/php-plain/search.php",
34
+ "path_source": "declared",
35
+ "handler": {
36
+ "file": "php-plain/search.php",
37
+ "line": 1
38
+ },
39
+ "id_inputs": [
40
+ {
41
+ "name": "q",
42
+ "source": "query"
43
+ },
44
+ {
45
+ "name": "sort",
46
+ "source": "query"
47
+ },
48
+ {
49
+ "name": "cat",
50
+ "source": "query"
51
+ }
52
+ ],
53
+ "guards": [],
54
+ "data_ops": [
55
+ {
56
+ "op": "read"
57
+ }
58
+ ],
59
+ "needs_bola_audit": true
60
+ }
61
+ ],
62
+ "rejected": []
63
+ }
@@ -0,0 +1,94 @@
1
+ {
2
+ "per_category": {
3
+ "bola": {
4
+ "truth_vulnerable": 25,
5
+ "found": 12,
6
+ "recall": 0.48,
7
+ "false_positive_on_safe_code": [],
8
+ "missed": [
9
+ "java-legacy/WebContent/order/detail.jsp:5",
10
+ "java-legacy/src/com/acme/struts/EditUserAction.java:13",
11
+ "java-legacy/src/com/acme/web/OrderServlet.java:15",
12
+ "perl-cgi/cgi-bin/order.cgi:19",
13
+ "dotnet-legacy/Web/Orders/EditOrder.aspx.vb:8",
14
+ "dotnet-legacy/Web/Orders/OrderDetail.aspx.cs:13",
15
+ "dotnet-legacy/Web/Controllers/InvoiceController.cs:13",
16
+ "dotnet-legacy/Web/Controllers/InvoiceController.cs:28",
17
+ "classic-asp/shop/member.asp:7",
18
+ "classic-asp/shop/member.asp:10",
19
+ "classic-asp/shop/order.asp:6",
20
+ "coldfusion/app/OrderService.cfc:5",
21
+ "coldfusion/app/order.cfm:3"
22
+ ]
23
+ },
24
+ "injection": {
25
+ "truth_vulnerable": 34,
26
+ "found": 32,
27
+ "recall": 0.941,
28
+ "false_positive_on_safe_code": [],
29
+ "missed": [
30
+ "php-plain/mongo_find.php:5",
31
+ "php-plain/mongo_find.php:6"
32
+ ]
33
+ },
34
+ "bfla": {
35
+ "truth_vulnerable": 10,
36
+ "found": 9,
37
+ "recall": 0.9,
38
+ "false_positive_on_safe_code": [],
39
+ "missed": [
40
+ "php-plain/admin/delete_user.php:6"
41
+ ]
42
+ },
43
+ "mass_assignment": {
44
+ "truth_vulnerable": 15,
45
+ "found": 14,
46
+ "recall": 0.933,
47
+ "false_positive_on_safe_code": [],
48
+ "missed": [
49
+ "php-plain/register.php:4"
50
+ ]
51
+ }
52
+ },
53
+ "active_findings": 86,
54
+ "matched_findings": 67,
55
+ "precision": 0.779,
56
+ "unmatched_findings": [
57
+ "BFLA-R-0003-1",
58
+ "BFLA-R-0063-1",
59
+ "BFLA-R-0066-1",
60
+ "BOLA-R-0010",
61
+ "BOLA-R-0011",
62
+ "BOLA-R-0012",
63
+ "BOLA-R-0020",
64
+ "BOLA-R-0021",
65
+ "BOLA-R-0022",
66
+ "BOLA-R-0023",
67
+ "BOLA-R-0028",
68
+ "BOLA-R-0029",
69
+ "BOLA-R-0030",
70
+ "BOLA-R-0035",
71
+ "BOLA-R-0059-1",
72
+ "BOLA-R-0066-1",
73
+ "BOLA-R-0067-1",
74
+ "BOLA-R-0073",
75
+ "BOLA-R-0074"
76
+ ],
77
+ "needs_review_not_scored": [],
78
+ "verdict_level": {
79
+ "bfla": {
80
+ "truth_vulnerable": 10,
81
+ "found": 10,
82
+ "recall": 1.0,
83
+ "flagged_safe": [],
84
+ "missed": []
85
+ },
86
+ "mass_assignment": {
87
+ "truth_vulnerable": 15,
88
+ "found": 15,
89
+ "recall": 1.0,
90
+ "flagged_safe": [],
91
+ "missed": []
92
+ }
93
+ }
94
+ }