@hoanghainh/komagu 2.5.0 → 2.6.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 (225) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/assess/lsa/examples/eval-run-6/gptoss-a/ai-run-stats.json +87 -0
  3. package/assess/lsa/examples/eval-run-6/gptoss-a/auth-model.md +120 -0
  4. package/assess/lsa/examples/eval-run-6/gptoss-a/batches/index.json +60 -0
  5. package/assess/lsa/examples/eval-run-6/gptoss-a/batches/injection-001.json +383 -0
  6. package/assess/lsa/examples/eval-run-6/gptoss-a/batches/injection-002.json +205 -0
  7. package/assess/lsa/examples/eval-run-6/gptoss-a/batches/privilege-001.json +838 -0
  8. package/assess/lsa/examples/eval-run-6/gptoss-a/batches/privilege-002.json +124 -0
  9. package/assess/lsa/examples/eval-run-6/gptoss-a/batches/routes-001.json +778 -0
  10. package/assess/lsa/examples/eval-run-6/gptoss-a/batches/routes-002.json +546 -0
  11. package/assess/lsa/examples/eval-run-6/gptoss-a/batches/routes-003.json +661 -0
  12. package/assess/lsa/examples/eval-run-6/gptoss-a/batches/routes-004.json +659 -0
  13. package/assess/lsa/examples/eval-run-6/gptoss-a/batches/routes-005.json +612 -0
  14. package/assess/lsa/examples/eval-run-6/gptoss-a/batches/routes-006.json +106 -0
  15. package/assess/lsa/examples/eval-run-6/gptoss-a/coverage.json +19 -0
  16. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/bola-routes-001.json +516 -0
  17. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/bola-routes-002.json +332 -0
  18. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/bola-routes-003.json +218 -0
  19. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/bola-routes-004.json +561 -0
  20. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/bola-routes-005.json +316 -0
  21. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/bola-routes-006.json +14 -0
  22. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/inj-injection-001.json +782 -0
  23. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/inj-injection-002.json +418 -0
  24. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/priv-privilege-001.json +627 -0
  25. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/priv-privilege-002.json +253 -0
  26. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/verified-1.json +68 -0
  27. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/verified-10.json +68 -0
  28. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/verified-11.json +61 -0
  29. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/verified-12.json +60 -0
  30. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/verified-13.json +60 -0
  31. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/verified-14.json +66 -0
  32. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/verified-15.json +69 -0
  33. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/verified-16.json +60 -0
  34. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/verified-17.json +61 -0
  35. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/verified-18.json +69 -0
  36. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/verified-19.json +64 -0
  37. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/verified-2.json +60 -0
  38. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/verified-20.json +60 -0
  39. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/verified-21.json +61 -0
  40. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/verified-22.json +50 -0
  41. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/verified-3.json +60 -0
  42. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/verified-4.json +60 -0
  43. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/verified-5.json +60 -0
  44. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/verified-6.json +70 -0
  45. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/verified-7.json +60 -0
  46. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/verified-8.json +60 -0
  47. package/assess/lsa/examples/eval-run-6/gptoss-a/findings/verified-9.json +60 -0
  48. package/assess/lsa/examples/eval-run-6/gptoss-a/findings.json +4857 -0
  49. package/assess/lsa/examples/eval-run-6/gptoss-a/mass-assignment.candidates.json +232 -0
  50. package/assess/lsa/examples/eval-run-6/gptoss-a/report.ja.md +2112 -0
  51. package/assess/lsa/examples/eval-run-6/gptoss-a/report.md +2112 -0
  52. package/assess/lsa/examples/eval-run-6/gptoss-a/routes/routes-001.json +425 -0
  53. package/assess/lsa/examples/eval-run-6/gptoss-a/routes/routes-002.json +333 -0
  54. package/assess/lsa/examples/eval-run-6/gptoss-a/routes/routes-003.json +400 -0
  55. package/assess/lsa/examples/eval-run-6/gptoss-a/routes/routes-004.json +403 -0
  56. package/assess/lsa/examples/eval-run-6/gptoss-a/routes/routes-005.json +398 -0
  57. package/assess/lsa/examples/eval-run-6/gptoss-a/routes/routes-006.json +63 -0
  58. package/assess/lsa/examples/eval-run-6/gptoss-a/score.json +82 -0
  59. package/assess/lsa/examples/eval-run-6/gptoss-a/stack-profile.json +225 -0
  60. package/assess/lsa/examples/eval-run-6/gptoss-b/ai-run-stats.json +91 -0
  61. package/assess/lsa/examples/eval-run-6/gptoss-b/auth-model.md +120 -0
  62. package/assess/lsa/examples/eval-run-6/gptoss-b/batches/index.json +60 -0
  63. package/assess/lsa/examples/eval-run-6/gptoss-b/batches/injection-001.json +383 -0
  64. package/assess/lsa/examples/eval-run-6/gptoss-b/batches/injection-002.json +205 -0
  65. package/assess/lsa/examples/eval-run-6/gptoss-b/batches/privilege-001.json +838 -0
  66. package/assess/lsa/examples/eval-run-6/gptoss-b/batches/privilege-002.json +124 -0
  67. package/assess/lsa/examples/eval-run-6/gptoss-b/batches/routes-001.json +778 -0
  68. package/assess/lsa/examples/eval-run-6/gptoss-b/batches/routes-002.json +546 -0
  69. package/assess/lsa/examples/eval-run-6/gptoss-b/batches/routes-003.json +661 -0
  70. package/assess/lsa/examples/eval-run-6/gptoss-b/batches/routes-004.json +659 -0
  71. package/assess/lsa/examples/eval-run-6/gptoss-b/batches/routes-005.json +612 -0
  72. package/assess/lsa/examples/eval-run-6/gptoss-b/batches/routes-006.json +106 -0
  73. package/assess/lsa/examples/eval-run-6/gptoss-b/coverage.json +21 -0
  74. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/bola-routes-001.json +593 -0
  75. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/bola-routes-002.json +367 -0
  76. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/bola-routes-003.json +207 -0
  77. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/bola-routes-004.json +477 -0
  78. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/bola-routes-005.json +341 -0
  79. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/bola-routes-006.json +14 -0
  80. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/inj-injection-001.json +821 -0
  81. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/inj-injection-002.json +410 -0
  82. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/priv-privilege-001.json +649 -0
  83. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/priv-privilege-002.json +222 -0
  84. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/verified-1.json +60 -0
  85. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/verified-10.json +67 -0
  86. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/verified-11.json +68 -0
  87. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/verified-12.json +60 -0
  88. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/verified-13.json +60 -0
  89. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/verified-14.json +64 -0
  90. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/verified-15.json +70 -0
  91. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/verified-16.json +60 -0
  92. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/verified-17.json +61 -0
  93. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/verified-18.json +60 -0
  94. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/verified-19.json +65 -0
  95. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/verified-2.json +60 -0
  96. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/verified-20.json +60 -0
  97. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/verified-21.json +62 -0
  98. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/verified-22.json +50 -0
  99. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/verified-3.json +60 -0
  100. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/verified-4.json +60 -0
  101. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/verified-5.json +60 -0
  102. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/verified-6.json +60 -0
  103. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/verified-7.json +64 -0
  104. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/verified-8.json +60 -0
  105. package/assess/lsa/examples/eval-run-6/gptoss-b/findings/verified-9.json +60 -0
  106. package/assess/lsa/examples/eval-run-6/gptoss-b/findings.json +4966 -0
  107. package/assess/lsa/examples/eval-run-6/gptoss-b/mass-assignment.candidates.json +232 -0
  108. package/assess/lsa/examples/eval-run-6/gptoss-b/routes/routes-001.json +425 -0
  109. package/assess/lsa/examples/eval-run-6/gptoss-b/routes/routes-002.json +333 -0
  110. package/assess/lsa/examples/eval-run-6/gptoss-b/routes/routes-003.json +400 -0
  111. package/assess/lsa/examples/eval-run-6/gptoss-b/routes/routes-004.json +403 -0
  112. package/assess/lsa/examples/eval-run-6/gptoss-b/routes/routes-005.json +398 -0
  113. package/assess/lsa/examples/eval-run-6/gptoss-b/routes/routes-006.json +63 -0
  114. package/assess/lsa/examples/eval-run-6/gptoss-b/score.json +87 -0
  115. package/assess/lsa/examples/eval-run-6/gptoss-b/stack-profile.json +225 -0
  116. package/assess/lsa/examples/eval-run-6/ground-truth.json +851 -0
  117. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/ai-run-stats.json +96 -0
  118. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/auth-model.md +191 -0
  119. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/batches/index.json +60 -0
  120. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/batches/injection-001.json +383 -0
  121. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/batches/injection-002.json +205 -0
  122. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/batches/privilege-001.json +838 -0
  123. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/batches/privilege-002.json +124 -0
  124. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/batches/routes-001.json +778 -0
  125. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/batches/routes-002.json +546 -0
  126. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/batches/routes-003.json +661 -0
  127. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/batches/routes-004.json +659 -0
  128. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/batches/routes-005.json +612 -0
  129. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/batches/routes-006.json +106 -0
  130. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/coverage.json +31 -0
  131. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/bola-routes-001.json +527 -0
  132. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/bola-routes-002.json +568 -0
  133. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/bola-routes-003.json +467 -0
  134. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/bola-routes-004.json +342 -0
  135. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/bola-routes-005.json +693 -0
  136. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/bola-routes-006.json +16 -0
  137. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/inj-injection-001.json +1123 -0
  138. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/inj-injection-002.json +391 -0
  139. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/priv-privilege-001.json +726 -0
  140. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/priv-privilege-002.json +306 -0
  141. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/verified-1.json +137 -0
  142. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/verified-10.json +106 -0
  143. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/verified-11.json +81 -0
  144. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/verified-12.json +135 -0
  145. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/verified-13.json +135 -0
  146. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/verified-14.json +135 -0
  147. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/verified-15.json +110 -0
  148. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/verified-16.json +116 -0
  149. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/verified-17.json +141 -0
  150. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/verified-18.json +135 -0
  151. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/verified-19.json +140 -0
  152. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/verified-2.json +135 -0
  153. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/verified-20.json +82 -0
  154. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/verified-21.json +74 -0
  155. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/verified-22.json +99 -0
  156. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/verified-3.json +140 -0
  157. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/verified-4.json +145 -0
  158. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/verified-5.json +135 -0
  159. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/verified-6.json +135 -0
  160. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/verified-7.json +87 -0
  161. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/verified-8.json +125 -0
  162. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings/verified-9.json +135 -0
  163. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/findings.json +6989 -0
  164. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/mass-assignment.candidates.json +232 -0
  165. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/memory.log +36 -0
  166. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/routes/routes-001.json +425 -0
  167. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/routes/routes-002.json +333 -0
  168. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/routes/routes-003.json +400 -0
  169. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/routes/routes-004.json +403 -0
  170. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/routes/routes-005.json +398 -0
  171. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/routes/routes-006.json +63 -0
  172. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/score.json +106 -0
  173. package/assess/lsa/examples/eval-run-6/qwen-16k-nothink/stack-profile.json +225 -0
  174. package/assess/lsa/examples/eval-run-6/qwen-16k-partial/auth-model.md +517 -0
  175. package/assess/lsa/examples/eval-run-6/qwen-16k-partial/findings/bola-routes-001.json +5 -0
  176. package/assess/lsa/examples/eval-run-6/qwen-16k-partial/findings/bola-routes-002.json +428 -0
  177. package/assess/lsa/examples/eval-run-6/qwen-16k-partial/findings/bola-routes-003.json +388 -0
  178. package/assess/lsa/examples/eval-run-6/qwen-16k-partial/findings/bola-routes-004.json +463 -0
  179. package/assess/lsa/examples/eval-run-6/qwen-16k-partial/findings/bola-routes-005.json +5 -0
  180. package/assess/lsa/examples/eval-run-6/qwen-16k-partial/findings/bola-routes-006.json +67 -0
  181. package/assess/lsa/examples/eval-run-6/qwen-16k-partial/findings/inj-injection-001.json +964 -0
  182. package/assess/lsa/examples/eval-run-6/qwen-16k-partial/findings.partial.json +1872 -0
  183. package/assess/lsa/examples/eval-run-6/qwen-16k-partial/memory.log +194 -0
  184. package/assess/lsa/examples/eval-run-6/qwen-16k-partial/score.partial.json +108 -0
  185. package/assess/lsa/examples/eval-run-6/qwen-16k-partial/stack-profile.json +225 -0
  186. package/assess/lsa/scripts/laravel_routes.py +102 -0
  187. package/assess/lsa/scripts/map_routes.py +4 -1
  188. package/assess/lsa/tests/EVAL-RESULTS.md +126 -0
  189. package/assess/lsa/tests/test_eval_run_6.py +104 -0
  190. package/assess/lsa/tests/test_laravel_routes.py +95 -0
  191. package/examples/member-portal/backend-dotnet/Auth/DemoAuthenticationHandler.cs +75 -0
  192. package/examples/member-portal/backend-dotnet/Program.cs +1 -72
  193. package/examples/member-portal/backend-spring/src/main/kotlin/io/komagu/portal/Application.kt +4 -0
  194. package/examples/member-portal/backend-spring/src/main/kotlin/io/komagu/portal/controller/Controllers.kt +3 -0
  195. package/examples/member-portal/backend-spring/src/main/kotlin/io/komagu/portal/model/Entities.kt +4 -0
  196. package/examples/member-portal/tests/test_d6_demo_app.py +4 -4
  197. package/examples/member-portal/tests/test_d6_remediation_verification.py +6 -6
  198. package/operate/ai/client.py +27 -10
  199. package/operate/ai/runner.py +4 -2
  200. package/operate/cli/__init__.py +1 -1
  201. package/operate/cli/commands/scan.py +8 -1
  202. package/operate/cross_user_tester/runner.py +4 -1
  203. package/operate/devsecops/sbom.py +12 -4
  204. package/operate/simulate/scenarios.py +11 -2
  205. package/operate/tests/test_ai_reasoning_effort.py +65 -0
  206. package/operate/tests/test_ai_route_inventory.py +53 -0
  207. package/operate/tests/test_audit_minimum_versions.py +89 -0
  208. package/operate/tests/test_cli.py +1 -1
  209. package/operate/tests/test_scheme_and_xml_guards.py +67 -0
  210. package/package.json +1 -1
  211. package/remediate/authz/dotnet/src/Komagu.Security.Authorization/LoggingSecurityAuditSink.cs +19 -3
  212. package/remediate/authz/golang/authz_test.go +5 -2
  213. package/remediate/authz/spring/src/main/kotlin/io/komagu/security/authorization/DefaultKomaguSecurityManager.kt +74 -78
  214. package/remediate/authz/spring/src/main/kotlin/io/komagu/security/spring/OwnershipAspect.kt +129 -158
  215. package/remediate/deps/patcher.py +2 -1
  216. package/remediate/edge/mock-backend/app.py +2 -1
  217. package/remediate/edge/tests/test_edge_security.py +5 -5
  218. package/remediate/ekyc/requirements.txt +1 -1
  219. package/remediate/identity/dotnet/src/Komagu.Security.Identity/OidcServiceCollectionExtensions.cs +19 -6
  220. package/remediate/identity/python/requirements.txt +2 -2
  221. package/remediate/identity/spring/src/main/kotlin/io/komagu/security/identity/KomaguIdentityAutoConfiguration.kt +31 -38
  222. package/remediate/legacy_shims/tests/test_legacy_shims.py +8 -8
  223. package/remediate/query/dotnet/src/Komagu.Security.Query/SafeSortAllowList.cs +5 -2
  224. package/remediate/query/spring/src/main/kotlin/io/komagu/security/query/SafeSortAllowList.kt +10 -11
  225. package/remediate/query/spring/src/main/kotlin/io/komagu/security/query/detekt/StringBuiltSqlQueryRule.kt +19 -24
