@hoanghainh/komagu 2.5.0 → 2.6.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 (197) hide show
  1. package/CHANGELOG.md +17 -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/operate/ai/client.py +22 -9
  192. package/operate/ai/runner.py +4 -2
  193. package/operate/cli/__init__.py +1 -1
  194. package/operate/cli/commands/scan.py +8 -1
  195. package/operate/tests/test_ai_reasoning_effort.py +65 -0
  196. package/operate/tests/test_ai_route_inventory.py +53 -0
  197. package/package.json +1 -1
@@ -0,0 +1,821 @@
1
+ {
2
+ "batch_id": "injection-001",
3
+ "findings": [
4
+ {
5
+ "finding_id": "INJ-I-0001",
6
+ "category": "sql_injection",
7
+ "subtype": "string_concatenation",
8
+ "title": "SQL Injection in classic-asp/shop/member.asp:6",
9
+ "candidate_id": "I-0001",
10
+ "location": {
11
+ "file": "classic-asp/shop/member.asp",
12
+ "start_line": 6
13
+ },
14
+ "evidence": [
15
+ {
16
+ "file": "classic-asp/shop/member.asp",
17
+ "start_line": 6,
18
+ "code": "sql = \"UPDATE members SET name = '\" & Replace(Request.Form(\"name\"), \"'\", \"''\") & \"'\"",
19
+ "why": "Unsanitized input concatenated into query",
20
+ "line": 6
21
+ },
22
+ {
23
+ "file": "classic-asp/shop/member.asp",
24
+ "start_line": 7,
25
+ "code": "sql = sql & \" WHERE member_id = \" & Request.Form(\"member_id\")",
26
+ "why": "Unsanitized input concatenated into query",
27
+ "line": 7
28
+ }
29
+ ],
30
+ "severity": "critical",
31
+ "confidence": "high",
32
+ "cwe": [
33
+ "CWE-89"
34
+ ],
35
+ "recommendation": "Use parameterized queries or proper escaping",
36
+ "status": "unverified"
37
+ },
38
+ {
39
+ "finding_id": "INJ-I-0002",
40
+ "category": "sql_injection",
41
+ "subtype": "string_concatenation",
42
+ "title": "SQL Injection in classic-asp/shop/member.asp:7",
43
+ "candidate_id": "I-0002",
44
+ "location": {
45
+ "file": "classic-asp/shop/member.asp",
46
+ "start_line": 7
47
+ },
48
+ "evidence": [
49
+ {
50
+ "file": "classic-asp/shop/member.asp",
51
+ "start_line": 7,
52
+ "code": "sql = sql & \" WHERE member_id = \" & Request.Form(\"member_id\")",
53
+ "why": "Unsanitized input concatenated into query",
54
+ "line": 7
55
+ }
56
+ ],
57
+ "severity": "critical",
58
+ "confidence": "high",
59
+ "cwe": [
60
+ "CWE-89"
61
+ ],
62
+ "recommendation": "Use parameterized queries or proper escaping",
63
+ "status": "unverified"
64
+ },
65
+ {
66
+ "finding_id": "INJ-I-0003",
67
+ "category": "sql_injection",
68
+ "subtype": "string_concatenation",
69
+ "title": "SQL Injection in classic-asp/shop/member.asp:10",
70
+ "candidate_id": "I-0003",
71
+ "location": {
72
+ "file": "classic-asp/shop/member.asp",
73
+ "start_line": 10
74
+ },
75
+ "evidence": [
76
+ {
77
+ "file": "classic-asp/shop/member.asp",
78
+ "start_line": 10,
79
+ "code": "conn.Execute \"DELETE FROM members WHERE member_id = \" & Request.QueryString(\"member_id\")",
80
+ "why": "Unsanitized input concatenated into query",
81
+ "line": 10
82
+ }
83
+ ],
84
+ "severity": "critical",
85
+ "confidence": "high",
86
+ "cwe": [
87
+ "CWE-89"
88
+ ],
89
+ "recommendation": "Use parameterized queries or proper escaping",
90
+ "status": "unverified"
91
+ },
92
+ {
93
+ "finding_id": "INJ-I-0004",
94
+ "category": "sql_injection",
95
+ "subtype": "string_concatenation",
96
+ "title": "SQL Injection in classic-asp/shop/order.asp:6",
97
+ "candidate_id": "I-0004",
98
+ "location": {
99
+ "file": "classic-asp/shop/order.asp",
100
+ "start_line": 6
101
+ },
102
+ "evidence": [
103
+ {
104
+ "file": "classic-asp/shop/order.asp",
105
+ "start_line": 6,
106
+ "code": "Set rs = conn.Execute(\"SELECT * FROM orders WHERE id = \" & id)",
107
+ "why": "Unsanitized input concatenated into query",
108
+ "line": 6
109
+ }
110
+ ],
111
+ "severity": "critical",
112
+ "confidence": "high",
113
+ "cwe": [
114
+ "CWE-89"
115
+ ],
116
+ "recommendation": "Use parameterized queries or proper escaping",
117
+ "status": "unverified"
118
+ },
119
+ {
120
+ "finding_id": "INJ-I-0005",
121
+ "category": "sql_injection",
122
+ "subtype": "string_concatenation",
123
+ "title": "SQL Injection in classic-asp/shop/order.asp:12",
124
+ "candidate_id": "I-0005",
125
+ "location": {
126
+ "file": "classic-asp/shop/order.asp",
127
+ "start_line": 12
128
+ },
129
+ "evidence": [
130
+ {
131
+ "file": "classic-asp/shop/order.asp",
132
+ "start_line": 12,
133
+ "code": "Set rs2 = conn.Execute(\"SELECT * FROM orders WHERE id = \" & sid & \" AND user_id = \" & CLng(Session(\"UserID\")))",
134
+ "why": "Unsanitized input concatenated into query",
135
+ "line": 12
136
+ }
137
+ ],
138
+ "severity": "critical",
139
+ "confidence": "high",
140
+ "cwe": [
141
+ "CWE-89"
142
+ ],
143
+ "recommendation": "Use parameterized queries or proper escaping",
144
+ "status": "unverified"
145
+ },
146
+ {
147
+ "finding_id": "INJ-I-0006",
148
+ "category": "sql_injection",
149
+ "subtype": "string_concatenation",
150
+ "title": "SQL Injection in coldfusion/app/OrderService.cfc:5",
151
+ "candidate_id": "I-0006",
152
+ "location": {
153
+ "file": "coldfusion/app/OrderService.cfc",
154
+ "start_line": 5
155
+ },
156
+ "evidence": [
157
+ {
158
+ "file": "coldfusion/app/OrderService.cfc",
159
+ "start_line": 5,
160
+ "code": "SELECT * FROM orders WHERE id = #arguments.orderId#",
161
+ "why": "Unsanitized input concatenated into query",
162
+ "line": 5
163
+ }
164
+ ],
165
+ "severity": "critical",
166
+ "confidence": "high",
167
+ "cwe": [
168
+ "CWE-89"
169
+ ],
170
+ "recommendation": "Use cfqueryparam or parameterized queries",
171
+ "status": "unverified"
172
+ },
173
+ {
174
+ "finding_id": "INJ-I-0007",
175
+ "category": "sql_injection",
176
+ "subtype": "string_concatenation",
177
+ "title": "SQL Injection in coldfusion/app/order.cfm:3",
178
+ "candidate_id": "I-0007",
179
+ "location": {
180
+ "file": "coldfusion/app/order.cfm",
181
+ "start_line": 3
182
+ },
183
+ "evidence": [
184
+ {
185
+ "file": "coldfusion/app/order.cfm",
186
+ "start_line": 3,
187
+ "code": "SELECT * FROM orders WHERE id = #url.id#",
188
+ "why": "Unsanitized input concatenated into query",
189
+ "line": 3
190
+ }
191
+ ],
192
+ "severity": "critical",
193
+ "confidence": "high",
194
+ "cwe": [
195
+ "CWE-89"
196
+ ],
197
+ "recommendation": "Use cfqueryparam or parameterized queries",
198
+ "status": "unverified"
199
+ },
200
+ {
201
+ "finding_id": "INJ-I-0010",
202
+ "category": "sql_injection",
203
+ "subtype": "string_concatenation",
204
+ "title": "SQL Injection in dotnet-legacy/Web/Orders/EditOrder.aspx.vb:7",
205
+ "candidate_id": "I-0010",
206
+ "location": {
207
+ "file": "dotnet-legacy/Web/Orders/EditOrder.aspx.vb",
208
+ "start_line": 8
209
+ },
210
+ "evidence": [
211
+ {
212
+ "file": "dotnet-legacy/Web/Orders/EditOrder.aspx.vb",
213
+ "start_line": 7,
214
+ "code": "Dim sql As String = \"UPDATE Orders SET Note = '\" & txtNote.Text & \"'\"",
215
+ "why": "Unsanitized input concatenated into query",
216
+ "line": 7
217
+ },
218
+ {
219
+ "file": "dotnet-legacy/Web/Orders/EditOrder.aspx.vb",
220
+ "start_line": 8,
221
+ "code": "sql &= \" WHERE OrderId = \" & hfOrderId.Value",
222
+ "why": "Unsanitized input concatenated into query",
223
+ "line": 8
224
+ }
225
+ ],
226
+ "severity": "critical",
227
+ "confidence": "high",
228
+ "cwe": [
229
+ "CWE-89"
230
+ ],
231
+ "recommendation": "Use parameterized queries or proper escaping",
232
+ "status": "unverified"
233
+ },
234
+ {
235
+ "finding_id": "INJ-I-0011",
236
+ "category": "sql_injection",
237
+ "subtype": "string_concatenation",
238
+ "title": "SQL Injection in dotnet-legacy/Web/Orders/OrderDetail.aspx.cs:13",
239
+ "candidate_id": "I-0011",
240
+ "location": {
241
+ "file": "dotnet-legacy/Web/Orders/OrderDetail.aspx.cs",
242
+ "start_line": 13
243
+ },
244
+ "evidence": [
245
+ {
246
+ "file": "dotnet-legacy/Web/Orders/OrderDetail.aspx.cs",
247
+ "start_line": 13,
248
+ "code": "var cmd = new SqlCommand(\"SELECT * FROM Orders WHERE OrderId = \" + id, conn);",
249
+ "why": "Unsanitized input concatenated into query",
250
+ "line": 13
251
+ },
252
+ {
253
+ "file": "dotnet-legacy/Web/Orders/OrderDetail.aspx.cs",
254
+ "start_line": 19,
255
+ "code": "string sql2 = string.Format(\"SELECT * FROM Logs WHERE Ref = '{0}'\", Request[\"ref\"]);",
256
+ "why": "Unsanitized input concatenated into query",
257
+ "line": 19
258
+ },
259
+ {
260
+ "file": "dotnet-legacy/Web/Orders/OrderDetail.aspx.cs",
261
+ "start_line": 20,
262
+ "code": "string sql3 = $\"DELETE FROM Carts WHERE CartId = {Request.Form[\\\"cart\\\"]}\";",
263
+ "why": "Unsanitized input concatenated into query",
264
+ "line": 20
265
+ }
266
+ ],
267
+ "severity": "critical",
268
+ "confidence": "high",
269
+ "cwe": [
270
+ "CWE-89"
271
+ ],
272
+ "recommendation": "Use parameterized queries or proper escaping",
273
+ "status": "unverified"
274
+ },
275
+ {
276
+ "finding_id": "INJ-I-0012",
277
+ "category": "sql_injection",
278
+ "subtype": "string_concatenation",
279
+ "title": "SQL Injection in dotnet-legacy/Web/Orders/OrderDetail.aspx.cs:19",
280
+ "candidate_id": "I-0012",
281
+ "location": {
282
+ "file": "dotnet-legacy/Web/Orders/OrderDetail.aspx.cs",
283
+ "start_line": 19
284
+ },
285
+ "evidence": [
286
+ {
287
+ "file": "dotnet-legacy/Web/Orders/OrderDetail.aspx.cs",
288
+ "start_line": 19,
289
+ "code": "string sql2 = string.Format(\"SELECT * FROM Logs WHERE Ref = '{0}'\", Request[\"ref\"]);",
290
+ "why": "Unsanitized input concatenated into query",
291
+ "line": 19
292
+ },
293
+ {
294
+ "file": "dotnet-legacy/Web/Orders/OrderDetail.aspx.cs",
295
+ "start_line": 20,
296
+ "code": "string sql3 = $\"DELETE FROM Carts WHERE CartId = {Request.Form[\\\"cart\\\"]}\";",
297
+ "why": "Unsanitized input concatenated into query",
298
+ "line": 20
299
+ }
300
+ ],
301
+ "severity": "critical",
302
+ "confidence": "high",
303
+ "cwe": [
304
+ "CWE-89"
305
+ ],
306
+ "recommendation": "Use parameterized queries or proper escaping",
307
+ "status": "unverified"
308
+ },
309
+ {
310
+ "finding_id": "INJ-I-0013",
311
+ "category": "sql_injection",
312
+ "subtype": "string_concatenation",
313
+ "title": "SQL Injection in dotnet-legacy/Web/Orders/OrderDetail.aspx.cs:20",
314
+ "candidate_id": "I-0013",
315
+ "location": {
316
+ "file": "dotnet-legacy/Web/Orders/OrderDetail.aspx.cs",
317
+ "start_line": 20
318
+ },
319
+ "evidence": [
320
+ {
321
+ "file": "dotnet-legacy/Web/Orders/OrderDetail.aspx.cs",
322
+ "start_line": 20,
323
+ "code": "string sql3 = $\"DELETE FROM Carts WHERE CartId = {Request.Form[\\\"cart\\\"]}\";",
324
+ "why": "Unsanitized input concatenated into query",
325
+ "line": 20
326
+ }
327
+ ],
328
+ "severity": "critical",
329
+ "confidence": "high",
330
+ "cwe": [
331
+ "CWE-89"
332
+ ],
333
+ "recommendation": "Use parameterized queries or proper escaping",
334
+ "status": "unverified"
335
+ },
336
+ {
337
+ "finding_id": "INJ-I-0014",
338
+ "category": "sql_injection",
339
+ "subtype": "string_concatenation",
340
+ "title": "SQL Injection in java-legacy/WebContent/order/detail.jsp:5",
341
+ "candidate_id": "I-0014",
342
+ "location": {
343
+ "file": "java-legacy/WebContent/order/detail.jsp",
344
+ "start_line": 5
345
+ },
346
+ "evidence": [
347
+ {
348
+ "file": "java-legacy/WebContent/order/detail.jsp",
349
+ "start_line": 5,
350
+ "code": "ResultSet rs = c.createStatement().executeQuery(\"SELECT * FROM orders WHERE order_no = '\" + no + \"'\");",
351
+ "why": "Unsanitized input concatenated into query",
352
+ "line": 5
353
+ }
354
+ ],
355
+ "severity": "critical",
356
+ "confidence": "high",
357
+ "cwe": [
358
+ "CWE-89"
359
+ ],
360
+ "recommendation": "Use prepared statements or parameterized queries",
361
+ "status": "unverified"
362
+ },
363
+ {
364
+ "finding_id": "INJ-I-0016",
365
+ "category": "sql_injection",
366
+ "subtype": "string_concatenation",
367
+ "title": "SQL Injection in java-legacy/src/com/acme/struts/EditUserAction.java:13",
368
+ "candidate_id": "I-0016",
369
+ "location": {
370
+ "file": "java-legacy/src/com/acme/struts/EditUserAction.java",
371
+ "start_line": 13
372
+ },
373
+ "evidence": [
374
+ {
375
+ "file": "java-legacy/src/com/acme/struts/EditUserAction.java",
376
+ "start_line": 13,
377
+ "code": "PreparedStatement ps = conn.prepareStatement(\"UPDATE users SET email = '\" + email + \"' WHERE id = \" + userId);",
378
+ "why": "Unsanitized input concatenated into query",
379
+ "line": 13
380
+ }
381
+ ],
382
+ "severity": "critical",
383
+ "confidence": "high",
384
+ "cwe": [
385
+ "CWE-89"
386
+ ],
387
+ "recommendation": "Use parameterized queries or proper escaping",
388
+ "status": "unverified"
389
+ },
390
+ {
391
+ "finding_id": "INJ-I-0017",
392
+ "category": "sql_injection",
393
+ "subtype": "string_concatenation",
394
+ "title": "SQL Injection in java-legacy/src/com/acme/web/InvoiceController.java:29",
395
+ "candidate_id": "I-0017",
396
+ "location": {
397
+ "file": "java-legacy/src/com/acme/web/InvoiceController.java",
398
+ "start_line": 29
399
+ },
400
+ "evidence": [
401
+ {
402
+ "file": "java-legacy/src/com/acme/web/InvoiceController.java",
403
+ "start_line": 29,
404
+ "code": "model.addAttribute(\"list\", session.createQuery(\"from Invoice i where i.customer = '\" + customer + \"'\").list());",
405
+ "why": "Unsanitized input concatenated into query",
406
+ "line": 29
407
+ }
408
+ ],
409
+ "severity": "critical",
410
+ "confidence": "high",
411
+ "cwe": [
412
+ "CWE-89"
413
+ ],
414
+ "recommendation": "Use parameterized queries or proper escaping",
415
+ "status": "unverified"
416
+ },
417
+ {
418
+ "finding_id": "INJ-I-0020",
419
+ "category": "sql_injection",
420
+ "subtype": "string_concatenation",
421
+ "title": "SQL Injection in node-express/routes/orders.js:17",
422
+ "candidate_id": "I-0020",
423
+ "location": {
424
+ "file": "node-express/routes/orders.js",
425
+ "start_line": 17
426
+ },
427
+ "evidence": [
428
+ {
429
+ "file": "node-express/routes/orders.js",
430
+ "start_line": 17,
431
+ "code": "db.query(\"SELECT * FROM reports WHERE month = '\" + req.query.month + \"'\", function (e, rows) { res.json(rows); });",
432
+ "why": "Unsanitized input concatenated into query",
433
+ "line": 17
434
+ },
435
+ {
436
+ "file": "node-express/routes/orders.js",
437
+ "start_line": 29,
438
+ "code": "db.query(`SELECT COUNT(*) AS n FROM orders WHERE shop_id = ${req.query.shop}`, function (e, r) { res.json(r); });",
439
+ "why": "Unsanitized input concatenated into query",
440
+ "line": 29
441
+ }
442
+ ],
443
+ "severity": "critical",
444
+ "confidence": "high",
445
+ "cwe": [
446
+ "CWE-89"
447
+ ],
448
+ "recommendation": "Use parameterized queries or proper escaping",
449
+ "status": "unverified"
450
+ },
451
+ {
452
+ "finding_id": "INJ-I-0021",
453
+ "category": "sql_injection",
454
+ "subtype": "string_concatenation",
455
+ "title": "SQL Injection in node-express/routes/orders.js:17",
456
+ "candidate_id": "I-0021",
457
+ "location": {
458
+ "file": "node-express/routes/orders.js",
459
+ "start_line": 29
460
+ },
461
+ "evidence": [
462
+ {
463
+ "file": "node-express/routes/orders.js",
464
+ "start_line": 17,
465
+ "code": "db.query(\"SELECT * FROM reports WHERE month = '\" + req.query.month + \"'\", function (e, rows) { res.json(rows); });",
466
+ "why": "Unsanitized input concatenated into query",
467
+ "line": 17
468
+ },
469
+ {
470
+ "file": "node-express/routes/orders.js",
471
+ "start_line": 29,
472
+ "code": "db.query(`SELECT COUNT(*) AS n FROM orders WHERE shop_id = ${req.query.shop}`, function (e, r) { res.json(r); });",
473
+ "why": "Unsanitized input concatenated into query",
474
+ "line": 29
475
+ }
476
+ ],
477
+ "severity": "critical",
478
+ "confidence": "high",
479
+ "cwe": [
480
+ "CWE-89"
481
+ ],
482
+ "recommendation": "Use parameterized queries or proper escaping",
483
+ "status": "unverified"
484
+ },
485
+ {
486
+ "finding_id": "INJ-I-0022",
487
+ "category": "sql_injection",
488
+ "subtype": "string_concatenation",
489
+ "title": "SQL Injection in node-express/routes/orders.js:17",
490
+ "candidate_id": "I-0022",
491
+ "location": {
492
+ "file": "node-express/routes/orders.js",
493
+ "start_line": 21
494
+ },
495
+ "evidence": [
496
+ {
497
+ "file": "node-express/routes/orders.js",
498
+ "start_line": 17,
499
+ "code": "db.query(\"SELECT * FROM reports WHERE month = '\" + req.query.month + \"'\", function (e, rows) { res.json(rows); });",
500
+ "why": "Unsanitized input concatenated into query",
501
+ "line": 17
502
+ },
503
+ {
504
+ "file": "node-express/routes/orders.js",
505
+ "start_line": 29,
506
+ "code": "db.query(`SELECT COUNT(*) AS n FROM orders WHERE shop_id = ${req.query.shop}`, function (e, r) { res.json(r); });",
507
+ "why": "Unsanitized input concatenated into query",
508
+ "line": 29
509
+ }
510
+ ],
511
+ "severity": "critical",
512
+ "confidence": "high",
513
+ "cwe": [
514
+ "CWE-89"
515
+ ],
516
+ "recommendation": "Use parameterized queries or proper escaping",
517
+ "status": "unverified"
518
+ },
519
+ {
520
+ "finding_id": "INJ-I-0023",
521
+ "category": "sql_injection",
522
+ "subtype": "string_concatenation",
523
+ "title": "SQL Injection in node-express/routes/orders.js:25",
524
+ "candidate_id": "I-0023",
525
+ "location": {
526
+ "file": "node-express/routes/orders.js",
527
+ "start_line": 25
528
+ },
529
+ "evidence": [
530
+ {
531
+ "file": "node-express/routes/orders.js",
532
+ "start_line": 25,
533
+ "code": "db.collection('items').find({ $where: \"this.name == '\" + req.query.n + \"'\" }).toArray(function (e, r) { res.json(r); });",
534
+ "why": "Unsanitized input concatenated into query",
535
+ "line": 25
536
+ }
537
+ ],
538
+ "severity": "critical",
539
+ "confidence": "high",
540
+ "cwe": [
541
+ "CWE-89"
542
+ ],
543
+ "recommendation": "Use parameterized queries or proper escaping",
544
+ "status": "unverified"
545
+ },
546
+ {
547
+ "finding_id": "INJ-I-0024",
548
+ "category": "sql_injection",
549
+ "subtype": "string_concatenation",
550
+ "title": "SQL Injection in perl-cgi/cgi-bin/order.cgi:13",
551
+ "candidate_id": "I-0024",
552
+ "location": {
553
+ "file": "perl-cgi/cgi-bin/order.cgi",
554
+ "start_line": 13
555
+ },
556
+ "evidence": [
557
+ {
558
+ "file": "perl-cgi/cgi-bin/order.cgi",
559
+ "start_line": 13,
560
+ "code": "my $sth = $dbh->prepare(\"SELECT * FROM orders WHERE id = $id\");",
561
+ "why": "Unsanitized input concatenated into query",
562
+ "line": 13
563
+ },
564
+ {
565
+ "file": "perl-cgi/cgi-bin/order.cgi",
566
+ "start_line": 19,
567
+ "code": "$dbh->do(\"DELETE FROM carts WHERE cart_id = \" . $q->param('cart'))",
568
+ "why": "Unsanitized input concatenated into query",
569
+ "line": 19
570
+ }
571
+ ],
572
+ "severity": "critical",
573
+ "confidence": "high",
574
+ "cwe": [
575
+ "CWE-89"
576
+ ],
577
+ "recommendation": "Use parameterized queries or proper escaping",
578
+ "status": "unverified"
579
+ },
580
+ {
581
+ "finding_id": "INJ-I-0025",
582
+ "category": "sql_injection",
583
+ "subtype": "string_concatenation",
584
+ "title": "SQL Injection in perl-cgi/cgi-bin/order.cgi:19",
585
+ "candidate_id": "I-0025",
586
+ "location": {
587
+ "file": "perl-cgi/cgi-bin/order.cgi",
588
+ "start_line": 19
589
+ },
590
+ "evidence": [
591
+ {
592
+ "file": "perl-cgi/cgi-bin/order.cgi",
593
+ "start_line": 19,
594
+ "code": "$dbh->do(\"DELETE FROM carts WHERE cart_id = \" . $q->param('cart'))",
595
+ "why": "Unsanitized input concatenated into query",
596
+ "line": 19
597
+ }
598
+ ],
599
+ "severity": "critical",
600
+ "confidence": "high",
601
+ "cwe": [
602
+ "CWE-89"
603
+ ],
604
+ "recommendation": "Use parameterized queries or proper escaping",
605
+ "status": "unverified"
606
+ },
607
+ {
608
+ "finding_id": "INJ-I-0027",
609
+ "category": "sql_injection",
610
+ "subtype": "string_concatenation",
611
+ "title": "SQL Injection in php-plain/admin.php:8",
612
+ "candidate_id": "I-0027",
613
+ "location": {
614
+ "file": "php-plain/admin.php",
615
+ "start_line": 8
616
+ },
617
+ "evidence": [
618
+ {
619
+ "file": "php-plain/admin.php",
620
+ "start_line": 8,
621
+ "code": "$r = mysql_query(\"SELECT * FROM users WHERE id = \" . $uid);",
622
+ "why": "Unsanitized input concatenated into query",
623
+ "line": 8
624
+ },
625
+ {
626
+ "file": "php-plain/admin.php",
627
+ "start_line": 12,
628
+ "code": "mysql_query(\"DELETE FROM users WHERE id = $id\");",
629
+ "why": "Unsanitized input concatenated into query",
630
+ "line": 12
631
+ }
632
+ ],
633
+ "severity": "critical",
634
+ "confidence": "high",
635
+ "cwe": [
636
+ "CWE-89"
637
+ ],
638
+ "recommendation": "Use parameterized queries or proper escaping",
639
+ "status": "unverified"
640
+ },
641
+ {
642
+ "finding_id": "INJ-I-0028",
643
+ "category": "sql_injection",
644
+ "subtype": "string_concatenation",
645
+ "title": "SQL Injection in php-plain/admin.php:12",
646
+ "candidate_id": "I-0028",
647
+ "location": {
648
+ "file": "php-plain/admin.php",
649
+ "start_line": 12
650
+ },
651
+ "evidence": [
652
+ {
653
+ "file": "php-plain/admin.php",
654
+ "start_line": 12,
655
+ "code": "mysql_query(\"DELETE FROM users WHERE id = $id\");",
656
+ "why": "Unsanitized input concatenated into query",
657
+ "line": 12
658
+ }
659
+ ],
660
+ "severity": "critical",
661
+ "confidence": "high",
662
+ "cwe": [
663
+ "CWE-89"
664
+ ],
665
+ "recommendation": "Use parameterized queries or proper escaping",
666
+ "status": "unverified"
667
+ },
668
+ {
669
+ "finding_id": "INJ-I-0029",
670
+ "category": "nosql_injection",
671
+ "subtype": "string_concatenation",
672
+ "title": "NoSQL Injection in php-plain/mongo_find.php:6",
673
+ "candidate_id": "I-0029",
674
+ "location": {
675
+ "file": "php-plain/mongo_find.php",
676
+ "start_line": 5
677
+ },
678
+ "evidence": [
679
+ {
680
+ "file": "php-plain/mongo_find.php",
681
+ "start_line": 6,
682
+ "code": "$docs = $coll->find(array('$where' => \"this.name == '\" . $_GET['n'] . \"'\"));",
683
+ "why": "Unsanitized input concatenated into query",
684
+ "line": 6
685
+ }
686
+ ],
687
+ "severity": "critical",
688
+ "confidence": "high",
689
+ "cwe": [
690
+ "CWE-89"
691
+ ],
692
+ "recommendation": "Use parameterized queries or proper escaping",
693
+ "status": "unverified"
694
+ },
695
+ {
696
+ "finding_id": "INJ-I-0030",
697
+ "category": "nosql_injection",
698
+ "subtype": "string_concatenation",
699
+ "title": "NoSQL Injection in php-plain/mongo_find.php:6",
700
+ "candidate_id": "I-0030",
701
+ "location": {
702
+ "file": "php-plain/mongo_find.php",
703
+ "start_line": 6
704
+ },
705
+ "evidence": [
706
+ {
707
+ "file": "php-plain/mongo_find.php",
708
+ "start_line": 6,
709
+ "code": "$docs = $coll->find(array('$where' => \"this.name == '\" . $_GET['n'] . \"'\"));",
710
+ "why": "Unsanitized input concatenated into query",
711
+ "line": 6
712
+ }
713
+ ],
714
+ "severity": "critical",
715
+ "confidence": "high",
716
+ "cwe": [
717
+ "CWE-89"
718
+ ],
719
+ "recommendation": "Use parameterized queries or proper escaping",
720
+ "status": "unverified"
721
+ }
722
+ ],
723
+ "candidate_verdicts": [
724
+ {
725
+ "candidate_id": "I-0001",
726
+ "verdict": "vulnerable"
727
+ },
728
+ {
729
+ "candidate_id": "I-0002",
730
+ "verdict": "vulnerable"
731
+ },
732
+ {
733
+ "candidate_id": "I-0003",
734
+ "verdict": "vulnerable"
735
+ },
736
+ {
737
+ "candidate_id": "I-0004",
738
+ "verdict": "vulnerable"
739
+ },
740
+ {
741
+ "candidate_id": "I-0005",
742
+ "verdict": "vulnerable"
743
+ },
744
+ {
745
+ "candidate_id": "I-0006",
746
+ "verdict": "vulnerable"
747
+ },
748
+ {
749
+ "candidate_id": "I-0007",
750
+ "verdict": "vulnerable"
751
+ },
752
+ {
753
+ "candidate_id": "I-0010",
754
+ "verdict": "vulnerable"
755
+ },
756
+ {
757
+ "candidate_id": "I-0011",
758
+ "verdict": "vulnerable"
759
+ },
760
+ {
761
+ "candidate_id": "I-0012",
762
+ "verdict": "vulnerable"
763
+ },
764
+ {
765
+ "candidate_id": "I-0013",
766
+ "verdict": "vulnerable"
767
+ },
768
+ {
769
+ "candidate_id": "I-0014",
770
+ "verdict": "vulnerable"
771
+ },
772
+ {
773
+ "candidate_id": "I-0016",
774
+ "verdict": "vulnerable"
775
+ },
776
+ {
777
+ "candidate_id": "I-0017",
778
+ "verdict": "vulnerable"
779
+ },
780
+ {
781
+ "candidate_id": "I-0020",
782
+ "verdict": "vulnerable"
783
+ },
784
+ {
785
+ "candidate_id": "I-0021",
786
+ "verdict": "vulnerable"
787
+ },
788
+ {
789
+ "candidate_id": "I-0022",
790
+ "verdict": "vulnerable"
791
+ },
792
+ {
793
+ "candidate_id": "I-0023",
794
+ "verdict": "vulnerable"
795
+ },
796
+ {
797
+ "candidate_id": "I-0024",
798
+ "verdict": "vulnerable"
799
+ },
800
+ {
801
+ "candidate_id": "I-0025",
802
+ "verdict": "vulnerable"
803
+ },
804
+ {
805
+ "candidate_id": "I-0027",
806
+ "verdict": "vulnerable"
807
+ },
808
+ {
809
+ "candidate_id": "I-0028",
810
+ "verdict": "vulnerable"
811
+ },
812
+ {
813
+ "candidate_id": "I-0029",
814
+ "verdict": "vulnerable"
815
+ },
816
+ {
817
+ "candidate_id": "I-0030",
818
+ "verdict": "vulnerable"
819
+ }
820
+ ]
821
+ }