@hoanghainh/komagu 1.8.0 → 2.0.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 (210) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +1 -1
  3. package/assess/lsa/CHANGELOG.md +6 -0
  4. package/assess/lsa/VERSION +1 -1
  5. package/assess/lsa/adapters/build_adapters.py +16 -8
  6. package/assess/lsa/adapters/codex/README.md +1 -1
  7. package/assess/lsa/adapters/generic/README.md +1 -1
  8. package/assess/lsa/examples/eval-run-4/ground-truth.json +823 -0
  9. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/ai-run-stats.json +58 -0
  10. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/coverage.json +85 -0
  11. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/findings/priv-privilege-001.json +822 -0
  12. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/findings/priv-privilege-002.json +393 -0
  13. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/findings.json +4477 -0
  14. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/mass-assignment.candidates.json +232 -0
  15. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/routes/routes-001.json +425 -0
  16. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/routes/routes-002.json +333 -0
  17. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/routes/routes-003.json +400 -0
  18. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/routes/routes-004.json +403 -0
  19. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/routes/routes-005.json +398 -0
  20. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/routes/routes-006.json +63 -0
  21. package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/score.json +120 -0
  22. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/ai-run-stats.json +55 -0
  23. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/coverage.json +50 -0
  24. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/findings/priv-privilege-001.json +613 -0
  25. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/findings/priv-privilege-002.json +287 -0
  26. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/findings.json +4870 -0
  27. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/mass-assignment.candidates.json +232 -0
  28. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/routes/routes-001.json +425 -0
  29. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/routes/routes-002.json +333 -0
  30. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/routes/routes-003.json +400 -0
  31. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/routes/routes-004.json +403 -0
  32. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/routes/routes-005.json +398 -0
  33. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/routes/routes-006.json +63 -0
  34. package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/score.json +107 -0
  35. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/ai-run-stats.json +58 -0
  36. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/coverage.json +92 -0
  37. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/findings/priv-privilege-001.json +645 -0
  38. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/findings/priv-privilege-002.json +222 -0
  39. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/findings.json +4859 -0
  40. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/mass-assignment.candidates.json +232 -0
  41. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/routes/routes-001.json +425 -0
  42. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/routes/routes-002.json +333 -0
  43. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/routes/routes-003.json +400 -0
  44. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/routes/routes-004.json +403 -0
  45. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/routes/routes-005.json +398 -0
  46. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/routes/routes-006.json +63 -0
  47. package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/score.json +121 -0
  48. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/coverage.json +111 -0
  49. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/findings/priv-privilege-001.json +6 -0
  50. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/findings/priv-privilege-002.json +344 -0
  51. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/findings.json +3544 -0
  52. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/mass-assignment.candidates.json +232 -0
  53. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/routes/routes-001.json +425 -0
  54. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/routes/routes-002.json +333 -0
  55. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/routes/routes-003.json +400 -0
  56. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/routes/routes-004.json +403 -0
  57. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/routes/routes-005.json +398 -0
  58. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/routes/routes-006.json +63 -0
  59. package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/score.json +123 -0
  60. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/ai-run-stats.json +50 -0
  61. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/coverage.json +42 -0
  62. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/findings/priv-privilege-001.json +540 -0
  63. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/findings/priv-privilege-002.json +238 -0
  64. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/findings.json +4383 -0
  65. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/findings.sarif +8729 -0
  66. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/mass-assignment.candidates.json +232 -0
  67. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/report.ja.md +1911 -0
  68. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/report.md +1911 -0
  69. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/routes/routes-001.json +425 -0
  70. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/routes/routes-002.json +333 -0
  71. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/routes/routes-003.json +400 -0
  72. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/routes/routes-004.json +403 -0
  73. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/routes/routes-005.json +398 -0
  74. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/routes/routes-006.json +63 -0
  75. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/score.json +101 -0
  76. package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/stack-profile.json +226 -0
  77. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/ai-run-stats.json +54 -0
  78. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/coverage.json +66 -0
  79. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/findings/priv-privilege-001.json +440 -0
  80. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/findings/priv-privilege-002.json +229 -0
  81. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/findings.json +3424 -0
  82. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/mass-assignment.candidates.json +232 -0
  83. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/routes/routes-001.json +425 -0
  84. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/routes/routes-002.json +333 -0
  85. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/routes/routes-003.json +400 -0
  86. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/routes/routes-004.json +403 -0
  87. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/routes/routes-005.json +398 -0
  88. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/routes/routes-006.json +63 -0
  89. package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/score.json +120 -0
  90. package/assess/lsa/examples/eval-run-5/gptoss-a/ai-run-stats.json +88 -0
  91. package/assess/lsa/examples/eval-run-5/gptoss-a/coverage.json +36 -0
  92. package/assess/lsa/examples/eval-run-5/gptoss-a/findings/priv-privilege-001.json +530 -0
  93. package/assess/lsa/examples/eval-run-5/gptoss-a/findings/priv-privilege-002.json +248 -0
  94. package/assess/lsa/examples/eval-run-5/gptoss-a/findings.json +4766 -0
  95. package/assess/lsa/examples/eval-run-5/gptoss-a/findings.sarif +9326 -0
  96. package/assess/lsa/examples/eval-run-5/gptoss-a/mass-assignment.candidates.json +232 -0
  97. package/assess/lsa/examples/eval-run-5/gptoss-a/report.ja.md +2011 -0
  98. package/assess/lsa/examples/eval-run-5/gptoss-a/report.md +2011 -0
  99. package/assess/lsa/examples/eval-run-5/gptoss-a/routes/routes-001.json +425 -0
  100. package/assess/lsa/examples/eval-run-5/gptoss-a/routes/routes-002.json +333 -0
  101. package/assess/lsa/examples/eval-run-5/gptoss-a/routes/routes-003.json +400 -0
  102. package/assess/lsa/examples/eval-run-5/gptoss-a/routes/routes-004.json +403 -0
  103. package/assess/lsa/examples/eval-run-5/gptoss-a/routes/routes-005.json +398 -0
  104. package/assess/lsa/examples/eval-run-5/gptoss-a/routes/routes-006.json +63 -0
  105. package/assess/lsa/examples/eval-run-5/gptoss-a/score.json +80 -0
  106. package/assess/lsa/examples/eval-run-5/gptoss-a/stack-profile.json +226 -0
  107. package/assess/lsa/examples/eval-run-5/gptoss-b/ai-run-stats.json +83 -0
  108. package/assess/lsa/examples/eval-run-5/gptoss-b/coverage.json +44 -0
  109. package/assess/lsa/examples/eval-run-5/gptoss-b/findings/priv-privilege-001.json +579 -0
  110. package/assess/lsa/examples/eval-run-5/gptoss-b/findings/priv-privilege-002.json +268 -0
  111. package/assess/lsa/examples/eval-run-5/gptoss-b/findings.json +3913 -0
  112. package/assess/lsa/examples/eval-run-5/gptoss-b/mass-assignment.candidates.json +232 -0
  113. package/assess/lsa/examples/eval-run-5/gptoss-b/routes/routes-001.json +425 -0
  114. package/assess/lsa/examples/eval-run-5/gptoss-b/routes/routes-002.json +333 -0
  115. package/assess/lsa/examples/eval-run-5/gptoss-b/routes/routes-003.json +400 -0
  116. package/assess/lsa/examples/eval-run-5/gptoss-b/routes/routes-004.json +403 -0
  117. package/assess/lsa/examples/eval-run-5/gptoss-b/routes/routes-005.json +398 -0
  118. package/assess/lsa/examples/eval-run-5/gptoss-b/routes/routes-006.json +63 -0
  119. package/assess/lsa/examples/eval-run-5/gptoss-b/score.json +94 -0
  120. package/assess/lsa/examples/eval-run-5/ground-truth.json +823 -0
  121. package/assess/lsa/knowledge/severity-and-cwe.md +1 -1
  122. package/assess/lsa/prompts/35-privilege-auditor.md +3 -1
  123. package/assess/lsa/scripts/baseline.py +5 -2
  124. package/assess/lsa/scripts/findings_to_sarif.py +24 -1
  125. package/assess/lsa/tests/EVAL-RESULTS.md +156 -0
  126. package/assess/lsa/tests/score_findings.py +58 -0
  127. package/assess/lsa/tests/test_adapters.py +21 -2
  128. package/assess/lsa/tests/test_baseline.py +8 -0
  129. package/assess/lsa/tests/test_contract_groundwork.py +7 -7
  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_privilege_tier2.py +30 -0
  133. package/operate/ai/anchoring.py +130 -0
  134. package/operate/ai/client.py +13 -0
  135. package/operate/ai/context.py +105 -0
  136. package/operate/ai/runner.py +197 -69
  137. package/operate/cli/__init__.py +1 -1
  138. package/operate/cli/commands/scan.py +3 -8
  139. package/operate/cli/commands/test.py +1 -1
  140. package/operate/cli/env.py +4 -20
  141. package/operate/cross_user_tester/persona_matrix.py +5 -1
  142. package/operate/devsecops/pipeline.py +5 -5
  143. package/operate/exploit/generator.py +5 -1
  144. package/operate/lsa_sarif/lsa_to_sarif.py +24 -2
  145. package/operate/lsa_sarif/sarif_findings.py +96 -0
  146. package/operate/remediator/runner.py +1 -5
  147. package/operate/remediator/strategies.py +1 -1
  148. package/operate/tests/test_ai_anchoring.py +184 -0
  149. package/operate/tests/test_cli_baseline.py +1 -9
  150. package/operate/tests/test_cli_env.py +8 -29
  151. package/operate/tests/test_cross_user_pipeline.py +2 -2
  152. package/operate/tests/test_exploit_and_virtual_patch.py +3 -3
  153. package/operate/tests/test_headless_ai.py +148 -1
  154. package/operate/tests/test_npm_package.py +2 -16
  155. package/operate/tests/test_sarif_from_scan.py +156 -0
  156. package/package.json +2 -4
  157. package/remediate/authz/README.md +1 -1
  158. package/remediate/authz/dotnet/src/Komagu.Security.Authorization/DefaultKomaguAuthorizationService.cs +1 -1
  159. package/remediate/authz/dotnet/src/Komagu.Security.Authorization/SecurityAuditEvent.cs +2 -2
  160. package/remediate/authz/golang/authz.go +1 -1
  161. package/remediate/authz/nodejs/src/service.js +1 -1
  162. package/remediate/authz/nodejs/tests/test-authz.js +1 -1
  163. package/remediate/authz/patcher.py +3 -4
  164. package/remediate/authz/python/komagu_authz/models.py +2 -2
  165. package/remediate/authz/python/tests/test_fastapi_adapter.py +1 -1
  166. package/remediate/authz/python/tests/test_fastapi_d5_crosstest.py +1 -1
  167. package/remediate/authz/python/tests/test_python_authz.py +3 -3
  168. package/remediate/authz/spring/src/main/kotlin/io/komagu/security/authorization/DefaultKomaguSecurityManager.kt +1 -1
  169. package/remediate/authz/spring/src/main/kotlin/io/komagu/security/authorization/SecurityAuditEvent.kt +1 -2
  170. package/remediate/authz/tests/test_bola_patcher.py +1 -1
  171. package/remediate/edge/coraza/rules/coraza-crs-custom.conf +3 -4
  172. package/remediate/edge/coraza/virtual_patcher.py +4 -6
  173. package/remediate/edge/docker-compose.yml +1 -1
  174. package/remediate/ekyc/server/jpki_verifier.py +2 -8
  175. package/remediate/ekyc/server/tokenization.py +2 -8
  176. package/remediate/identity/README.md +5 -5
  177. package/remediate/identity/dotnet/src/Komagu.Security.Identity/KomaguOidcOptions.cs +2 -2
  178. package/remediate/identity/dotnet/tests/Komagu.Security.Identity.Tests/TestTokenGenerator.cs +1 -1
  179. package/remediate/identity/dotnet/tests/Komagu.Security.Identity.Tests/TokenValidationTests.cs +1 -1
  180. package/remediate/identity/python/komagu_identity/oidc_validator.py +2 -8
  181. package/remediate/identity/python/tests/test_oidc_validator.py +1 -1
  182. package/remediate/identity/spring/src/main/kotlin/io/komagu/security/identity/KomaguOidcProperties.kt +2 -2
  183. package/remediate/identity/spring/src/test/kotlin/io/komagu/security/identity/KomaguIdentityAutoConfigurationTest.kt +2 -2
  184. package/remediate/identity/spring/src/test/kotlin/io/komagu/security/identity/TestJwtFactory.kt +1 -1
  185. package/remediate/identity/spring/src/test/kotlin/io/komagu/security/identity/TokenValidationIntegrationTest.kt +1 -1
  186. package/remediate/identity/test-env/realm-komagu.json +1 -1
  187. package/remediate/legacy_shims/coldfusion/KomaguSecurityShim.cfc +5 -5
  188. package/remediate/query/README.md +1 -1
  189. package/remediate/query/dotnet/src/Komagu.Security.Query.Analyzers/DiagnosticIds.cs +1 -1
  190. package/remediate/query/dotnet/src/Komagu.Security.Query.Analyzers/Komagu.Security.Query.Analyzers.csproj +1 -1
  191. package/remediate/query/spring/src/main/kotlin/io/komagu/security/query/detekt/KomaguRuleSetProvider.kt +1 -1
  192. package/remediate/resilience/dr/dr_manager.py +2 -8
  193. package/remediate/resilience/dr/runbook.md +2 -2
  194. package/remediate/resilience/terraform/variables.tf +1 -1
  195. package/remediate/tenancy/audit/audit_trail.py +2 -8
  196. package/remediate/tenancy/crypto/byok_manager.py +2 -8
  197. package/remediate/tenancy/middleware/tenant_context.py +2 -8
  198. package/remediate/tenancy/sql/rls_isolation.sql +11 -11
  199. package/remediate/tenancy/sql/schema_per_tenant.sql +7 -7
  200. package/remediate/tenancy/test_sql_postgres.py +1 -1
  201. package/remediate/tenancy/tests/test_tenancy.py +4 -4
  202. package/bin/komainu +0 -16
  203. package/bin/komainu-legacy.js +0 -16
  204. package/remediate/ekyc/tests/test_legacy_env.py +0 -33
  205. package/remediate/identity/python/tests/test_legacy_env.py +0 -33
  206. package/remediate/identity/spring/src/main/kotlin/io/komagu/security/identity/LegacyKomainuPropertiesPostProcessor.kt +0 -60
  207. package/remediate/identity/spring/src/main/resources/META-INF/spring.factories +0 -2
  208. package/remediate/identity/spring/src/test/kotlin/io/komagu/security/identity/LegacyKomainuPropertiesPostProcessorTest.kt +0 -86
  209. package/remediate/resilience/tests/test_legacy_env.py +0 -33
  210. package/remediate/tenancy/tests/test_legacy_env.py +0 -49