@@ -0,0 +1,232 @@
1
+ {
2
+ "generated_by": "lsa find_mass_assignment.py 0.3.1",
3
+ "target": "repo",
4
+ "summary": {
5
+ "total": 15,
6
+ "high_priority": 11,
7
+ "by_rule": {
8
+ "cs-entity-binding": 1,
9
+ "cs-update-model": 1,
10
+ "java-entity-binding": 2,
11
+ "java-beanutils-populate": 1,
12
+ "js-model-call": 2,
13
+ "php-eloquent-static": 2,
14
+ "php-eloquent-fill": 1,
15
+ "php-foreach-input": 1,
16
+ "php-privileged-field": 1,
17
+ "php-extract": 1,
18
+ "py-kwargs-request": 1,
19
+ "py-items-loop": 1
20
+ },
21
+ "by_subtype": {
22
+ "whole_object_binding": 13,
23
+ "privileged_field_writable": 2
24
+ },
25
+ "models": {
26
+ "jpa_entities": 1,
27
+ "ef_dbsets": 2,
28
+ "laravel_models": 3
29
+ }
30
+ },
31
+ "candidates": [
32
+ {
33
+ "file": "dotnet-legacy/Web/Controllers/CustomerController.cs",
34
+ "line": 12,
35
+ "language": "cs",
36
+ "rule": "cs-entity-binding",
37
+ "subtype": "whole_object_binding",
38
+ "target": "Customer",
39
+ "allowlist": "none",
40
+ "priority": "high",
41
+ "sensitive_fields": [],
42
+ "code": "public ActionResult Edit(Customer customer)",
43
+ "candidate_id": "M-0001"
44
+ },
45
+ {
46
+ "file": "dotnet-legacy/Web/Controllers/CustomerController.cs",
47
+ "line": 30,
48
+ "language": "cs",
49
+ "rule": "cs-update-model",
50
+ "subtype": "whole_object_binding",
51
+ "target": null,
52
+ "allowlist": "unknown",
53
+ "priority": "high",
54
+ "sensitive_fields": [],
55
+ "code": "TryUpdateModel(customer);",
56
+ "candidate_id": "M-0002"
57
+ },
58
+ {
59
+ "file": "java-legacy/src/com/acme/web/AccountController.java",
60
+ "line": 14,
61
+ "language": "java",
62
+ "rule": "java-entity-binding",
63
+ "subtype": "whole_object_binding",
64
+ "target": "Account",
65
+ "allowlist": "none",
66
+ "priority": "high",
67
+ "sensitive_fields": [],
68
+ "code": "public String save(@ModelAttribute Account account) {",
69
+ "candidate_id": "M-0003"
70
+ },
71
+ {
72
+ "file": "java-legacy/src/com/acme/web/AccountController.java",
73
+ "line": 27,
74
+ "language": "java",
75
+ "rule": "java-entity-binding",
76
+ "subtype": "whole_object_binding",
77
+ "target": "Account",
78
+ "allowlist": "none",
79
+ "priority": "high",
80
+ "sensitive_fields": [],
81
+ "code": "public Account update(@RequestBody Account account) {",
82
+ "candidate_id": "M-0004"
83
+ },
84
+ {
85
+ "file": "java-legacy/src/com/acme/web/ProfileServlet.java",
86
+ "line": 12,
87
+ "language": "java",
88
+ "rule": "java-beanutils-populate",
89
+ "subtype": "whole_object_binding",
90
+ "target": null,
91
+ "allowlist": "unknown",
92
+ "priority": "high",
93
+ "sensitive_fields": [],
94
+ "code": "BeanUtils.populate(account, request.getParameterMap());",
95
+ "candidate_id": "M-0005"
96
+ },
97
+ {
98
+ "file": "node-express/routes/profile.js",
99
+ "line": 8,
100
+ "language": "js",
101
+ "rule": "js-model-call",
102
+ "subtype": "whole_object_binding",
103
+ "target": "User",
104
+ "allowlist": "unknown",
105
+ "priority": "medium",
106
+ "sensitive_fields": [],
107
+ "code": "User.findByIdAndUpdate(req.user._id, req.body, function (e, u) { res.json(u); });",
108
+ "candidate_id": "M-0006"
109
+ },
110
+ {
111
+ "file": "node-express/routes/profile.js",
112
+ "line": 16,
113
+ "language": "js",
114
+ "rule": "js-model-call",
115
+ "subtype": "whole_object_binding",
116
+ "target": "User",
117
+ "allowlist": "unknown",
118
+ "priority": "medium",
119
+ "sensitive_fields": [],
120
+ "code": "var user = new User(req.body);",
121
+ "candidate_id": "M-0007"
122
+ },
123
+ {
124
+ "file": "php-laravel/app/Http/Controllers/AccountController.php",
125
+ "line": 13,
126
+ "language": "php",
127
+ "rule": "php-eloquent-static",
128
+ "subtype": "whole_object_binding",
129
+ "target": "User",
130
+ "allowlist": "none",
131
+ "priority": "high",
132
+ "sensitive_fields": [],
133
+ "code": "return User::create($request->all());",
134
+ "candidate_id": "M-0008"
135
+ },
136
+ {
137
+ "file": "php-laravel/app/Http/Controllers/AccountController.php",
138
+ "line": 23,
139
+ "language": "php",
140
+ "rule": "php-eloquent-static",
141
+ "subtype": "privileged_field_writable",
142
+ "target": "Team",
143
+ "allowlist": "seen",
144
+ "priority": "high",
145
+ "sensitive_fields": [
146
+ "owner_id"
147
+ ],
148
+ "code": "return Team::create($request->all());",
149
+ "candidate_id": "M-0009"
150
+ },
151
+ {
152
+ "file": "php-laravel/app/Http/Controllers/AccountController.php",
153
+ "line": 36,
154
+ "language": "php",
155
+ "rule": "php-eloquent-fill",
156
+ "subtype": "whole_object_binding",
157
+ "target": null,
158
+ "allowlist": "unknown",
159
+ "priority": "medium",
160
+ "sensitive_fields": [],
161
+ "code": "$user->fill($request->all())->save();",
162
+ "candidate_id": "M-0010"
163
+ },
164
+ {
165
+ "file": "php-plain/profile.php",
166
+ "line": 6,
167
+ "language": "php",
168
+ "rule": "php-foreach-input",
169
+ "subtype": "whole_object_binding",
170
+ "target": null,
171
+ "allowlist": "unknown",
172
+ "priority": "high",
173
+ "sensitive_fields": [],
174
+ "code": "foreach ($_POST as $field => $value) {",
175
+ "candidate_id": "M-0011"
176
+ },
177
+ {
178
+ "file": "php-plain/profile.php",
179
+ "line": 10,
180
+ "language": "php",
181
+ "rule": "php-privileged-field",
182
+ "subtype": "privileged_field_writable",
183
+ "target": null,
184
+ "allowlist": "unknown",
185
+ "priority": "high",
186
+ "sensitive_fields": [
187
+ "role"
188
+ ],
189
+ "code": "$user->role = $_POST['role'];",
190
+ "candidate_id": "M-0012"
191
+ },
192
+ {
193
+ "file": "php-plain/register.php",
194
+ "line": 4,
195
+ "language": "php",
196
+ "rule": "php-extract",
197
+ "subtype": "whole_object_binding",
198
+ "target": null,
199
+ "allowlist": "unknown",
200
+ "priority": "high",
201
+ "sensitive_fields": [],
202
+ "code": "extract($_POST);",
203
+ "candidate_id": "M-0013"
204
+ },
205
+ {
206
+ "file": "python-flask/profile.py",
207
+ "line": 10,
208
+ "language": "python",
209
+ "rule": "py-kwargs-request",
210
+ "subtype": "whole_object_binding",
211
+ "target": null,
212
+ "allowlist": "unknown",
213
+ "priority": "medium",
214
+ "sensitive_fields": [],
215
+ "code": "user = User(**request.json)",
216
+ "candidate_id": "M-0014"
217
+ },
218
+ {
219
+ "file": "python-flask/profile.py",
220
+ "line": 27,
221
+ "language": "python",
222
+ "rule": "py-items-loop",
223
+ "subtype": "whole_object_binding",
224
+ "target": null,
225
+ "allowlist": "unknown",
226
+ "priority": "high",
227
+ "sensitive_fields": [],
228
+ "code": "for key, value in request.json.items():",
229
+ "candidate_id": "M-0015"
230
+ }
231
+ ]
232
+ }
@@ -0,0 +1,36 @@
1
+ 13:38:18 swap=3675.81M compr_pages=42433.
2
+ 13:39:18 swap=3675.81M compr_pages=57738. qwen3.5:9b-16k df9cabffde69 7.9 GB 100% GPU 16384 mlx 4 minutes from now
3
+ 13:40:18 swap=3675.81M compr_pages=57412. qwen3.5:9b-16k df9cabffde69 7.9 GB 100% GPU 16384 mlx 3 minutes from now
4
+ 13:41:18 swap=3675.81M compr_pages=56420. qwen3.5:9b-16k df9cabffde69 8.7 GB 100% GPU 16384 mlx 4 minutes from now
5
+ 13:42:18 swap=3659.81M compr_pages=54938. qwen3.5:9b-16k df9cabffde69 8.7 GB 100% GPU 16384 mlx 3 minutes from now
6
+ 13:43:18 swap=3651.81M compr_pages=54619. qwen3.5:9b-16k df9cabffde69 9.4 GB 100% GPU 16384 mlx 4 minutes from now
7
+ 13:44:19 swap=3651.81M compr_pages=54461. qwen3.5:9b-16k df9cabffde69 9.4 GB 100% GPU 16384 mlx 3 minutes from now
8
+ 13:45:19 swap=3651.81M compr_pages=53870. qwen3.5:9b-16k df9cabffde69 10.0 GB 100% GPU 16384 mlx 4 minutes from now
9
+ 13:46:19 swap=3651.81M compr_pages=53783. qwen3.5:9b-16k df9cabffde69 10 GB 100% GPU 16384 mlx 4 minutes from now
10
+ 13:47:19 swap=3651.81M compr_pages=53086. qwen3.5:9b-16k df9cabffde69 10 GB 100% GPU 16384 mlx 3 minutes from now
11
+ 13:48:19 swap=3651.81M compr_pages=52997. qwen3.5:9b-16k df9cabffde69 11 GB 100% GPU 16384 mlx 4 minutes from now
12
+ 13:49:19 swap=3651.81M compr_pages=104902. qwen3.5:9b-16k df9cabffde69 11 GB 100% GPU 16384 mlx 3 minutes from now
13
+ 13:50:19 swap=3651.81M compr_pages=104596. qwen3.5:9b-16k df9cabffde69 11 GB 100% GPU 16384 mlx 2 minutes from now
14
+ 13:51:19 swap=3651.81M compr_pages=104476. qwen3.5:9b-16k df9cabffde69 11 GB 100% GPU 16384 mlx About a minute from now
15
+ 13:52:19 swap=3651.81M compr_pages=111680. qwen3.5:9b-16k df9cabffde69 11 GB 100% GPU 16384 mlx 4 minutes from now
16
+ 13:53:19 swap=3651.81M compr_pages=110438. qwen3.5:9b-16k df9cabffde69 12 GB 100% GPU 16384 mlx 4 minutes from now
17
+ 13:54:19 swap=3779.56M compr_pages=378423. qwen3.5:9b-16k df9cabffde69 12 GB 100% GPU 16384 mlx 3 minutes from now
18
+ 13:55:20 swap=3763.56M compr_pages=362192. qwen3.5:9b-16k df9cabffde69 12 GB 100% GPU 16384 mlx 2 minutes from now
19
+ 13:56:20 swap=3739.56M compr_pages=381713. qwen3.5:9b-16k df9cabffde69 13 GB 100% GPU 16384 mlx 4 minutes from now
20
+ 13:57:20 swap=4470.50M compr_pages=383437. qwen3.5:9b-16k df9cabffde69 13 GB 100% GPU 16384 mlx 4 minutes from now
21
+ 13:58:20 swap=4454.50M compr_pages=381367. qwen3.5:9b-16k df9cabffde69 14 GB 100% GPU 16384 mlx 4 minutes from now
22
+ 13:59:20 swap=4685.94M compr_pages=401842. qwen3.5:9b-16k df9cabffde69 14 GB 100% GPU 16384 mlx 4 minutes from now
23
+ 14:00:20 swap=4669.94M compr_pages=424209. qwen3.5:9b-16k df9cabffde69 15 GB 100% GPU 16384 mlx 4 minutes from now
24
+ 14:01:20 swap=5394.81M compr_pages=433790. qwen3.5:9b-16k df9cabffde69 15 GB 100% GPU 16384 mlx 4 minutes from now
25
+ 14:02:20 swap=5394.81M compr_pages=435286. qwen3.5:9b-16k df9cabffde69 16 GB 100% GPU 16384 mlx 4 minutes from now
26
+ 14:03:20 swap=5394.81M compr_pages=484879. qwen3.5:9b-16k df9cabffde69 16 GB 100% GPU 16384 mlx 4 minutes from now
27
+ 14:04:20 swap=5410.69M compr_pages=465188. qwen3.5:9b-16k df9cabffde69 16 GB 100% GPU 16384 mlx 4 minutes from now
28
+ 14:05:20 swap=5336.88M compr_pages=516055. qwen3.5:9b-16k df9cabffde69 17 GB 100% GPU 16384 mlx 4 minutes from now
29
+ 14:06:21 swap=5882.25M compr_pages=494168. qwen3.5:9b-16k df9cabffde69 16 GB 100% GPU 16384 mlx 4 minutes from now
30
+ 14:07:21 swap=5074.75M compr_pages=469292. qwen3.5:9b-16k df9cabffde69 16 GB 100% GPU 16384 mlx 4 minutes from now
31
+ 14:08:21 swap=5296.75M compr_pages=480656. qwen3.5:9b-16k df9cabffde69 17 GB 100% GPU 16384 mlx 4 minutes from now
32
+ 14:09:21 swap=5281.19M compr_pages=494084. qwen3.5:9b-16k df9cabffde69 16 GB 100% GPU 16384 mlx 4 minutes from now
33
+ 14:10:21 swap=4827.81M compr_pages=510889. qwen3.5:9b-16k df9cabffde69 16 GB 100% GPU 16384 mlx 4 minutes from now
34
+ 14:11:21 swap=5509.25M compr_pages=504096. qwen3.5:9b-16k df9cabffde69 16 GB 100% GPU 16384 mlx 4 minutes from now
35
+ 14:12:21 swap=5950.88M compr_pages=468699. qwen3.5:9b-16k df9cabffde69 17 GB 100% GPU 16384 mlx 4 minutes from now
36
+ 14:13:21 swap=5670.88M compr_pages=461384. qwen3.5:9b-16k df9cabffde69 16 GB 100% GPU 16384 mlx 4 minutes from now
@@ -0,0 +1,425 @@
1
+ {
2
+ "routes": [
3
+ {
4
+ "route_id": "R-0002",
5
+ "method": [
6
+ "ANY"
7
+ ],
8
+ "path": "/classic-asp/shop/member.asp?mode=edit",
9
+ "path_source": "declared",
10
+ "handler": {
11
+ "file": "classic-asp/shop/member.asp",
12
+ "line": 5
13
+ },
14
+ "id_inputs": [
15
+ {
16
+ "name": "mode",
17
+ "source": "any"
18
+ },
19
+ {
20
+ "name": "name",
21
+ "source": "form"
22
+ },
23
+ {
24
+ "name": "member_id",
25
+ "source": "form"
26
+ },
27
+ {
28
+ "name": "member_id",
29
+ "source": "query"
30
+ }
31
+ ],
32
+ "guards": [],
33
+ "data_ops": [
34
+ {
35
+ "op": "read"
36
+ }
37
+ ],
38
+ "needs_bola_audit": true
39
+ },
40
+ {
41
+ "route_id": "R-0003",
42
+ "method": [
43
+ "ANY"
44
+ ],
45
+ "path": "/classic-asp/shop/member.asp?mode=delete",
46
+ "path_source": "declared",
47
+ "handler": {
48
+ "file": "classic-asp/shop/member.asp",
49
+ "line": 9
50
+ },
51
+ "id_inputs": [
52
+ {
53
+ "name": "mode",
54
+ "source": "any"
55
+ },
56
+ {
57
+ "name": "name",
58
+ "source": "form"
59
+ },
60
+ {
61
+ "name": "member_id",
62
+ "source": "form"
63
+ },
64
+ {
65
+ "name": "member_id",
66
+ "source": "query"
67
+ }
68
+ ],
69
+ "guards": [],
70
+ "data_ops": [
71
+ {
72
+ "op": "read"
73
+ }
74
+ ],
75
+ "needs_bola_audit": true
76
+ },
77
+ {
78
+ "route_id": "R-0004",
79
+ "method": [
80
+ "ANY"
81
+ ],
82
+ "path": "/classic-asp/shop/order.asp",
83
+ "path_source": "declared",
84
+ "handler": {
85
+ "file": "classic-asp/shop/order.asp",
86
+ "line": 1
87
+ },
88
+ "id_inputs": [
89
+ {
90
+ "name": "id",
91
+ "source": "any"
92
+ },
93
+ {
94
+ "name": "sid",
95
+ "source": "query"
96
+ }
97
+ ],
98
+ "guards": [],
99
+ "data_ops": [
100
+ {
101
+ "op": "read"
102
+ }
103
+ ],
104
+ "needs_bola_audit": true
105
+ },
106
+ {
107
+ "route_id": "R-0005",
108
+ "method": [
109
+ "ANY"
110
+ ],
111
+ "path": "/coldfusion/app/OrderService.cfc?method=getOrder",
112
+ "path_source": "declared",
113
+ "handler": {
114
+ "file": "coldfusion/app/OrderService.cfc",
115
+ "line": 2
116
+ },
117
+ "id_inputs": [
118
+ {
119
+ "name": "orderId",
120
+ "source": "any"
121
+ }
122
+ ],
123
+ "guards": [],
124
+ "data_ops": [
125
+ {
126
+ "op": "read"
127
+ }
128
+ ],
129
+ "needs_bola_audit": true
130
+ },
131
+ {
132
+ "route_id": "R-0006",
133
+ "method": [
134
+ "ANY"
135
+ ],
136
+ "path": "/coldfusion/app/order.cfm",
137
+ "path_source": "declared",
138
+ "handler": {
139
+ "file": "coldfusion/app/order.cfm",
140
+ "line": 1
141
+ },
142
+ "id_inputs": [
143
+ {
144
+ "name": "id",
145
+ "source": "query"
146
+ }
147
+ ],
148
+ "guards": [],
149
+ "data_ops": [
150
+ {
151
+ "op": "read"
152
+ }
153
+ ],
154
+ "needs_bola_audit": true
155
+ },
156
+ {
157
+ "route_id": "R-0007",
158
+ "method": [
159
+ "POST"
160
+ ],
161
+ "path": "/Admin/DeleteUser",
162
+ "path_source": "declared",
163
+ "handler": {
164
+ "file": "dotnet-legacy/Web/Controllers/AdminController.cs",
165
+ "line": 12
166
+ },
167
+ "id_inputs": [
168
+ {
169
+ "name": "id",
170
+ "source": "any"
171
+ }
172
+ ],
173
+ "guards": [],
174
+ "data_ops": [
175
+ {
176
+ "op": "read"
177
+ }
178
+ ],
179
+ "needs_bola_audit": true
180
+ },
181
+ {
182
+ "route_id": "R-0008",
183
+ "method": [
184
+ "POST",
185
+ "POST"
186
+ ],
187
+ "path": "/Admin/ResetPassword",
188
+ "path_source": "declared",
189
+ "handler": {
190
+ "file": "dotnet-legacy/Web/Controllers/AdminController.cs",
191
+ "line": 22
192
+ },
193
+ "id_inputs": [
194
+ {
195
+ "name": "id",
196
+ "source": "any"
197
+ }
198
+ ],
199
+ "guards": [],
200
+ "data_ops": [
201
+ {
202
+ "op": "read"
203
+ }
204
+ ],
205
+ "needs_bola_audit": true
206
+ },
207
+ {
208
+ "route_id": "R-0009",
209
+ "method": [
210
+ "POST"
211
+ ],
212
+ "path": "/Admin/Export",
213
+ "path_source": "declared",
214
+ "handler": {
215
+ "file": "dotnet-legacy/Web/Controllers/AdminController.cs",
216
+ "line": 30
217
+ },
218
+ "id_inputs": [
219
+ {
220
+ "name": "isAdmin",
221
+ "source": "query"
222
+ }
223
+ ],
224
+ "guards": [],
225
+ "data_ops": [
226
+ {
227
+ "op": "read"
228
+ }
229
+ ],
230
+ "needs_bola_audit": true
231
+ },
232
+ {
233
+ "route_id": "R-0013",
234
+ "method": [
235
+ "ANY"
236
+ ],
237
+ "path": "/Invoice/Details",
238
+ "path_source": "declared",
239
+ "handler": {
240
+ "file": "dotnet-legacy/Web/Controllers/InvoiceController.cs",
241
+ "line": 11
242
+ },
243
+ "id_inputs": [
244
+ {
245
+ "name": "id",
246
+ "source": "any"
247
+ }
248
+ ],
249
+ "guards": [],
250
+ "data_ops": [
251
+ {
252
+ "op": "read"
253
+ }
254
+ ],
255
+ "needs_bola_audit": true
256
+ },
257
+ {
258
+ "route_id": "R-0014",
259
+ "method": [
260
+ "ANY"
261
+ ],
262
+ "path": "/Invoice/Mine",
263
+ "path_source": "declared",
264
+ "handler": {
265
+ "file": "dotnet-legacy/Web/Controllers/InvoiceController.cs",
266
+ "line": 17
267
+ },
268
+ "id_inputs": [
269
+ {
270
+ "name": "id",
271
+ "source": "any"
272
+ }
273
+ ],
274
+ "guards": [],
275
+ "data_ops": [
276
+ {
277
+ "op": "read"
278
+ }
279
+ ],
280
+ "needs_bola_audit": true
281
+ },
282
+ {
283
+ "route_id": "R-0015",
284
+ "method": [
285
+ "POST"
286
+ ],
287
+ "path": "/Invoice/Search",
288
+ "path_source": "declared",
289
+ "handler": {
290
+ "file": "dotnet-legacy/Web/Controllers/InvoiceController.cs",
291
+ "line": 26
292
+ },
293
+ "id_inputs": [
294
+ {
295
+ "name": "customer",
296
+ "source": "any"
297
+ }
298
+ ],
299
+ "guards": [],
300
+ "data_ops": [
301
+ {
302
+ "op": "read"
303
+ }
304
+ ],
305
+ "needs_bola_audit": true
306
+ },
307
+ {
308
+ "route_id": "R-0017",
309
+ "method": [
310
+ "ANY"
311
+ ],
312
+ "path": "/dotnet-legacy/Web/Orders/EditOrder.aspx",
313
+ "path_source": "declared",
314
+ "handler": {
315
+ "file": "dotnet-legacy/Web/Orders/EditOrder.aspx.vb",
316
+ "line": 1
317
+ },
318
+ "id_inputs": [
319
+ {
320
+ "name": "hfOrderId",
321
+ "source": "hidden_field"
322
+ },
323
+ {
324
+ "name": "txtNote",
325
+ "source": "form"
326
+ }
327
+ ],
328
+ "guards": [],
329
+ "data_ops": [
330
+ {
331
+ "op": "read"
332
+ }
333
+ ],
334
+ "needs_bola_audit": true
335
+ },
336
+ {
337
+ "route_id": "R-0018",
338
+ "method": [
339
+ "ANY"
340
+ ],
341
+ "path": "/dotnet-legacy/Web/Orders/OrderDetail.aspx",
342
+ "path_source": "declared",
343
+ "handler": {
344
+ "file": "dotnet-legacy/Web/Orders/OrderDetail.aspx.cs",
345
+ "line": 1
346
+ },
347
+ "id_inputs": [
348
+ {
349
+ "name": "id",
350
+ "source": "query"
351
+ },
352
+ {
353
+ "name": "cart",
354
+ "source": "form"
355
+ },
356
+ {
357
+ "name": "ref",
358
+ "source": "any"
359
+ }
360
+ ],
361
+ "guards": [],
362
+ "data_ops": [
363
+ {
364
+ "op": "read"
365
+ }
366
+ ],
367
+ "needs_bola_audit": true
368
+ },
369
+ {
370
+ "route_id": "R-0019",
371
+ "method": [
372
+ "ANY"
373
+ ],
374
+ "path": "/order/detail.jsp",
375
+ "path_source": "declared",
376
+ "handler": {
377
+ "file": "java-legacy/WebContent/order/detail.jsp",
378
+ "line": 1
379
+ },
380
+ "id_inputs": [
381
+ {
382
+ "name": "no",
383
+ "source": "any"
384
+ }
385
+ ],
386
+ "guards": [],
387
+ "data_ops": [
388
+ {
389
+ "op": "read"
390
+ }
391
+ ],
392
+ "needs_bola_audit": true
393
+ },
394
+ {
395
+ "route_id": "R-0001",
396
+ "method": [
397
+ "ANY"
398
+ ],
399
+ "path": "/user/edit.do",
400
+ "path_source": "declared",
401
+ "handler": {
402
+ "file": "java-legacy/src/com/acme/struts/EditUserAction.java",
403
+ "line": 8
404
+ },
405
+ "id_inputs": [
406
+ {
407
+ "name": "user_id",
408
+ "source": "any"
409
+ },
410
+ {
411
+ "name": "email",
412
+ "source": "any"
413
+ }
414
+ ],
415
+ "guards": [],
416
+ "data_ops": [
417
+ {
418
+ "op": "read"
419
+ }
420
+ ],
421
+ "needs_bola_audit": true
422
+ }
423
+ ],
424
+ "rejected": []
425
+ }