@@ -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,80 @@
1
+ {
2
+ "per_category": {
3
+ "bola": {
4
+ "truth_vulnerable": 25,
5
+ "found": 24,
6
+ "recall": 0.96,
7
+ "false_positive_on_safe_code": [],
8
+ "missed": [
9
+ "perl-cgi/cgi-bin/order.cgi:19"
10
+ ]
11
+ },
12
+ "injection": {
13
+ "truth_vulnerable": 34,
14
+ "found": 34,
15
+ "recall": 1.0,
16
+ "false_positive_on_safe_code": [],
17
+ "missed": []
18
+ },
19
+ "bfla": {
20
+ "truth_vulnerable": 10,
21
+ "found": 10,
22
+ "recall": 1.0,
23
+ "false_positive_on_safe_code": [],
24
+ "missed": []
25
+ },
26
+ "mass_assignment": {
27
+ "truth_vulnerable": 15,
28
+ "found": 10,
29
+ "recall": 0.667,
30
+ "false_positive_on_safe_code": [],
31
+ "missed": [
32
+ "php-plain/profile.php:6",
33
+ "php-plain/profile.php:10",
34
+ "php-plain/register.php:4",
35
+ "dotnet-legacy/Web/Controllers/CustomerController.cs:12",
36
+ "dotnet-legacy/Web/Controllers/CustomerController.cs:30"
37
+ ]
38
+ }
39
+ },
40
+ "active_findings": 99,
41
+ "matched_findings": 81,
42
+ "precision": 0.818,
43
+ "unmatched_findings": [
44
+ "BFLA-R-0003-1",
45
+ "BFLA-R-0063-1",
46
+ "BOLA-R-0007",
47
+ "BOLA-R-0009",
48
+ "BOLA-R-0010",
49
+ "BOLA-R-0011",
50
+ "BOLA-R-0012",
51
+ "BOLA-R-0020",
52
+ "BOLA-R-0021",
53
+ "BOLA-R-0022",
54
+ "BOLA-R-0023",
55
+ "BOLA-R-0029",
56
+ "BOLA-R-0030",
57
+ "BOLA-R-0059-1",
58
+ "BOLA-R-0066-1",
59
+ "BOLA-R-0067-1",
60
+ "BOLA-R-0073",
61
+ "BOLA-R-0074"
62
+ ],
63
+ "needs_review_not_scored": [],
64
+ "verdict_level": {
65
+ "bfla": {
66
+ "truth_vulnerable": 10,
67
+ "found": 10,
68
+ "recall": 1.0,
69
+ "flagged_safe": [],
70
+ "missed": []
71
+ },
72
+ "mass_assignment": {
73
+ "truth_vulnerable": 15,
74
+ "found": 15,
75
+ "recall": 1.0,
76
+ "flagged_safe": [],
77
+ "missed": []
78
+ }
79
+ }
80
+ }