thuban 0.4.2 → 0.4.5

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 (740) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +355 -122
  3. package/dist/LICENSE +21 -21
  4. package/dist/README.md +355 -122
  5. package/dist/cli.js +2 -1
  6. package/dist/package.json +62 -63
  7. package/dist/packages/crucible/.golden/golden-master.json +413 -413
  8. package/dist/packages/crucible/banner.js +1 -1
  9. package/dist/packages/crucible/rule-loader.js +1 -1
  10. package/dist/packages/crucible/rules/code-scanner-core.json +233 -129
  11. package/dist/packages/crucible/rules/command-injection.json +411 -411
  12. package/dist/packages/crucible/rules/crypto-misuse.json +35 -35
  13. package/dist/packages/crucible/rules/deserialization.json +152 -152
  14. package/dist/packages/crucible/rules/env-injection.json +46 -46
  15. package/dist/packages/crucible/rules/eval-abuse.json +104 -104
  16. package/dist/packages/crucible/rules/file-upload.json +46 -46
  17. package/dist/packages/crucible/rules/hallucination.json +22 -22
  18. package/dist/packages/crucible/rules/hardcoded-secret.json +397 -397
  19. package/dist/packages/crucible/rules/hardcoded-url.json +13 -13
  20. package/dist/packages/crucible/rules/insecure-crypto.json +302 -302
  21. package/dist/packages/crucible/rules/integer-overflow.json +35 -35
  22. package/dist/packages/crucible/rules/log-injection.json +33 -33
  23. package/dist/packages/crucible/rules/mass-assignment.json +112 -112
  24. package/dist/packages/crucible/rules/open-redirect.json +196 -196
  25. package/dist/packages/crucible/rules/path-traversal.json +422 -422
  26. package/dist/packages/crucible/rules/prototype-pollution.json +22 -22
  27. package/dist/packages/crucible/rules/sql-injection.json +619 -597
  28. package/dist/packages/crucible/rules/ssrf.json +557 -557
  29. package/dist/packages/crucible/rules/timing-attack.json +55 -55
  30. package/dist/packages/crucible/rules/unsafe-block.json +24 -24
  31. package/dist/packages/crucible/rules/xss.json +663 -641
  32. package/dist/packages/crucible/rules/xxe.json +66 -66
  33. package/dist/packages/crucible/rules/yaml-deserialization.json +22 -22
  34. package/dist/packages/crucible/rules/yaml-injection.json +22 -22
  35. package/dist/packages/crucible/seeds/csharp/seed-001.cs +28 -28
  36. package/dist/packages/crucible/seeds/csharp/seed-002.cs +24 -24
  37. package/dist/packages/crucible/seeds/csharp/seed-003.cs +30 -30
  38. package/dist/packages/crucible/seeds/csharp/seed-004.cs +31 -31
  39. package/dist/packages/crucible/seeds/csharp/seed-005.cs +28 -28
  40. package/dist/packages/crucible/seeds/csharp/seed-006.cs +25 -25
  41. package/dist/packages/crucible/seeds/csharp/seed-007.cs +34 -34
  42. package/dist/packages/crucible/seeds/csharp/seed-008.cs +23 -23
  43. package/dist/packages/crucible/seeds/csharp/seed-009.cs +27 -27
  44. package/dist/packages/crucible/seeds/csharp/seed-010.cs +29 -29
  45. package/dist/packages/crucible/seeds/csharp/seed-011.cs +32 -32
  46. package/dist/packages/crucible/seeds/csharp/seed-012.cs +27 -27
  47. package/dist/packages/crucible/seeds/csharp/seed-013.cs +27 -27
  48. package/dist/packages/crucible/seeds/csharp/seed-014.cs +26 -26
  49. package/dist/packages/crucible/seeds/csharp/seed-015.cs +33 -33
  50. package/dist/packages/crucible/seeds/csharp/seed-016.cs +25 -25
  51. package/dist/packages/crucible/seeds/csharp/seed-017.cs +22 -22
  52. package/dist/packages/crucible/seeds/csharp/seed-018.cs +26 -26
  53. package/dist/packages/crucible/seeds/csharp/seed-019.cs +25 -25
  54. package/dist/packages/crucible/seeds/csharp/seed-020.cs +22 -22
  55. package/dist/packages/crucible/seeds/csharp/seed-021.cs +28 -28
  56. package/dist/packages/crucible/seeds/csharp/seed-022.cs +25 -25
  57. package/dist/packages/crucible/seeds/csharp/seed-023.cs +33 -33
  58. package/dist/packages/crucible/seeds/csharp/seed-024.cs +31 -31
  59. package/dist/packages/crucible/seeds/csharp/seed-025.cs +31 -31
  60. package/dist/packages/crucible/seeds/csharp/seed-026.cs +25 -25
  61. package/dist/packages/crucible/seeds/csharp/seed-027.cs +29 -29
  62. package/dist/packages/crucible/seeds/csharp/seed-028.cs +25 -25
  63. package/dist/packages/crucible/seeds/csharp/seed-029.cs +27 -27
  64. package/dist/packages/crucible/seeds/csharp/seed-030.cs +27 -27
  65. package/dist/packages/crucible/seeds/csharp/seed-031.cs +28 -28
  66. package/dist/packages/crucible/seeds/csharp/seed-032.cs +30 -30
  67. package/dist/packages/crucible/seeds/csharp/seed-033.cs +27 -27
  68. package/dist/packages/crucible/seeds/csharp/seed-034.cs +25 -25
  69. package/dist/packages/crucible/seeds/csharp/seed-035.cs +32 -32
  70. package/dist/packages/crucible/seeds/csharp/seed-036.cs +28 -28
  71. package/dist/packages/crucible/seeds/csharp/seed-037.cs +29 -29
  72. package/dist/packages/crucible/seeds/csharp/seed-038.cs +28 -28
  73. package/dist/packages/crucible/seeds/csharp/seed-039.cs +29 -29
  74. package/dist/packages/crucible/seeds/csharp/seed-040.cs +28 -28
  75. package/dist/packages/crucible/seeds/csharp/seed-041.cs +33 -33
  76. package/dist/packages/crucible/seeds/csharp/seed-042.cs +27 -27
  77. package/dist/packages/crucible/seeds/csharp/seed-043.cs +27 -27
  78. package/dist/packages/crucible/seeds/csharp/seed-044.cs +25 -25
  79. package/dist/packages/crucible/seeds/csharp/seed-045.cs +30 -30
  80. package/dist/packages/crucible/seeds/csharp/seed-046.cs +29 -29
  81. package/dist/packages/crucible/seeds/csharp/seed-047.cs +26 -26
  82. package/dist/packages/crucible/seeds/csharp/seed-048.cs +31 -31
  83. package/dist/packages/crucible/seeds/csharp/seed-049.cs +27 -27
  84. package/dist/packages/crucible/seeds/csharp/seed-050.cs +30 -30
  85. package/dist/packages/crucible/seeds/csharp/seed-051.cs +34 -34
  86. package/dist/packages/crucible/seeds/csharp/seed-052.cs +36 -36
  87. package/dist/packages/crucible/seeds/go/seed-001.go +29 -29
  88. package/dist/packages/crucible/seeds/go/seed-002.go +27 -27
  89. package/dist/packages/crucible/seeds/go/seed-003.go +31 -31
  90. package/dist/packages/crucible/seeds/go/seed-004.go +27 -27
  91. package/dist/packages/crucible/seeds/go/seed-005.go +27 -27
  92. package/dist/packages/crucible/seeds/go/seed-006.go +29 -29
  93. package/dist/packages/crucible/seeds/go/seed-007.go +24 -24
  94. package/dist/packages/crucible/seeds/go/seed-008.go +25 -25
  95. package/dist/packages/crucible/seeds/go/seed-009.go +30 -30
  96. package/dist/packages/crucible/seeds/go/seed-010.go +35 -35
  97. package/dist/packages/crucible/seeds/go/seed-011.go +24 -24
  98. package/dist/packages/crucible/seeds/go/seed-012.go +24 -24
  99. package/dist/packages/crucible/seeds/go/seed-013.go +31 -31
  100. package/dist/packages/crucible/seeds/go/seed-014.go +35 -35
  101. package/dist/packages/crucible/seeds/go/seed-015.go +25 -25
  102. package/dist/packages/crucible/seeds/go/seed-016.go +19 -19
  103. package/dist/packages/crucible/seeds/go/seed-017.go +23 -23
  104. package/dist/packages/crucible/seeds/go/seed-018.go +23 -23
  105. package/dist/packages/crucible/seeds/go/seed-019.go +22 -22
  106. package/dist/packages/crucible/seeds/go/seed-020.go +31 -31
  107. package/dist/packages/crucible/seeds/go/seed-021.go +22 -22
  108. package/dist/packages/crucible/seeds/go/seed-022.go +29 -29
  109. package/dist/packages/crucible/seeds/go/seed-023.go +26 -26
  110. package/dist/packages/crucible/seeds/go/seed-024.go +27 -27
  111. package/dist/packages/crucible/seeds/go/seed-025.go +23 -23
  112. package/dist/packages/crucible/seeds/go/seed-026.go +29 -29
  113. package/dist/packages/crucible/seeds/go/seed-027.go +26 -26
  114. package/dist/packages/crucible/seeds/go/seed-028.go +23 -23
  115. package/dist/packages/crucible/seeds/go/seed-029.go +28 -28
  116. package/dist/packages/crucible/seeds/go/seed-030.go +27 -27
  117. package/dist/packages/crucible/seeds/go/seed-031.go +28 -28
  118. package/dist/packages/crucible/seeds/go/seed-032.go +27 -27
  119. package/dist/packages/crucible/seeds/go/seed-033.go +29 -29
  120. package/dist/packages/crucible/seeds/go/seed-034.go +22 -22
  121. package/dist/packages/crucible/seeds/go/seed-035.go +32 -32
  122. package/dist/packages/crucible/seeds/go/seed-036.go +27 -27
  123. package/dist/packages/crucible/seeds/go/seed-037.go +27 -27
  124. package/dist/packages/crucible/seeds/go/seed-038.go +27 -27
  125. package/dist/packages/crucible/seeds/go/seed-039.go +26 -26
  126. package/dist/packages/crucible/seeds/go/seed-040.go +37 -37
  127. package/dist/packages/crucible/seeds/go/seed-041.go +23 -23
  128. package/dist/packages/crucible/seeds/go/seed-042.go +32 -32
  129. package/dist/packages/crucible/seeds/go/seed-043.go +35 -35
  130. package/dist/packages/crucible/seeds/go/seed-044.go +25 -25
  131. package/dist/packages/crucible/seeds/go/seed-045.go +26 -26
  132. package/dist/packages/crucible/seeds/go/seed-046.go +34 -34
  133. package/dist/packages/crucible/seeds/go/seed-047.go +26 -26
  134. package/dist/packages/crucible/seeds/go/seed-048.go +29 -29
  135. package/dist/packages/crucible/seeds/go/seed-049.go +24 -24
  136. package/dist/packages/crucible/seeds/go/seed-050.go +27 -27
  137. package/dist/packages/crucible/seeds/go/seed-051.go +38 -38
  138. package/dist/packages/crucible/seeds/go/seed-052.go +27 -27
  139. package/dist/packages/crucible/seeds/java/seed-001.java +23 -23
  140. package/dist/packages/crucible/seeds/java/seed-002.java +22 -22
  141. package/dist/packages/crucible/seeds/java/seed-003.java +28 -28
  142. package/dist/packages/crucible/seeds/java/seed-004.java +26 -26
  143. package/dist/packages/crucible/seeds/java/seed-005.java +33 -33
  144. package/dist/packages/crucible/seeds/java/seed-006.java +22 -22
  145. package/dist/packages/crucible/seeds/java/seed-007.java +21 -21
  146. package/dist/packages/crucible/seeds/java/seed-008.java +29 -29
  147. package/dist/packages/crucible/seeds/java/seed-009.java +24 -24
  148. package/dist/packages/crucible/seeds/java/seed-010.java +30 -30
  149. package/dist/packages/crucible/seeds/java/seed-011.java +25 -25
  150. package/dist/packages/crucible/seeds/java/seed-012.java +20 -20
  151. package/dist/packages/crucible/seeds/java/seed-013.java +26 -26
  152. package/dist/packages/crucible/seeds/java/seed-014.java +23 -23
  153. package/dist/packages/crucible/seeds/java/seed-015.java +25 -25
  154. package/dist/packages/crucible/seeds/java/seed-016.java +22 -22
  155. package/dist/packages/crucible/seeds/java/seed-017.java +24 -24
  156. package/dist/packages/crucible/seeds/java/seed-018.java +24 -24
  157. package/dist/packages/crucible/seeds/java/seed-019.java +38 -38
  158. package/dist/packages/crucible/seeds/java/seed-020.java +24 -24
  159. package/dist/packages/crucible/seeds/java/seed-021.java +22 -22
  160. package/dist/packages/crucible/seeds/java/seed-022.java +22 -22
  161. package/dist/packages/crucible/seeds/java/seed-023.java +22 -22
  162. package/dist/packages/crucible/seeds/java/seed-024.java +25 -25
  163. package/dist/packages/crucible/seeds/java/seed-025.java +27 -27
  164. package/dist/packages/crucible/seeds/java/seed-026.java +25 -25
  165. package/dist/packages/crucible/seeds/java/seed-027.java +22 -22
  166. package/dist/packages/crucible/seeds/java/seed-028.java +21 -21
  167. package/dist/packages/crucible/seeds/java/seed-029.java +28 -28
  168. package/dist/packages/crucible/seeds/java/seed-030.java +27 -27
  169. package/dist/packages/crucible/seeds/java/seed-031.java +23 -23
  170. package/dist/packages/crucible/seeds/java/seed-032.java +22 -22
  171. package/dist/packages/crucible/seeds/java/seed-033.java +24 -24
  172. package/dist/packages/crucible/seeds/java/seed-034.java +24 -24
  173. package/dist/packages/crucible/seeds/java/seed-035.java +29 -29
  174. package/dist/packages/crucible/seeds/java/seed-036.java +25 -25
  175. package/dist/packages/crucible/seeds/java/seed-037.java +30 -30
  176. package/dist/packages/crucible/seeds/java/seed-038.java +29 -29
  177. package/dist/packages/crucible/seeds/java/seed-039.java +26 -26
  178. package/dist/packages/crucible/seeds/java/seed-040.java +31 -31
  179. package/dist/packages/crucible/seeds/java/seed-041.java +20 -20
  180. package/dist/packages/crucible/seeds/java/seed-042.java +26 -26
  181. package/dist/packages/crucible/seeds/java/seed-043.java +31 -31
  182. package/dist/packages/crucible/seeds/java/seed-044.java +22 -22
  183. package/dist/packages/crucible/seeds/java/seed-045.java +25 -25
  184. package/dist/packages/crucible/seeds/java/seed-046.java +22 -22
  185. package/dist/packages/crucible/seeds/java/seed-047.java +26 -26
  186. package/dist/packages/crucible/seeds/java/seed-048.java +24 -24
  187. package/dist/packages/crucible/seeds/java/seed-049.java +28 -28
  188. package/dist/packages/crucible/seeds/java/seed-050.java +29 -29
  189. package/dist/packages/crucible/seeds/java/seed-051.java +25 -25
  190. package/dist/packages/crucible/seeds/java/seed-052.java +32 -32
  191. package/dist/packages/crucible/seeds/js/seed-001.js +27 -27
  192. package/dist/packages/crucible/seeds/js/seed-002.js +28 -28
  193. package/dist/packages/crucible/seeds/js/seed-003.js +30 -30
  194. package/dist/packages/crucible/seeds/js/seed-004.js +28 -28
  195. package/dist/packages/crucible/seeds/js/seed-005.js +31 -31
  196. package/dist/packages/crucible/seeds/js/seed-006.js +28 -28
  197. package/dist/packages/crucible/seeds/js/seed-007.js +26 -26
  198. package/dist/packages/crucible/seeds/js/seed-008.js +30 -30
  199. package/dist/packages/crucible/seeds/js/seed-009.js +30 -30
  200. package/dist/packages/crucible/seeds/js/seed-010.js +29 -29
  201. package/dist/packages/crucible/seeds/js/seed-011.js +34 -34
  202. package/dist/packages/crucible/seeds/js/seed-012.js +32 -32
  203. package/dist/packages/crucible/seeds/js/seed-013.js +29 -29
  204. package/dist/packages/crucible/seeds/js/seed-014.js +29 -29
  205. package/dist/packages/crucible/seeds/js/seed-015.js +31 -31
  206. package/dist/packages/crucible/seeds/js/seed-016.js +31 -31
  207. package/dist/packages/crucible/seeds/js/seed-017.js +30 -30
  208. package/dist/packages/crucible/seeds/js/seed-018.js +29 -29
  209. package/dist/packages/crucible/seeds/js/seed-019.js +32 -32
  210. package/dist/packages/crucible/seeds/js/seed-020.js +29 -29
  211. package/dist/packages/crucible/seeds/js/seed-021.js +31 -31
  212. package/dist/packages/crucible/seeds/js/seed-022.js +31 -31
  213. package/dist/packages/crucible/seeds/js/seed-023.js +29 -29
  214. package/dist/packages/crucible/seeds/js/seed-024.js +29 -29
  215. package/dist/packages/crucible/seeds/js/seed-025.js +34 -34
  216. package/dist/packages/crucible/seeds/js/seed-026.js +31 -31
  217. package/dist/packages/crucible/seeds/js/seed-027.js +31 -31
  218. package/dist/packages/crucible/seeds/js/seed-028.js +33 -33
  219. package/dist/packages/crucible/seeds/js/seed-029.js +33 -33
  220. package/dist/packages/crucible/seeds/js/seed-030.js +30 -30
  221. package/dist/packages/crucible/seeds/js/seed-031.js +31 -31
  222. package/dist/packages/crucible/seeds/js/seed-032.js +34 -34
  223. package/dist/packages/crucible/seeds/js/seed-033.js +33 -33
  224. package/dist/packages/crucible/seeds/js/seed-034.js +33 -33
  225. package/dist/packages/crucible/seeds/js/seed-035.js +30 -30
  226. package/dist/packages/crucible/seeds/js/seed-036.js +30 -30
  227. package/dist/packages/crucible/seeds/js/seed-037.js +29 -29
  228. package/dist/packages/crucible/seeds/js/seed-038.js +31 -31
  229. package/dist/packages/crucible/seeds/js/seed-039.js +34 -34
  230. package/dist/packages/crucible/seeds/js/seed-040.js +35 -35
  231. package/dist/packages/crucible/seeds/js/seed-041.js +32 -32
  232. package/dist/packages/crucible/seeds/js/seed-042.js +32 -32
  233. package/dist/packages/crucible/seeds/js/seed-043.js +27 -27
  234. package/dist/packages/crucible/seeds/js/seed-044.js +29 -29
  235. package/dist/packages/crucible/seeds/js/seed-045.js +33 -33
  236. package/dist/packages/crucible/seeds/js/seed-046.js +33 -33
  237. package/dist/packages/crucible/seeds/js/seed-047.js +29 -29
  238. package/dist/packages/crucible/seeds/js/seed-048.js +29 -29
  239. package/dist/packages/crucible/seeds/js/seed-049.js +34 -34
  240. package/dist/packages/crucible/seeds/js/seed-050.js +34 -34
  241. package/dist/packages/crucible/seeds/js/seed-051.js +30 -30
  242. package/dist/packages/crucible/seeds/js/seed-052.js +30 -30
  243. package/dist/packages/crucible/seeds/js/seed-053.js +26 -26
  244. package/dist/packages/crucible/seeds/js/seed-054.js +35 -35
  245. package/dist/packages/crucible/seeds/js/seed-055.js +33 -33
  246. package/dist/packages/crucible/seeds/kotlin/seed-001.kt +24 -24
  247. package/dist/packages/crucible/seeds/kotlin/seed-002.kt +27 -27
  248. package/dist/packages/crucible/seeds/kotlin/seed-003.kt +29 -29
  249. package/dist/packages/crucible/seeds/kotlin/seed-004.kt +24 -24
  250. package/dist/packages/crucible/seeds/kotlin/seed-005.kt +29 -29
  251. package/dist/packages/crucible/seeds/kotlin/seed-006.kt +21 -21
  252. package/dist/packages/crucible/seeds/kotlin/seed-007.kt +23 -23
  253. package/dist/packages/crucible/seeds/kotlin/seed-008.kt +25 -25
  254. package/dist/packages/crucible/seeds/kotlin/seed-009.kt +21 -21
  255. package/dist/packages/crucible/seeds/kotlin/seed-010.kt +28 -28
  256. package/dist/packages/crucible/seeds/kotlin/seed-011.kt +22 -22
  257. package/dist/packages/crucible/seeds/kotlin/seed-012.kt +25 -25
  258. package/dist/packages/crucible/seeds/kotlin/seed-013.kt +30 -30
  259. package/dist/packages/crucible/seeds/kotlin/seed-014.kt +27 -27
  260. package/dist/packages/crucible/seeds/kotlin/seed-015.kt +24 -24
  261. package/dist/packages/crucible/seeds/kotlin/seed-016.kt +28 -28
  262. package/dist/packages/crucible/seeds/kotlin/seed-017.kt +33 -33
  263. package/dist/packages/crucible/seeds/kotlin/seed-018.kt +31 -31
  264. package/dist/packages/crucible/seeds/kotlin/seed-019.kt +28 -28
  265. package/dist/packages/crucible/seeds/kotlin/seed-020.kt +31 -31
  266. package/dist/packages/crucible/seeds/kotlin/seed-021.kt +34 -34
  267. package/dist/packages/crucible/seeds/kotlin/seed-022.kt +29 -29
  268. package/dist/packages/crucible/seeds/kotlin/seed-023.kt +20 -20
  269. package/dist/packages/crucible/seeds/kotlin/seed-024.kt +23 -23
  270. package/dist/packages/crucible/seeds/kotlin/seed-025.kt +23 -23
  271. package/dist/packages/crucible/seeds/kotlin/seed-026.kt +26 -26
  272. package/dist/packages/crucible/seeds/kotlin/seed-027.kt +29 -29
  273. package/dist/packages/crucible/seeds/kotlin/seed-028.kt +24 -24
  274. package/dist/packages/crucible/seeds/kotlin/seed-029.kt +27 -27
  275. package/dist/packages/crucible/seeds/kotlin/seed-030.kt +26 -26
  276. package/dist/packages/crucible/seeds/kotlin/seed-031.kt +28 -28
  277. package/dist/packages/crucible/seeds/kotlin/seed-032.kt +29 -29
  278. package/dist/packages/crucible/seeds/kotlin/seed-033.kt +30 -30
  279. package/dist/packages/crucible/seeds/kotlin/seed-034.kt +26 -26
  280. package/dist/packages/crucible/seeds/kotlin/seed-035.kt +33 -33
  281. package/dist/packages/crucible/seeds/kotlin/seed-036.kt +25 -25
  282. package/dist/packages/crucible/seeds/kotlin/seed-037.kt +26 -26
  283. package/dist/packages/crucible/seeds/kotlin/seed-038.kt +25 -25
  284. package/dist/packages/crucible/seeds/kotlin/seed-039.kt +29 -29
  285. package/dist/packages/crucible/seeds/kotlin/seed-040.kt +28 -28
  286. package/dist/packages/crucible/seeds/kotlin/seed-041.kt +31 -31
  287. package/dist/packages/crucible/seeds/kotlin/seed-042.kt +27 -27
  288. package/dist/packages/crucible/seeds/kotlin/seed-043.kt +26 -26
  289. package/dist/packages/crucible/seeds/kotlin/seed-044.kt +27 -27
  290. package/dist/packages/crucible/seeds/kotlin/seed-045.kt +27 -27
  291. package/dist/packages/crucible/seeds/kotlin/seed-046.kt +33 -33
  292. package/dist/packages/crucible/seeds/kotlin/seed-047.kt +32 -32
  293. package/dist/packages/crucible/seeds/kotlin/seed-048.kt +20 -20
  294. package/dist/packages/crucible/seeds/kotlin/seed-049.kt +23 -23
  295. package/dist/packages/crucible/seeds/kotlin/seed-050.kt +19 -19
  296. package/dist/packages/crucible/seeds/php/seed-001.php +23 -23
  297. package/dist/packages/crucible/seeds/php/seed-002.php +18 -18
  298. package/dist/packages/crucible/seeds/php/seed-003.php +25 -25
  299. package/dist/packages/crucible/seeds/php/seed-004.php +21 -21
  300. package/dist/packages/crucible/seeds/php/seed-005.php +21 -21
  301. package/dist/packages/crucible/seeds/php/seed-006.php +21 -21
  302. package/dist/packages/crucible/seeds/php/seed-007.php +18 -18
  303. package/dist/packages/crucible/seeds/php/seed-008.php +19 -19
  304. package/dist/packages/crucible/seeds/php/seed-009.php +24 -24
  305. package/dist/packages/crucible/seeds/php/seed-010.php +24 -24
  306. package/dist/packages/crucible/seeds/php/seed-011.php +18 -18
  307. package/dist/packages/crucible/seeds/php/seed-012.php +24 -24
  308. package/dist/packages/crucible/seeds/php/seed-013.php +23 -23
  309. package/dist/packages/crucible/seeds/php/seed-014.php +20 -20
  310. package/dist/packages/crucible/seeds/php/seed-015.php +18 -18
  311. package/dist/packages/crucible/seeds/php/seed-016.php +18 -18
  312. package/dist/packages/crucible/seeds/php/seed-017.php +18 -18
  313. package/dist/packages/crucible/seeds/php/seed-018.php +17 -17
  314. package/dist/packages/crucible/seeds/php/seed-019.php +24 -24
  315. package/dist/packages/crucible/seeds/php/seed-020.php +19 -19
  316. package/dist/packages/crucible/seeds/php/seed-021.php +22 -22
  317. package/dist/packages/crucible/seeds/php/seed-022.php +15 -15
  318. package/dist/packages/crucible/seeds/php/seed-023.php +24 -24
  319. package/dist/packages/crucible/seeds/php/seed-024.php +22 -22
  320. package/dist/packages/crucible/seeds/php/seed-025.php +20 -20
  321. package/dist/packages/crucible/seeds/php/seed-026.php +22 -22
  322. package/dist/packages/crucible/seeds/php/seed-027.php +15 -15
  323. package/dist/packages/crucible/seeds/php/seed-028.php +15 -15
  324. package/dist/packages/crucible/seeds/php/seed-029.php +21 -21
  325. package/dist/packages/crucible/seeds/php/seed-030.php +21 -21
  326. package/dist/packages/crucible/seeds/php/seed-031.php +23 -23
  327. package/dist/packages/crucible/seeds/php/seed-032.php +18 -18
  328. package/dist/packages/crucible/seeds/php/seed-033.php +18 -18
  329. package/dist/packages/crucible/seeds/php/seed-034.php +24 -24
  330. package/dist/packages/crucible/seeds/php/seed-035.php +22 -22
  331. package/dist/packages/crucible/seeds/php/seed-036.php +17 -17
  332. package/dist/packages/crucible/seeds/php/seed-037.php +19 -19
  333. package/dist/packages/crucible/seeds/php/seed-038.php +20 -20
  334. package/dist/packages/crucible/seeds/php/seed-039.php +15 -15
  335. package/dist/packages/crucible/seeds/php/seed-040.php +21 -21
  336. package/dist/packages/crucible/seeds/php/seed-041.php +20 -20
  337. package/dist/packages/crucible/seeds/php/seed-042.php +21 -21
  338. package/dist/packages/crucible/seeds/php/seed-043.php +21 -21
  339. package/dist/packages/crucible/seeds/php/seed-044.php +25 -25
  340. package/dist/packages/crucible/seeds/php/seed-045.php +25 -25
  341. package/dist/packages/crucible/seeds/php/seed-046.php +20 -20
  342. package/dist/packages/crucible/seeds/php/seed-047.php +21 -21
  343. package/dist/packages/crucible/seeds/php/seed-048.php +19 -19
  344. package/dist/packages/crucible/seeds/php/seed-049.php +18 -18
  345. package/dist/packages/crucible/seeds/php/seed-050.php +20 -20
  346. package/dist/packages/crucible/seeds/python/seed-001.py +33 -33
  347. package/dist/packages/crucible/seeds/python/seed-002.py +39 -39
  348. package/dist/packages/crucible/seeds/python/seed-003.py +31 -31
  349. package/dist/packages/crucible/seeds/python/seed-004.py +33 -33
  350. package/dist/packages/crucible/seeds/python/seed-005.py +33 -33
  351. package/dist/packages/crucible/seeds/python/seed-006.py +34 -34
  352. package/dist/packages/crucible/seeds/python/seed-007.py +33 -33
  353. package/dist/packages/crucible/seeds/python/seed-008.py +38 -38
  354. package/dist/packages/crucible/seeds/python/seed-009.py +38 -38
  355. package/dist/packages/crucible/seeds/python/seed-010.py +42 -42
  356. package/dist/packages/crucible/seeds/python/seed-011.py +30 -30
  357. package/dist/packages/crucible/seeds/python/seed-012.py +35 -35
  358. package/dist/packages/crucible/seeds/python/seed-013.py +33 -33
  359. package/dist/packages/crucible/seeds/python/seed-014.py +40 -40
  360. package/dist/packages/crucible/seeds/python/seed-015.py +33 -33
  361. package/dist/packages/crucible/seeds/python/seed-016.py +34 -34
  362. package/dist/packages/crucible/seeds/python/seed-017.py +34 -34
  363. package/dist/packages/crucible/seeds/python/seed-018.py +30 -30
  364. package/dist/packages/crucible/seeds/python/seed-019.py +33 -33
  365. package/dist/packages/crucible/seeds/python/seed-020.py +37 -37
  366. package/dist/packages/crucible/seeds/python/seed-021 2.py +37 -37
  367. package/dist/packages/crucible/seeds/python/seed-021.py +37 -37
  368. package/dist/packages/crucible/seeds/python/seed-022 2.py +34 -34
  369. package/dist/packages/crucible/seeds/python/seed-022.py +34 -34
  370. package/dist/packages/crucible/seeds/python/seed-023 2.py +37 -37
  371. package/dist/packages/crucible/seeds/python/seed-023.py +37 -37
  372. package/dist/packages/crucible/seeds/python/seed-024 2.py +38 -38
  373. package/dist/packages/crucible/seeds/python/seed-024.py +38 -38
  374. package/dist/packages/crucible/seeds/python/seed-025 2.py +40 -40
  375. package/dist/packages/crucible/seeds/python/seed-025.py +40 -40
  376. package/dist/packages/crucible/seeds/python/seed-026 2.py +35 -35
  377. package/dist/packages/crucible/seeds/python/seed-026.py +35 -35
  378. package/dist/packages/crucible/seeds/python/seed-027 2.py +35 -35
  379. package/dist/packages/crucible/seeds/python/seed-027.py +35 -35
  380. package/dist/packages/crucible/seeds/python/seed-028 2.py +42 -42
  381. package/dist/packages/crucible/seeds/python/seed-028.py +42 -42
  382. package/dist/packages/crucible/seeds/python/seed-029.py +42 -42
  383. package/dist/packages/crucible/seeds/python/seed-030 2.py +37 -37
  384. package/dist/packages/crucible/seeds/python/seed-030.py +37 -37
  385. package/dist/packages/crucible/seeds/python/seed-031 2.py +34 -34
  386. package/dist/packages/crucible/seeds/python/seed-031.py +34 -34
  387. package/dist/packages/crucible/seeds/python/seed-032.py +33 -33
  388. package/dist/packages/crucible/seeds/python/seed-033.py +32 -32
  389. package/dist/packages/crucible/seeds/python/seed-034.py +38 -38
  390. package/dist/packages/crucible/seeds/python/seed-035.py +35 -35
  391. package/dist/packages/crucible/seeds/python/seed-036 2.py +33 -33
  392. package/dist/packages/crucible/seeds/python/seed-036.py +33 -33
  393. package/dist/packages/crucible/seeds/python/seed-037 2.py +41 -41
  394. package/dist/packages/crucible/seeds/python/seed-037.py +41 -41
  395. package/dist/packages/crucible/seeds/python/seed-038 2.py +33 -33
  396. package/dist/packages/crucible/seeds/python/seed-038.py +33 -33
  397. package/dist/packages/crucible/seeds/python/seed-039 2.py +39 -39
  398. package/dist/packages/crucible/seeds/python/seed-039.py +39 -39
  399. package/dist/packages/crucible/seeds/python/seed-040 2.py +39 -39
  400. package/dist/packages/crucible/seeds/python/seed-040.py +39 -39
  401. package/dist/packages/crucible/seeds/python/seed-041 2.py +37 -37
  402. package/dist/packages/crucible/seeds/python/seed-041.py +37 -37
  403. package/dist/packages/crucible/seeds/python/seed-042 2.py +38 -38
  404. package/dist/packages/crucible/seeds/python/seed-042.py +38 -38
  405. package/dist/packages/crucible/seeds/python/seed-043 2.py +32 -32
  406. package/dist/packages/crucible/seeds/python/seed-043.py +32 -32
  407. package/dist/packages/crucible/seeds/python/seed-044 2.py +38 -38
  408. package/dist/packages/crucible/seeds/python/seed-044.py +38 -38
  409. package/dist/packages/crucible/seeds/python/seed-045 2.py +36 -36
  410. package/dist/packages/crucible/seeds/python/seed-045.py +36 -36
  411. package/dist/packages/crucible/seeds/python/seed-046 2.py +33 -33
  412. package/dist/packages/crucible/seeds/python/seed-046.py +33 -33
  413. package/dist/packages/crucible/seeds/python/seed-047 2.py +44 -44
  414. package/dist/packages/crucible/seeds/python/seed-047.py +44 -44
  415. package/dist/packages/crucible/seeds/python/seed-048 2.py +35 -35
  416. package/dist/packages/crucible/seeds/python/seed-048.py +35 -35
  417. package/dist/packages/crucible/seeds/python/seed-049 2.py +39 -39
  418. package/dist/packages/crucible/seeds/python/seed-049.py +39 -39
  419. package/dist/packages/crucible/seeds/python/seed-050 2.py +39 -39
  420. package/dist/packages/crucible/seeds/python/seed-050.py +39 -39
  421. package/dist/packages/crucible/seeds/python/seed-051 2.py +38 -38
  422. package/dist/packages/crucible/seeds/python/seed-051.py +38 -38
  423. package/dist/packages/crucible/seeds/python/seed-052 2.py +41 -41
  424. package/dist/packages/crucible/seeds/python/seed-052.py +41 -41
  425. package/dist/packages/crucible/seeds/ruby/seed-001 2.rb +15 -15
  426. package/dist/packages/crucible/seeds/ruby/seed-001.rb +15 -15
  427. package/dist/packages/crucible/seeds/ruby/seed-002 2.rb +22 -22
  428. package/dist/packages/crucible/seeds/ruby/seed-002.rb +22 -22
  429. package/dist/packages/crucible/seeds/ruby/seed-003 2.rb +25 -25
  430. package/dist/packages/crucible/seeds/ruby/seed-003.rb +25 -25
  431. package/dist/packages/crucible/seeds/ruby/seed-004 2.rb +17 -17
  432. package/dist/packages/crucible/seeds/ruby/seed-004.rb +17 -17
  433. package/dist/packages/crucible/seeds/ruby/seed-005 2.rb +21 -21
  434. package/dist/packages/crucible/seeds/ruby/seed-005.rb +21 -21
  435. package/dist/packages/crucible/seeds/ruby/seed-006 2.rb +17 -17
  436. package/dist/packages/crucible/seeds/ruby/seed-006.rb +17 -17
  437. package/dist/packages/crucible/seeds/ruby/seed-007 2.rb +16 -16
  438. package/dist/packages/crucible/seeds/ruby/seed-007.rb +16 -16
  439. package/dist/packages/crucible/seeds/ruby/seed-008 2.rb +18 -18
  440. package/dist/packages/crucible/seeds/ruby/seed-008.rb +18 -18
  441. package/dist/packages/crucible/seeds/ruby/seed-009 2.rb +20 -20
  442. package/dist/packages/crucible/seeds/ruby/seed-009.rb +20 -20
  443. package/dist/packages/crucible/seeds/ruby/seed-010 2.rb +24 -24
  444. package/dist/packages/crucible/seeds/ruby/seed-010.rb +24 -24
  445. package/dist/packages/crucible/seeds/ruby/seed-011 2.rb +21 -21
  446. package/dist/packages/crucible/seeds/ruby/seed-011.rb +21 -21
  447. package/dist/packages/crucible/seeds/ruby/seed-012 2.rb +22 -22
  448. package/dist/packages/crucible/seeds/ruby/seed-012.rb +22 -22
  449. package/dist/packages/crucible/seeds/ruby/seed-013 2.rb +21 -21
  450. package/dist/packages/crucible/seeds/ruby/seed-013.rb +21 -21
  451. package/dist/packages/crucible/seeds/ruby/seed-014 2.rb +16 -16
  452. package/dist/packages/crucible/seeds/ruby/seed-014.rb +16 -16
  453. package/dist/packages/crucible/seeds/ruby/seed-015 2.rb +18 -18
  454. package/dist/packages/crucible/seeds/ruby/seed-015.rb +18 -18
  455. package/dist/packages/crucible/seeds/ruby/seed-016 2.rb +17 -17
  456. package/dist/packages/crucible/seeds/ruby/seed-016.rb +17 -17
  457. package/dist/packages/crucible/seeds/ruby/seed-017 2.rb +25 -25
  458. package/dist/packages/crucible/seeds/ruby/seed-017.rb +25 -25
  459. package/dist/packages/crucible/seeds/ruby/seed-018 2.rb +23 -23
  460. package/dist/packages/crucible/seeds/ruby/seed-018.rb +23 -23
  461. package/dist/packages/crucible/seeds/ruby/seed-019 2.rb +20 -20
  462. package/dist/packages/crucible/seeds/ruby/seed-019.rb +20 -20
  463. package/dist/packages/crucible/seeds/ruby/seed-020 2.rb +17 -17
  464. package/dist/packages/crucible/seeds/ruby/seed-020.rb +17 -17
  465. package/dist/packages/crucible/seeds/ruby/seed-021 2.rb +20 -20
  466. package/dist/packages/crucible/seeds/ruby/seed-021.rb +20 -20
  467. package/dist/packages/crucible/seeds/ruby/seed-022 2.rb +21 -21
  468. package/dist/packages/crucible/seeds/ruby/seed-022.rb +21 -21
  469. package/dist/packages/crucible/seeds/ruby/seed-023 2.rb +19 -19
  470. package/dist/packages/crucible/seeds/ruby/seed-023.rb +19 -19
  471. package/dist/packages/crucible/seeds/ruby/seed-024 2.rb +17 -17
  472. package/dist/packages/crucible/seeds/ruby/seed-024.rb +17 -17
  473. package/dist/packages/crucible/seeds/ruby/seed-025 2.rb +17 -17
  474. package/dist/packages/crucible/seeds/ruby/seed-025.rb +17 -17
  475. package/dist/packages/crucible/seeds/ruby/seed-026 2.rb +18 -18
  476. package/dist/packages/crucible/seeds/ruby/seed-026.rb +18 -18
  477. package/dist/packages/crucible/seeds/ruby/seed-027 2.rb +21 -21
  478. package/dist/packages/crucible/seeds/ruby/seed-027.rb +21 -21
  479. package/dist/packages/crucible/seeds/ruby/seed-028 2.rb +22 -22
  480. package/dist/packages/crucible/seeds/ruby/seed-028.rb +22 -22
  481. package/dist/packages/crucible/seeds/ruby/seed-029 2.rb +19 -19
  482. package/dist/packages/crucible/seeds/ruby/seed-029.rb +19 -19
  483. package/dist/packages/crucible/seeds/ruby/seed-030 2.rb +20 -20
  484. package/dist/packages/crucible/seeds/ruby/seed-030.rb +20 -20
  485. package/dist/packages/crucible/seeds/ruby/seed-031 2.rb +17 -17
  486. package/dist/packages/crucible/seeds/ruby/seed-031.rb +17 -17
  487. package/dist/packages/crucible/seeds/ruby/seed-032 2.rb +22 -22
  488. package/dist/packages/crucible/seeds/ruby/seed-032.rb +22 -22
  489. package/dist/packages/crucible/seeds/ruby/seed-033 2.rb +18 -18
  490. package/dist/packages/crucible/seeds/ruby/seed-033.rb +18 -18
  491. package/dist/packages/crucible/seeds/ruby/seed-034 2.rb +19 -19
  492. package/dist/packages/crucible/seeds/ruby/seed-034.rb +19 -19
  493. package/dist/packages/crucible/seeds/ruby/seed-035 2.rb +19 -19
  494. package/dist/packages/crucible/seeds/ruby/seed-035.rb +19 -19
  495. package/dist/packages/crucible/seeds/ruby/seed-036 2.rb +18 -18
  496. package/dist/packages/crucible/seeds/ruby/seed-036.rb +18 -18
  497. package/dist/packages/crucible/seeds/ruby/seed-037 2.rb +21 -21
  498. package/dist/packages/crucible/seeds/ruby/seed-037.rb +21 -21
  499. package/dist/packages/crucible/seeds/ruby/seed-038 2.rb +24 -24
  500. package/dist/packages/crucible/seeds/ruby/seed-038.rb +24 -24
  501. package/dist/packages/crucible/seeds/ruby/seed-039 2.rb +24 -24
  502. package/dist/packages/crucible/seeds/ruby/seed-039.rb +24 -24
  503. package/dist/packages/crucible/seeds/ruby/seed-040 2.rb +22 -22
  504. package/dist/packages/crucible/seeds/ruby/seed-040.rb +22 -22
  505. package/dist/packages/crucible/seeds/ruby/seed-041 2.rb +23 -23
  506. package/dist/packages/crucible/seeds/ruby/seed-041.rb +23 -23
  507. package/dist/packages/crucible/seeds/ruby/seed-042 2.rb +25 -25
  508. package/dist/packages/crucible/seeds/ruby/seed-042.rb +25 -25
  509. package/dist/packages/crucible/seeds/ruby/seed-043 2.rb +23 -23
  510. package/dist/packages/crucible/seeds/ruby/seed-043.rb +23 -23
  511. package/dist/packages/crucible/seeds/ruby/seed-044 2.rb +16 -16
  512. package/dist/packages/crucible/seeds/ruby/seed-044.rb +16 -16
  513. package/dist/packages/crucible/seeds/ruby/seed-045 2.rb +22 -22
  514. package/dist/packages/crucible/seeds/ruby/seed-045.rb +22 -22
  515. package/dist/packages/crucible/seeds/ruby/seed-046 2.rb +27 -27
  516. package/dist/packages/crucible/seeds/ruby/seed-046.rb +27 -27
  517. package/dist/packages/crucible/seeds/ruby/seed-047 2.rb +26 -26
  518. package/dist/packages/crucible/seeds/ruby/seed-047.rb +26 -26
  519. package/dist/packages/crucible/seeds/ruby/seed-048 2.rb +24 -24
  520. package/dist/packages/crucible/seeds/ruby/seed-048.rb +24 -24
  521. package/dist/packages/crucible/seeds/ruby/seed-049 2.rb +20 -20
  522. package/dist/packages/crucible/seeds/ruby/seed-049.rb +20 -20
  523. package/dist/packages/crucible/seeds/ruby/seed-050 2.rb +27 -27
  524. package/dist/packages/crucible/seeds/ruby/seed-050.rb +27 -27
  525. package/dist/packages/crucible/seeds/rust/seed-001 2.rs +25 -25
  526. package/dist/packages/crucible/seeds/rust/seed-001.rs +25 -25
  527. package/dist/packages/crucible/seeds/rust/seed-002 2.rs +20 -20
  528. package/dist/packages/crucible/seeds/rust/seed-002.rs +20 -20
  529. package/dist/packages/crucible/seeds/rust/seed-003 2.rs +23 -23
  530. package/dist/packages/crucible/seeds/rust/seed-003.rs +23 -23
  531. package/dist/packages/crucible/seeds/rust/seed-004 2.rs +21 -21
  532. package/dist/packages/crucible/seeds/rust/seed-004.rs +21 -21
  533. package/dist/packages/crucible/seeds/rust/seed-005 2.rs +21 -21
  534. package/dist/packages/crucible/seeds/rust/seed-005.rs +21 -21
  535. package/dist/packages/crucible/seeds/rust/seed-006 2.rs +24 -24
  536. package/dist/packages/crucible/seeds/rust/seed-006.rs +24 -24
  537. package/dist/packages/crucible/seeds/rust/seed-007 2.rs +20 -20
  538. package/dist/packages/crucible/seeds/rust/seed-007.rs +20 -20
  539. package/dist/packages/crucible/seeds/rust/seed-008 2.rs +19 -19
  540. package/dist/packages/crucible/seeds/rust/seed-008.rs +19 -19
  541. package/dist/packages/crucible/seeds/rust/seed-009 2.rs +28 -28
  542. package/dist/packages/crucible/seeds/rust/seed-009.rs +28 -28
  543. package/dist/packages/crucible/seeds/rust/seed-010 2.rs +28 -28
  544. package/dist/packages/crucible/seeds/rust/seed-010.rs +28 -28
  545. package/dist/packages/crucible/seeds/rust/seed-011 2.rs +25 -25
  546. package/dist/packages/crucible/seeds/rust/seed-011.rs +25 -25
  547. package/dist/packages/crucible/seeds/rust/seed-012 2.rs +31 -31
  548. package/dist/packages/crucible/seeds/rust/seed-012.rs +31 -31
  549. package/dist/packages/crucible/seeds/rust/seed-013 2.rs +27 -27
  550. package/dist/packages/crucible/seeds/rust/seed-013.rs +27 -27
  551. package/dist/packages/crucible/seeds/rust/seed-014 2.rs +30 -30
  552. package/dist/packages/crucible/seeds/rust/seed-014.rs +30 -30
  553. package/dist/packages/crucible/seeds/rust/seed-015 2.rs +33 -33
  554. package/dist/packages/crucible/seeds/rust/seed-015.rs +33 -33
  555. package/dist/packages/crucible/seeds/rust/seed-016 2.rs +22 -22
  556. package/dist/packages/crucible/seeds/rust/seed-016.rs +22 -22
  557. package/dist/packages/crucible/seeds/rust/seed-017 2.rs +28 -28
  558. package/dist/packages/crucible/seeds/rust/seed-017.rs +28 -28
  559. package/dist/packages/crucible/seeds/rust/seed-018 2.rs +21 -21
  560. package/dist/packages/crucible/seeds/rust/seed-018.rs +21 -21
  561. package/dist/packages/crucible/seeds/rust/seed-019 2.rs +36 -36
  562. package/dist/packages/crucible/seeds/rust/seed-019.rs +36 -36
  563. package/dist/packages/crucible/seeds/rust/seed-020 2.rs +27 -27
  564. package/dist/packages/crucible/seeds/rust/seed-020.rs +27 -27
  565. package/dist/packages/crucible/seeds/rust/seed-021 2.rs +26 -26
  566. package/dist/packages/crucible/seeds/rust/seed-021.rs +26 -26
  567. package/dist/packages/crucible/seeds/rust/seed-022 2.rs +23 -23
  568. package/dist/packages/crucible/seeds/rust/seed-022.rs +23 -23
  569. package/dist/packages/crucible/seeds/rust/seed-023 2.rs +22 -22
  570. package/dist/packages/crucible/seeds/rust/seed-023.rs +22 -22
  571. package/dist/packages/crucible/seeds/rust/seed-024 2.rs +24 -24
  572. package/dist/packages/crucible/seeds/rust/seed-024.rs +24 -24
  573. package/dist/packages/crucible/seeds/rust/seed-025 2.rs +29 -29
  574. package/dist/packages/crucible/seeds/rust/seed-025.rs +29 -29
  575. package/dist/packages/crucible/seeds/rust/seed-026 2.rs +23 -23
  576. package/dist/packages/crucible/seeds/rust/seed-026.rs +23 -23
  577. package/dist/packages/crucible/seeds/rust/seed-027 2.rs +24 -24
  578. package/dist/packages/crucible/seeds/rust/seed-027.rs +24 -24
  579. package/dist/packages/crucible/seeds/rust/seed-028 2.rs +25 -25
  580. package/dist/packages/crucible/seeds/rust/seed-028.rs +25 -25
  581. package/dist/packages/crucible/seeds/rust/seed-029 2.rs +25 -25
  582. package/dist/packages/crucible/seeds/rust/seed-029.rs +25 -25
  583. package/dist/packages/crucible/seeds/rust/seed-030 2.rs +30 -30
  584. package/dist/packages/crucible/seeds/rust/seed-030.rs +30 -30
  585. package/dist/packages/crucible/seeds/rust/seed-031 2.rs +22 -22
  586. package/dist/packages/crucible/seeds/rust/seed-031.rs +22 -22
  587. package/dist/packages/crucible/seeds/rust/seed-032 2.rs +25 -25
  588. package/dist/packages/crucible/seeds/rust/seed-032.rs +25 -25
  589. package/dist/packages/crucible/seeds/rust/seed-033 2.rs +25 -25
  590. package/dist/packages/crucible/seeds/rust/seed-033.rs +25 -25
  591. package/dist/packages/crucible/seeds/rust/seed-034 2.rs +20 -20
  592. package/dist/packages/crucible/seeds/rust/seed-034.rs +20 -20
  593. package/dist/packages/crucible/seeds/rust/seed-035 2.rs +28 -28
  594. package/dist/packages/crucible/seeds/rust/seed-035.rs +28 -28
  595. package/dist/packages/crucible/seeds/rust/seed-036 2.rs +26 -26
  596. package/dist/packages/crucible/seeds/rust/seed-036.rs +26 -26
  597. package/dist/packages/crucible/seeds/rust/seed-037 2.rs +31 -31
  598. package/dist/packages/crucible/seeds/rust/seed-037.rs +31 -31
  599. package/dist/packages/crucible/seeds/rust/seed-038 2.rs +25 -25
  600. package/dist/packages/crucible/seeds/rust/seed-038.rs +25 -25
  601. package/dist/packages/crucible/seeds/rust/seed-039 2.rs +28 -28
  602. package/dist/packages/crucible/seeds/rust/seed-039.rs +28 -28
  603. package/dist/packages/crucible/seeds/rust/seed-040 2.rs +27 -27
  604. package/dist/packages/crucible/seeds/rust/seed-040.rs +27 -27
  605. package/dist/packages/crucible/seeds/rust/seed-041 2.rs +32 -32
  606. package/dist/packages/crucible/seeds/rust/seed-041.rs +32 -32
  607. package/dist/packages/crucible/seeds/rust/seed-042 2.rs +27 -27
  608. package/dist/packages/crucible/seeds/rust/seed-042.rs +27 -27
  609. package/dist/packages/crucible/seeds/rust/seed-043 2.rs +29 -29
  610. package/dist/packages/crucible/seeds/rust/seed-043.rs +29 -29
  611. package/dist/packages/crucible/seeds/rust/seed-044 2.rs +25 -25
  612. package/dist/packages/crucible/seeds/rust/seed-044.rs +25 -25
  613. package/dist/packages/crucible/seeds/rust/seed-045 2.rs +28 -28
  614. package/dist/packages/crucible/seeds/rust/seed-045.rs +28 -28
  615. package/dist/packages/crucible/seeds/rust/seed-046 2.rs +25 -25
  616. package/dist/packages/crucible/seeds/rust/seed-046.rs +25 -25
  617. package/dist/packages/crucible/seeds/rust/seed-047 2.rs +34 -34
  618. package/dist/packages/crucible/seeds/rust/seed-047.rs +34 -34
  619. package/dist/packages/crucible/seeds/rust/seed-048 2.rs +21 -21
  620. package/dist/packages/crucible/seeds/rust/seed-048.rs +21 -21
  621. package/dist/packages/crucible/seeds/rust/seed-049 2.rs +26 -26
  622. package/dist/packages/crucible/seeds/rust/seed-049.rs +26 -26
  623. package/dist/packages/crucible/seeds/rust/seed-050 2.rs +23 -23
  624. package/dist/packages/crucible/seeds/rust/seed-050.rs +23 -23
  625. package/dist/packages/crucible/seeds/ts/seed-001 2.ts +32 -32
  626. package/dist/packages/crucible/seeds/ts/seed-001.ts +32 -32
  627. package/dist/packages/crucible/seeds/ts/seed-002 2.ts +34 -34
  628. package/dist/packages/crucible/seeds/ts/seed-002.ts +34 -34
  629. package/dist/packages/crucible/seeds/ts/seed-003 2.ts +28 -28
  630. package/dist/packages/crucible/seeds/ts/seed-003.ts +28 -28
  631. package/dist/packages/crucible/seeds/ts/seed-004 2.ts +34 -34
  632. package/dist/packages/crucible/seeds/ts/seed-004.ts +34 -34
  633. package/dist/packages/crucible/seeds/ts/seed-005 2.ts +32 -32
  634. package/dist/packages/crucible/seeds/ts/seed-005.ts +32 -32
  635. package/dist/packages/crucible/seeds/ts/seed-006 2.ts +31 -31
  636. package/dist/packages/crucible/seeds/ts/seed-006.ts +31 -31
  637. package/dist/packages/crucible/seeds/ts/seed-007 2.ts +28 -28
  638. package/dist/packages/crucible/seeds/ts/seed-007.ts +28 -28
  639. package/dist/packages/crucible/seeds/ts/seed-008 2.ts +40 -40
  640. package/dist/packages/crucible/seeds/ts/seed-008.ts +40 -40
  641. package/dist/packages/crucible/seeds/ts/seed-009 2.ts +31 -31
  642. package/dist/packages/crucible/seeds/ts/seed-009.ts +31 -31
  643. package/dist/packages/crucible/seeds/ts/seed-010 2.ts +33 -33
  644. package/dist/packages/crucible/seeds/ts/seed-010.ts +33 -33
  645. package/dist/packages/crucible/seeds/ts/seed-011 2.ts +29 -29
  646. package/dist/packages/crucible/seeds/ts/seed-011.ts +29 -29
  647. package/dist/packages/crucible/seeds/ts/seed-012 2.ts +34 -34
  648. package/dist/packages/crucible/seeds/ts/seed-012.ts +34 -34
  649. package/dist/packages/crucible/seeds/ts/seed-013 2.ts +31 -31
  650. package/dist/packages/crucible/seeds/ts/seed-013.ts +31 -31
  651. package/dist/packages/crucible/seeds/ts/seed-014 2.ts +36 -36
  652. package/dist/packages/crucible/seeds/ts/seed-014.ts +36 -36
  653. package/dist/packages/crucible/seeds/ts/seed-015 2.ts +31 -31
  654. package/dist/packages/crucible/seeds/ts/seed-015.ts +31 -31
  655. package/dist/packages/crucible/seeds/ts/seed-016 2.ts +37 -37
  656. package/dist/packages/crucible/seeds/ts/seed-016.ts +37 -37
  657. package/dist/packages/crucible/seeds/ts/seed-017 2.ts +44 -44
  658. package/dist/packages/crucible/seeds/ts/seed-017.ts +44 -44
  659. package/dist/packages/crucible/seeds/ts/seed-018 2.ts +33 -33
  660. package/dist/packages/crucible/seeds/ts/seed-018.ts +33 -33
  661. package/dist/packages/crucible/seeds/ts/seed-019 2.ts +32 -32
  662. package/dist/packages/crucible/seeds/ts/seed-019.ts +32 -32
  663. package/dist/packages/crucible/seeds/ts/seed-020 2.ts +33 -33
  664. package/dist/packages/crucible/seeds/ts/seed-020.ts +33 -33
  665. package/dist/packages/crucible/seeds/ts/seed-021 2.ts +33 -33
  666. package/dist/packages/crucible/seeds/ts/seed-021.ts +33 -33
  667. package/dist/packages/crucible/seeds/ts/seed-022 2.ts +34 -34
  668. package/dist/packages/crucible/seeds/ts/seed-022.ts +34 -34
  669. package/dist/packages/crucible/seeds/ts/seed-023 2.ts +33 -33
  670. package/dist/packages/crucible/seeds/ts/seed-023.ts +33 -33
  671. package/dist/packages/crucible/seeds/ts/seed-024 2.ts +35 -35
  672. package/dist/packages/crucible/seeds/ts/seed-024.ts +35 -35
  673. package/dist/packages/crucible/seeds/ts/seed-025 2.ts +29 -29
  674. package/dist/packages/crucible/seeds/ts/seed-025.ts +29 -29
  675. package/dist/packages/crucible/seeds/ts/seed-026 2.ts +36 -36
  676. package/dist/packages/crucible/seeds/ts/seed-026.ts +36 -36
  677. package/dist/packages/crucible/seeds/ts/seed-027 2.ts +30 -30
  678. package/dist/packages/crucible/seeds/ts/seed-027.ts +30 -30
  679. package/dist/packages/crucible/seeds/ts/seed-028 2.ts +32 -32
  680. package/dist/packages/crucible/seeds/ts/seed-028.ts +32 -32
  681. package/dist/packages/crucible/seeds/ts/seed-029 2.ts +34 -34
  682. package/dist/packages/crucible/seeds/ts/seed-029.ts +34 -34
  683. package/dist/packages/crucible/seeds/ts/seed-030 2.ts +37 -37
  684. package/dist/packages/crucible/seeds/ts/seed-030.ts +37 -37
  685. package/dist/packages/crucible/seeds/ts/seed-031 2.ts +31 -31
  686. package/dist/packages/crucible/seeds/ts/seed-031.ts +31 -31
  687. package/dist/packages/crucible/seeds/ts/seed-032 2.ts +32 -32
  688. package/dist/packages/crucible/seeds/ts/seed-032.ts +32 -32
  689. package/dist/packages/crucible/seeds/ts/seed-033 2.ts +32 -32
  690. package/dist/packages/crucible/seeds/ts/seed-033.ts +32 -32
  691. package/dist/packages/crucible/seeds/ts/seed-034 2.ts +34 -34
  692. package/dist/packages/crucible/seeds/ts/seed-034.ts +34 -34
  693. package/dist/packages/crucible/seeds/ts/seed-035 2.ts +29 -29
  694. package/dist/packages/crucible/seeds/ts/seed-035.ts +29 -29
  695. package/dist/packages/crucible/seeds/ts/seed-036 2.ts +34 -34
  696. package/dist/packages/crucible/seeds/ts/seed-036.ts +34 -34
  697. package/dist/packages/crucible/seeds/ts/seed-037 2.ts +33 -33
  698. package/dist/packages/crucible/seeds/ts/seed-037.ts +33 -33
  699. package/dist/packages/crucible/seeds/ts/seed-038 2.ts +29 -29
  700. package/dist/packages/crucible/seeds/ts/seed-038.ts +29 -29
  701. package/dist/packages/crucible/seeds/ts/seed-039 2.ts +35 -35
  702. package/dist/packages/crucible/seeds/ts/seed-039.ts +35 -35
  703. package/dist/packages/crucible/seeds/ts/seed-040 2.ts +31 -31
  704. package/dist/packages/crucible/seeds/ts/seed-040.ts +31 -31
  705. package/dist/packages/crucible/seeds/ts/seed-041 2.ts +29 -29
  706. package/dist/packages/crucible/seeds/ts/seed-041.ts +29 -29
  707. package/dist/packages/crucible/seeds/ts/seed-042 2.ts +33 -33
  708. package/dist/packages/crucible/seeds/ts/seed-042.ts +33 -33
  709. package/dist/packages/crucible/seeds/ts/seed-043 2.ts +32 -32
  710. package/dist/packages/crucible/seeds/ts/seed-043.ts +32 -32
  711. package/dist/packages/crucible/seeds/ts/seed-044 2.ts +36 -36
  712. package/dist/packages/crucible/seeds/ts/seed-044.ts +36 -36
  713. package/dist/packages/crucible/seeds/ts/seed-045 2.ts +39 -39
  714. package/dist/packages/crucible/seeds/ts/seed-045.ts +39 -39
  715. package/dist/packages/crucible/seeds/ts/seed-046 2.ts +41 -41
  716. package/dist/packages/crucible/seeds/ts/seed-046.ts +41 -41
  717. package/dist/packages/crucible/seeds/ts/seed-047 2.ts +33 -33
  718. package/dist/packages/crucible/seeds/ts/seed-047.ts +33 -33
  719. package/dist/packages/crucible/seeds/ts/seed-048 2.ts +33 -33
  720. package/dist/packages/crucible/seeds/ts/seed-048.ts +33 -33
  721. package/dist/packages/crucible/seeds/ts/seed-049 2.ts +34 -34
  722. package/dist/packages/crucible/seeds/ts/seed-049.ts +34 -34
  723. package/dist/packages/crucible/seeds/ts/seed-050 2.ts +41 -41
  724. package/dist/packages/crucible/seeds/ts/seed-050.ts +41 -41
  725. package/dist/packages/crucible/seeds/ts/seed-051 2.ts +34 -34
  726. package/dist/packages/crucible/seeds/ts/seed-051.ts +34 -34
  727. package/dist/packages/crucible/seeds/ts/seed-052 2.ts +36 -36
  728. package/dist/packages/crucible/seeds/ts/seed-052.ts +36 -36
  729. package/dist/packages/scanner/ai-confidence-scorer.js +1 -1
  730. package/dist/packages/scanner/baseline-manager.js +1 -1
  731. package/dist/packages/scanner/code-scanner.js +1 -1
  732. package/dist/packages/scanner/copy-paste-detector.js +1 -1
  733. package/dist/packages/scanner/drift-detector.js +1 -1
  734. package/dist/packages/scanner/export-verifier.js +1 -1
  735. package/dist/packages/scanner/ghost-code-detector.js +1 -1
  736. package/dist/packages/scanner/hallucination-detector.js +1 -1
  737. package/dist/packages/scanner/license-manager.js +1 -1
  738. package/dist/packages/scanner/monitor-service.js +1 -1
  739. package/dist/packages/scanner/taint-tracker.js +1 -1
  740. package/package.json +62 -63
@@ -1,557 +1,557 @@
1
- [
2
- {
3
- "id": "SSRF001",
4
- "pattern": "\\bhttp\\s*\\.\\s*Get\\s*\\(\\s*\\w+[Uu][Rr][Ll]\\b|\\bhttp\\s*\\.\\s*Get\\s*\\(\\s*(?:target|url|endpoint|src|source)\\b",
5
- "flags": "i",
6
- "category": "ssrf",
7
- "description": "SSRF — Go: http.Get() with any variable (targetURL, avatarURL, etc.)",
8
- "language": [
9
- "go"
10
- ],
11
- "severity": "high"
12
- },
13
- {
14
- "id": "SSRF002",
15
- "pattern": "\\bDownloadString\\s*\\(\\s*\\w*[Uu]rl\\b|\\bDownloadString\\s*\\(\\s*(?:url|target|endpoint)\\b",
16
- "flags": "i",
17
- "category": "ssrf",
18
- "description": "SSRF — C#: WebClient.DownloadString(variable), HttpClient BaseAddress from Uri(variable)",
19
- "language": [
20
- "csharp"
21
- ],
22
- "severity": "high"
23
- },
24
- {
25
- "id": "SSRF003",
26
- "pattern": "new\\s+System\\.Uri\\s*\\(\\s*\\w*[Uu]rl\\b|new\\s+Uri\\s*\\(\\s*\\w*(?:[Uu]rl|[Ee]ndpoint|[Ss]ervice)",
27
- "flags": "i",
28
- "category": "ssrf",
29
- "description": "SSRF — C#: WebClient.DownloadString(variable), HttpClient BaseAddress from Uri(variable)",
30
- "language": [
31
- "csharp"
32
- ],
33
- "severity": "high"
34
- },
35
- {
36
- "id": "SSRF004",
37
- "pattern": "requests\\.get\\s*\\(\\s*(?:url|URL)\\b|http\\.get\\s*\\([^)]*req\\.|fetchUrl\\s*\\(.*req",
38
- "flags": "",
39
- "category": "ssrf",
40
- "description": "SSRF (original patterns)",
41
- "language": [
42
- "js",
43
- "ts",
44
- "python",
45
- "java",
46
- "go",
47
- "csharp",
48
- "php",
49
- "ruby",
50
- "rust",
51
- "kotlin"
52
- ],
53
- "severity": "high"
54
- },
55
- {
56
- "id": "SSRF005",
57
- "pattern": "got\\s*\\(\\s*(?:url|targetUrl|userUrl)|superagent\\.get\\s*\\(\\s*\\w*[Uu]rl",
58
- "flags": "i",
59
- "category": "ssrf",
60
- "description": "SSRF (original patterns)",
61
- "language": [
62
- "js",
63
- "ts",
64
- "python",
65
- "java",
66
- "go",
67
- "csharp",
68
- "php",
69
- "ruby",
70
- "rust",
71
- "kotlin"
72
- ],
73
- "severity": "high"
74
- },
75
- {
76
- "id": "SSRF006",
77
- "pattern": "new\\s+URL\\s*\\([^)]*(?:req\\.|request\\.|getParameter|FormValue)\\s*|URL\\.openConnection|URL\\.openStream",
78
- "flags": "i",
79
- "category": "ssrf",
80
- "description": "SSRF (original patterns)",
81
- "language": [
82
- "js",
83
- "ts",
84
- "python",
85
- "java",
86
- "go",
87
- "csharp",
88
- "php",
89
- "ruby",
90
- "rust",
91
- "kotlin"
92
- ],
93
- "severity": "high"
94
- },
95
- {
96
- "id": "SSRF007",
97
- "pattern": "HttpClient.*GetAsync\\s*\\(\\s*\\w*[Uu]rl|HttpClient.*PostAsync\\s*\\(\\s*\\w*[Uu]rl",
98
- "flags": "i",
99
- "category": "ssrf",
100
- "description": "SSRF (original patterns)",
101
- "language": [
102
- "js",
103
- "ts",
104
- "python",
105
- "java",
106
- "go",
107
- "csharp",
108
- "php",
109
- "ruby",
110
- "rust",
111
- "kotlin"
112
- ],
113
- "severity": "high"
114
- },
115
- {
116
- "id": "SSRF008",
117
- "pattern": "fetch\\s*\\(\\s*(?:req\\.|request\\.|url|targetUrl|webhookUrl|userUrl)",
118
- "flags": "i",
119
- "category": "ssrf",
120
- "description": "fetch with user URL",
121
- "language": [
122
- "js",
123
- "ts",
124
- "python",
125
- "java",
126
- "go",
127
- "csharp",
128
- "php",
129
- "ruby",
130
- "rust",
131
- "kotlin"
132
- ],
133
- "severity": "high"
134
- },
135
- {
136
- "id": "SSRF009",
137
- "pattern": "axios\\s*\\.\\s*(?:get|post|put|delete|request)\\s*\\(\\s*\\w*[Uu]rl",
138
- "flags": "i",
139
- "category": "ssrf",
140
- "description": "SSRF — JS/TS: axios (get/post/put), https.get, broader fetch patterns",
141
- "language": [
142
- "js",
143
- "ts"
144
- ],
145
- "severity": "high"
146
- },
147
- {
148
- "id": "SSRF010",
149
- "pattern": "axios\\s*\\.\\s*(?:get|post|put|delete)\\s*\\(\\s*(?:url|source|endpoint|target|webhook|dataUrl|avatar|oembedUrl)\\b",
150
- "flags": "i",
151
- "category": "ssrf",
152
- "description": "SSRF — JS/TS: axios (get/post/put), https.get, broader fetch patterns",
153
- "language": [
154
- "js",
155
- "ts"
156
- ],
157
- "severity": "high"
158
- },
159
- {
160
- "id": "SSRF011",
161
- "pattern": "https?\\s*\\.\\s*get\\s*\\(\\s*\\w*[Uu]rl|\\bhttps\\s*\\.\\s*get\\s*\\(",
162
- "flags": "",
163
- "category": "ssrf",
164
- "description": "SSRF — JS/TS: axios (get/post/put), https.get, broader fetch patterns",
165
- "language": [
166
- "js",
167
- "ts"
168
- ],
169
- "severity": "high"
170
- },
171
- {
172
- "id": "SSRF012",
173
- "pattern": "fetch\\s*\\(\\s*(?:dataUrl|endpoint|source|avatarUrl|oembedUrl|callbackUrl|profileUrl)\\b",
174
- "flags": "i",
175
- "category": "ssrf",
176
- "description": "SSRF — JS/TS: axios (get/post/put), https.get, broader fetch patterns",
177
- "language": [
178
- "js",
179
- "ts"
180
- ],
181
- "severity": "high"
182
- },
183
- {
184
- "id": "SSRF013",
185
- "pattern": "httpx\\s*\\.\\s*(?:get|post|AsyncClient|Client)",
186
- "flags": "i",
187
- "category": "ssrf",
188
- "description": "SSRF — Python: httpx, urllib.request, aiohttp, requests.post",
189
- "language": [
190
- "python"
191
- ],
192
- "severity": "high"
193
- },
194
- {
195
- "id": "SSRF014",
196
- "pattern": "urllib\\s*\\.\\s*request\\s*\\.\\s*urlopen\\s*\\(",
197
- "flags": "",
198
- "category": "ssrf",
199
- "description": "SSRF — Python: httpx, urllib.request, aiohttp, requests.post",
200
- "language": [
201
- "python"
202
- ],
203
- "severity": "high"
204
- },
205
- {
206
- "id": "SSRF015",
207
- "pattern": "aiohttp\\s*\\.\\s*ClientSession",
208
- "flags": "i",
209
- "category": "ssrf",
210
- "description": "SSRF — Python: httpx, urllib.request, aiohttp, requests.post",
211
- "language": [
212
- "python"
213
- ],
214
- "severity": "high"
215
- },
216
- {
217
- "id": "SSRF016",
218
- "pattern": "requests\\s*\\.\\s*(?:post|put|head|session)\\s*\\(\\s*\\w*[Uu]rl",
219
- "flags": "i",
220
- "category": "ssrf",
221
- "description": "SSRF — Python: httpx, urllib.request, aiohttp, requests.post",
222
- "language": [
223
- "python"
224
- ],
225
- "severity": "high"
226
- },
227
- {
228
- "id": "SSRF017",
229
- "pattern": "http\\s*\\.\\s*Post\\s*\\(\\s*\\w*[Uu]rl|http\\s*\\.\\s*Post\\s*\\(\\s*(?:webhookURL|endpoint)",
230
- "flags": "i",
231
- "category": "ssrf",
232
- "description": "SSRF — Go: http.Post, http.NewRequest + client.Do",
233
- "language": [
234
- "go"
235
- ],
236
- "severity": "high"
237
- },
238
- {
239
- "id": "SSRF018",
240
- "pattern": "http\\s*\\.\\s*NewRequest\\s*\\([^)]*,\\s*\\w*(?:[Uu]rl|[Ee]ndpoint)",
241
- "flags": "",
242
- "category": "ssrf",
243
- "description": "SSRF — Go: http.Post, http.NewRequest + client.Do",
244
- "language": [
245
- "go"
246
- ],
247
- "severity": "high"
248
- },
249
- {
250
- "id": "SSRF019",
251
- "pattern": "HttpRequest\\s*\\.\\s*newBuilder\\s*\\(\\s*\\)\\s*\\.\\s*uri\\s*\\(",
252
- "flags": "",
253
- "category": "ssrf",
254
- "description": "SSRF — Java: Java 11 HttpClient / HttpRequest.newBuilder",
255
- "language": [
256
- "java"
257
- ],
258
- "severity": "high"
259
- },
260
- {
261
- "id": "SSRF020",
262
- "pattern": "OkHttpClient\\s*\\(\\s*\\)|Request\\s*\\.\\s*Builder\\s*\\(\\s*\\)\\s*\\.\\s*url\\s*\\(",
263
- "flags": "",
264
- "category": "ssrf",
265
- "description": "SSRF — Kotlin: OkHttpClient, Ktor httpClient, URL().readBytes, URL composed from host/port",
266
- "language": [
267
- "kotlin"
268
- ],
269
- "severity": "high"
270
- },
271
- {
272
- "id": "SSRF021",
273
- "pattern": "httpClient\\s*\\.\\s*get\\s*\\(\\s*\\w*[Uu]rl|httpClient\\s*\\.\\s*get\\s*\\(\\s*\"",
274
- "flags": "",
275
- "category": "ssrf",
276
- "description": "SSRF — Kotlin: OkHttpClient, Ktor httpClient, URL().readBytes, URL composed from host/port",
277
- "language": [
278
- "kotlin"
279
- ],
280
- "severity": "high"
281
- },
282
- {
283
- "id": "SSRF022",
284
- "pattern": "URL\\s*\\([^)]*\\)\\s*\\.\\s*(?:readBytes|readText|openStream|openConnection)",
285
- "flags": "",
286
- "category": "ssrf",
287
- "description": "SSRF — Kotlin: OkHttpClient, Ktor httpClient, URL().readBytes, URL composed from host/port",
288
- "language": [
289
- "kotlin"
290
- ],
291
- "severity": "high"
292
- },
293
- {
294
- "id": "SSRF023",
295
- "pattern": "new\\s+WebClient\\s*\\(\\s*\\)\\s*\\.\\s*(?:DownloadString|DownloadData|OpenRead)",
296
- "flags": "",
297
- "category": "ssrf",
298
- "description": "SSRF — C#: WebClient.DownloadString, WebRequest.Create",
299
- "language": [
300
- "csharp"
301
- ],
302
- "severity": "high"
303
- },
304
- {
305
- "id": "SSRF024",
306
- "pattern": "WebRequest\\s*\\.\\s*Create\\s*\\(\\s*\\w*[Uu]rl|WebRequest\\s*\\.\\s*Create\\s*\\(\\s*\\w*(?:endpoint|target)",
307
- "flags": "i",
308
- "category": "ssrf",
309
- "description": "SSRF — C#: WebClient.DownloadString, WebRequest.Create",
310
- "language": [
311
- "csharp"
312
- ],
313
- "severity": "high"
314
- },
315
- {
316
- "id": "SSRF025",
317
- "pattern": "file_get_contents\\s*\\(\\s*\\$[a-zA-Z_]",
318
- "flags": "",
319
- "category": "ssrf",
320
- "description": "SSRF — PHP: file_get_contents, curl_init/curl_exec",
321
- "language": [
322
- "php"
323
- ],
324
- "severity": "high"
325
- },
326
- {
327
- "id": "SSRF026",
328
- "pattern": "curl_init\\s*\\(\\s*\\$[a-zA-Z_]|curl_exec\\s*\\(\\s*\\$[a-zA-Z_]",
329
- "flags": "",
330
- "category": "ssrf",
331
- "description": "SSRF — PHP: file_get_contents, curl_init/curl_exec",
332
- "language": [
333
- "php"
334
- ],
335
- "severity": "high"
336
- },
337
- {
338
- "id": "SSRF027",
339
- "pattern": "Net\\s*::\\s*HTTP\\s*\\.\\s*(?:get|get_response|start)",
340
- "flags": "i",
341
- "category": "ssrf",
342
- "description": "SSRF — Ruby: Net::HTTP, HTTParty, Faraday, URI.open, RestClient",
343
- "language": [
344
- "ruby"
345
- ],
346
- "severity": "high"
347
- },
348
- {
349
- "id": "SSRF028",
350
- "pattern": "HTTParty\\s*\\.\\s*(?:get|post)\\s*\\(",
351
- "flags": "i",
352
- "category": "ssrf",
353
- "description": "SSRF — Ruby: Net::HTTP, HTTParty, Faraday, URI.open, RestClient",
354
- "language": [
355
- "ruby"
356
- ],
357
- "severity": "high"
358
- },
359
- {
360
- "id": "SSRF029",
361
- "pattern": "Faraday\\s*\\.\\s*new\\s*\\(",
362
- "flags": "i",
363
- "category": "ssrf",
364
- "description": "SSRF — Ruby: Net::HTTP, HTTParty, Faraday, URI.open, RestClient",
365
- "language": [
366
- "ruby"
367
- ],
368
- "severity": "high"
369
- },
370
- {
371
- "id": "SSRF030",
372
- "pattern": "URI\\s*\\.\\s*open\\s*\\(\\s*\\w*[Uu]rl|URI\\s*\\.\\s*open\\s*\\(\\s*(?:resource|source|target)",
373
- "flags": "i",
374
- "category": "ssrf",
375
- "description": "SSRF — Ruby: Net::HTTP, HTTParty, Faraday, URI.open, RestClient",
376
- "language": [
377
- "ruby"
378
- ],
379
- "severity": "high"
380
- },
381
- {
382
- "id": "SSRF031",
383
- "pattern": "RestClient\\s*\\.\\s*(?:get|post)\\s*\\(",
384
- "flags": "i",
385
- "category": "ssrf",
386
- "description": "SSRF — Ruby: Net::HTTP, HTTParty, Faraday, URI.open, RestClient",
387
- "language": [
388
- "ruby"
389
- ],
390
- "severity": "high"
391
- },
392
- {
393
- "id": "SSRF032",
394
- "pattern": "reqwest\\s*::\\s*(?:get|Client)",
395
- "flags": "i",
396
- "category": "ssrf",
397
- "description": "SSRF — Rust: reqwest::get, reqwest Client builder",
398
- "language": [
399
- "rust"
400
- ],
401
- "severity": "high"
402
- },
403
- {
404
- "id": "SSRF033",
405
- "pattern": "client\\s*\\.\\s*(?:get|post)\\s*\\(\\s*&?\\s*(?:url|user_url|req\\.|payload\\.)",
406
- "flags": "",
407
- "category": "ssrf",
408
- "description": "SSRF — Rust: reqwest::get, reqwest Client builder",
409
- "language": [
410
- "rust"
411
- ],
412
- "severity": "high"
413
- },
414
- {
415
- "id": "SSRF034",
416
- "pattern": "new WebClient\\s*\\(\\)|WebRequest\\.Create\\s*\\(\\s*\\w*[Uu]rl",
417
- "flags": "i",
418
- "category": "ssrf",
419
- "description": "C# SSRF: WebClient, HttpClient, WebRequest",
420
- "language": [
421
- "csharp"
422
- ],
423
- "severity": "high"
424
- },
425
- {
426
- "id": "SSRF035",
427
- "pattern": "client\\.DownloadString\\s*\\(\\s*\\w*[Uu]rl",
428
- "flags": "i",
429
- "category": "ssrf",
430
- "description": "C# SSRF: WebClient, HttpClient, WebRequest",
431
- "language": [
432
- "csharp"
433
- ],
434
- "severity": "high"
435
- },
436
- {
437
- "id": "SSRF036",
438
- "pattern": "_httpClient\\.(?:GetAsync|PostAsync)\\s*\\(\\s*\\w*[Uu]rl",
439
- "flags": "i",
440
- "category": "ssrf",
441
- "description": "C# SSRF: WebClient, HttpClient, WebRequest",
442
- "language": [
443
- "csharp"
444
- ],
445
- "severity": "high"
446
- },
447
- {
448
- "id": "SSRF037",
449
- "pattern": "Net::HTTP\\.get_response\\s*\\(",
450
- "flags": "i",
451
- "category": "ssrf",
452
- "description": "Ruby SSRF: Net::HTTP, HTTParty, Faraday, RestClient, URI.open",
453
- "language": [
454
- "ruby"
455
- ],
456
- "severity": "high"
457
- },
458
- {
459
- "id": "SSRF038",
460
- "pattern": "HTTParty\\.(?:get|post)\\s*\\(\\s*\\w*(?:[Uu]rl|callback|target)",
461
- "flags": "i",
462
- "category": "ssrf",
463
- "description": "Ruby SSRF: Net::HTTP, HTTParty, Faraday, RestClient, URI.open",
464
- "language": [
465
- "ruby"
466
- ],
467
- "severity": "high"
468
- },
469
- {
470
- "id": "SSRF039",
471
- "pattern": "Faraday\\.new\\s*\\(\\s*url:\\s*\\w*(?:[Uu]rl|source_url|feed_url)",
472
- "flags": "i",
473
- "category": "ssrf",
474
- "description": "Ruby SSRF: Net::HTTP, HTTParty, Faraday, RestClient, URI.open",
475
- "language": [
476
- "ruby"
477
- ],
478
- "severity": "high"
479
- },
480
- {
481
- "id": "SSRF040",
482
- "pattern": "RestClient\\.(?:get|post)\\s*\\(\\s*\\w*(?:[Uu]rl|target|host)",
483
- "flags": "i",
484
- "category": "ssrf",
485
- "description": "Ruby SSRF: Net::HTTP, HTTParty, Faraday, RestClient, URI.open",
486
- "language": [
487
- "ruby"
488
- ],
489
- "severity": "high"
490
- },
491
- {
492
- "id": "SSRF041",
493
- "pattern": "URI\\.open\\s*\\(\\s*\\w*(?:[Uu]rl|resource_url|avatar_url)",
494
- "flags": "i",
495
- "category": "ssrf",
496
- "description": "Ruby SSRF: Net::HTTP, HTTParty, Faraday, RestClient, URI.open",
497
- "language": [
498
- "ruby"
499
- ],
500
- "severity": "high"
501
- },
502
- {
503
- "id": "SSRF042",
504
- "pattern": "file_get_contents\\s*\\(\\s*\\$(?:_GET|_POST|url|imageUrl)\\b",
505
- "flags": "i",
506
- "category": "ssrf",
507
- "description": "PHP SSRF",
508
- "language": [
509
- "php"
510
- ],
511
- "severity": "high"
512
- },
513
- {
514
- "id": "SSRF043",
515
- "pattern": "curl_init\\s*\\(\\s*\\$(?:_POST|_GET|url|target|webhook_url)",
516
- "flags": "i",
517
- "category": "ssrf",
518
- "description": "PHP SSRF",
519
- "language": [
520
- "php"
521
- ],
522
- "severity": "high"
523
- },
524
- {
525
- "id": "SSRF044",
526
- "pattern": "http\\.Get\\s*\\(\\s*\\w*(?:[Uu]rl|[Tt]arget|[Ee]ndpoint|[Ww]ebhook|[Aa]vatar)",
527
- "flags": "i",
528
- "category": "ssrf",
529
- "description": "Go SSRF",
530
- "language": [
531
- "go"
532
- ],
533
- "severity": "high"
534
- },
535
- {
536
- "id": "SSRF045",
537
- "pattern": "http\\.Post\\s*\\(\\s*\\w*(?:[Uu]rl|[Ww]ebhook)",
538
- "flags": "i",
539
- "category": "ssrf",
540
- "description": "Go SSRF",
541
- "language": [
542
- "go"
543
- ],
544
- "severity": "high"
545
- },
546
- {
547
- "id": "SSRF046",
548
- "pattern": "http\\.NewRequest\\s*\\(\\s*\"GET\"\\s*,\\s*\\w*(?:[Uu]rl|[Ee]ndpoint)",
549
- "flags": "i",
550
- "category": "ssrf",
551
- "description": "Go SSRF",
552
- "language": [
553
- "go"
554
- ],
555
- "severity": "high"
556
- }
557
- ]
1
+ [
2
+ {
3
+ "id": "SSRF001",
4
+ "pattern": "\\bhttp\\s*\\.\\s*Get\\s*\\(\\s*\\w+[Uu][Rr][Ll]\\b|\\bhttp\\s*\\.\\s*Get\\s*\\(\\s*(?:target|url|endpoint|src|source)\\b",
5
+ "flags": "i",
6
+ "category": "ssrf",
7
+ "description": "SSRF — Go: http.Get() with any variable (targetURL, avatarURL, etc.)",
8
+ "language": [
9
+ "go"
10
+ ],
11
+ "severity": "high"
12
+ },
13
+ {
14
+ "id": "SSRF002",
15
+ "pattern": "\\bDownloadString\\s*\\(\\s*\\w*[Uu]rl\\b|\\bDownloadString\\s*\\(\\s*(?:url|target|endpoint)\\b",
16
+ "flags": "i",
17
+ "category": "ssrf",
18
+ "description": "SSRF — C#: WebClient.DownloadString(variable), HttpClient BaseAddress from Uri(variable)",
19
+ "language": [
20
+ "csharp"
21
+ ],
22
+ "severity": "high"
23
+ },
24
+ {
25
+ "id": "SSRF003",
26
+ "pattern": "new\\s+System\\.Uri\\s*\\(\\s*\\w*[Uu]rl\\b|new\\s+Uri\\s*\\(\\s*\\w*(?:[Uu]rl|[Ee]ndpoint|[Ss]ervice)",
27
+ "flags": "i",
28
+ "category": "ssrf",
29
+ "description": "SSRF — C#: WebClient.DownloadString(variable), HttpClient BaseAddress from Uri(variable)",
30
+ "language": [
31
+ "csharp"
32
+ ],
33
+ "severity": "high"
34
+ },
35
+ {
36
+ "id": "SSRF004",
37
+ "pattern": "requests\\.get\\s*\\(\\s*(?:url|URL)\\b|http\\.get\\s*\\([^)]*req\\.|fetchUrl\\s*\\(.*req",
38
+ "flags": "",
39
+ "category": "ssrf",
40
+ "description": "SSRF (original patterns)",
41
+ "language": [
42
+ "js",
43
+ "ts",
44
+ "python",
45
+ "java",
46
+ "go",
47
+ "csharp",
48
+ "php",
49
+ "ruby",
50
+ "rust",
51
+ "kotlin"
52
+ ],
53
+ "severity": "high"
54
+ },
55
+ {
56
+ "id": "SSRF005",
57
+ "pattern": "got\\s*\\(\\s*(?:url|targetUrl|userUrl)|superagent\\.get\\s*\\(\\s*\\w*[Uu]rl",
58
+ "flags": "i",
59
+ "category": "ssrf",
60
+ "description": "SSRF (original patterns)",
61
+ "language": [
62
+ "js",
63
+ "ts",
64
+ "python",
65
+ "java",
66
+ "go",
67
+ "csharp",
68
+ "php",
69
+ "ruby",
70
+ "rust",
71
+ "kotlin"
72
+ ],
73
+ "severity": "high"
74
+ },
75
+ {
76
+ "id": "SSRF006",
77
+ "pattern": "new\\s+URL\\s*\\([^)]*(?:req\\.|request\\.|getParameter|FormValue)\\s*|URL\\.openConnection|URL\\.openStream",
78
+ "flags": "i",
79
+ "category": "ssrf",
80
+ "description": "SSRF (original patterns)",
81
+ "language": [
82
+ "js",
83
+ "ts",
84
+ "python",
85
+ "java",
86
+ "go",
87
+ "csharp",
88
+ "php",
89
+ "ruby",
90
+ "rust",
91
+ "kotlin"
92
+ ],
93
+ "severity": "high"
94
+ },
95
+ {
96
+ "id": "SSRF007",
97
+ "pattern": "HttpClient.*GetAsync\\s*\\(\\s*\\w*[Uu]rl|HttpClient.*PostAsync\\s*\\(\\s*\\w*[Uu]rl",
98
+ "flags": "i",
99
+ "category": "ssrf",
100
+ "description": "SSRF (original patterns)",
101
+ "language": [
102
+ "js",
103
+ "ts",
104
+ "python",
105
+ "java",
106
+ "go",
107
+ "csharp",
108
+ "php",
109
+ "ruby",
110
+ "rust",
111
+ "kotlin"
112
+ ],
113
+ "severity": "high"
114
+ },
115
+ {
116
+ "id": "SSRF008",
117
+ "pattern": "fetch\\s*\\(\\s*(?:req\\.|request\\.|url|targetUrl|webhookUrl|userUrl)",
118
+ "flags": "i",
119
+ "category": "ssrf",
120
+ "description": "fetch with user URL",
121
+ "language": [
122
+ "js",
123
+ "ts",
124
+ "python",
125
+ "java",
126
+ "go",
127
+ "csharp",
128
+ "php",
129
+ "ruby",
130
+ "rust",
131
+ "kotlin"
132
+ ],
133
+ "severity": "high"
134
+ },
135
+ {
136
+ "id": "SSRF009",
137
+ "pattern": "axios\\s*\\.\\s*(?:get|post|put|delete|request)\\s*\\(\\s*\\w*[Uu]rl",
138
+ "flags": "i",
139
+ "category": "ssrf",
140
+ "description": "SSRF — JS/TS: axios (get/post/put), https.get, broader fetch patterns",
141
+ "language": [
142
+ "js",
143
+ "ts"
144
+ ],
145
+ "severity": "high"
146
+ },
147
+ {
148
+ "id": "SSRF010",
149
+ "pattern": "axios\\s*\\.\\s*(?:get|post|put|delete)\\s*\\(\\s*(?:url|source|endpoint|target|webhook|dataUrl|avatar|oembedUrl)\\b",
150
+ "flags": "i",
151
+ "category": "ssrf",
152
+ "description": "SSRF — JS/TS: axios (get/post/put), https.get, broader fetch patterns",
153
+ "language": [
154
+ "js",
155
+ "ts"
156
+ ],
157
+ "severity": "high"
158
+ },
159
+ {
160
+ "id": "SSRF011",
161
+ "pattern": "https?\\s*\\.\\s*get\\s*\\(\\s*\\w*[Uu]rl|\\bhttps\\s*\\.\\s*get\\s*\\(",
162
+ "flags": "",
163
+ "category": "ssrf",
164
+ "description": "SSRF — JS/TS: axios (get/post/put), https.get, broader fetch patterns",
165
+ "language": [
166
+ "js",
167
+ "ts"
168
+ ],
169
+ "severity": "high"
170
+ },
171
+ {
172
+ "id": "SSRF012",
173
+ "pattern": "fetch\\s*\\(\\s*(?:dataUrl|endpoint|source|avatarUrl|oembedUrl|callbackUrl|profileUrl)\\b",
174
+ "flags": "i",
175
+ "category": "ssrf",
176
+ "description": "SSRF — JS/TS: axios (get/post/put), https.get, broader fetch patterns",
177
+ "language": [
178
+ "js",
179
+ "ts"
180
+ ],
181
+ "severity": "high"
182
+ },
183
+ {
184
+ "id": "SSRF013",
185
+ "pattern": "httpx\\s*\\.\\s*(?:get|post|AsyncClient|Client)",
186
+ "flags": "i",
187
+ "category": "ssrf",
188
+ "description": "SSRF — Python: httpx, urllib.request, aiohttp, requests.post",
189
+ "language": [
190
+ "python"
191
+ ],
192
+ "severity": "high"
193
+ },
194
+ {
195
+ "id": "SSRF014",
196
+ "pattern": "urllib\\s*\\.\\s*request\\s*\\.\\s*urlopen\\s*\\(",
197
+ "flags": "",
198
+ "category": "ssrf",
199
+ "description": "SSRF — Python: httpx, urllib.request, aiohttp, requests.post",
200
+ "language": [
201
+ "python"
202
+ ],
203
+ "severity": "high"
204
+ },
205
+ {
206
+ "id": "SSRF015",
207
+ "pattern": "aiohttp\\s*\\.\\s*ClientSession",
208
+ "flags": "i",
209
+ "category": "ssrf",
210
+ "description": "SSRF — Python: httpx, urllib.request, aiohttp, requests.post",
211
+ "language": [
212
+ "python"
213
+ ],
214
+ "severity": "high"
215
+ },
216
+ {
217
+ "id": "SSRF016",
218
+ "pattern": "requests\\s*\\.\\s*(?:post|put|head|session)\\s*\\(\\s*\\w*[Uu]rl",
219
+ "flags": "i",
220
+ "category": "ssrf",
221
+ "description": "SSRF — Python: httpx, urllib.request, aiohttp, requests.post",
222
+ "language": [
223
+ "python"
224
+ ],
225
+ "severity": "high"
226
+ },
227
+ {
228
+ "id": "SSRF017",
229
+ "pattern": "http\\s*\\.\\s*Post\\s*\\(\\s*\\w*[Uu]rl|http\\s*\\.\\s*Post\\s*\\(\\s*(?:webhookURL|endpoint)",
230
+ "flags": "i",
231
+ "category": "ssrf",
232
+ "description": "SSRF — Go: http.Post, http.NewRequest + client.Do",
233
+ "language": [
234
+ "go"
235
+ ],
236
+ "severity": "high"
237
+ },
238
+ {
239
+ "id": "SSRF018",
240
+ "pattern": "http\\s*\\.\\s*NewRequest\\s*\\([^)]*,\\s*\\w*(?:[Uu]rl|[Ee]ndpoint)",
241
+ "flags": "",
242
+ "category": "ssrf",
243
+ "description": "SSRF — Go: http.Post, http.NewRequest + client.Do",
244
+ "language": [
245
+ "go"
246
+ ],
247
+ "severity": "high"
248
+ },
249
+ {
250
+ "id": "SSRF019",
251
+ "pattern": "HttpRequest\\s*\\.\\s*newBuilder\\s*\\(\\s*\\)\\s*\\.\\s*uri\\s*\\(",
252
+ "flags": "",
253
+ "category": "ssrf",
254
+ "description": "SSRF — Java: Java 11 HttpClient / HttpRequest.newBuilder",
255
+ "language": [
256
+ "java"
257
+ ],
258
+ "severity": "high"
259
+ },
260
+ {
261
+ "id": "SSRF020",
262
+ "pattern": "OkHttpClient\\s*\\(\\s*\\)|Request\\s*\\.\\s*Builder\\s*\\(\\s*\\)\\s*\\.\\s*url\\s*\\(",
263
+ "flags": "",
264
+ "category": "ssrf",
265
+ "description": "SSRF — Kotlin: OkHttpClient, Ktor httpClient, URL().readBytes, URL composed from host/port",
266
+ "language": [
267
+ "kotlin"
268
+ ],
269
+ "severity": "high"
270
+ },
271
+ {
272
+ "id": "SSRF021",
273
+ "pattern": "httpClient\\s*\\.\\s*get\\s*\\(\\s*\\w*[Uu]rl|httpClient\\s*\\.\\s*get\\s*\\(\\s*\"",
274
+ "flags": "",
275
+ "category": "ssrf",
276
+ "description": "SSRF — Kotlin: OkHttpClient, Ktor httpClient, URL().readBytes, URL composed from host/port",
277
+ "language": [
278
+ "kotlin"
279
+ ],
280
+ "severity": "high"
281
+ },
282
+ {
283
+ "id": "SSRF022",
284
+ "pattern": "URL\\s*\\([^)]*\\)\\s*\\.\\s*(?:readBytes|readText|openStream|openConnection)",
285
+ "flags": "",
286
+ "category": "ssrf",
287
+ "description": "SSRF — Kotlin: OkHttpClient, Ktor httpClient, URL().readBytes, URL composed from host/port",
288
+ "language": [
289
+ "kotlin"
290
+ ],
291
+ "severity": "high"
292
+ },
293
+ {
294
+ "id": "SSRF023",
295
+ "pattern": "new\\s+WebClient\\s*\\(\\s*\\)\\s*\\.\\s*(?:DownloadString|DownloadData|OpenRead)",
296
+ "flags": "",
297
+ "category": "ssrf",
298
+ "description": "SSRF — C#: WebClient.DownloadString, WebRequest.Create",
299
+ "language": [
300
+ "csharp"
301
+ ],
302
+ "severity": "high"
303
+ },
304
+ {
305
+ "id": "SSRF024",
306
+ "pattern": "WebRequest\\s*\\.\\s*Create\\s*\\(\\s*\\w*[Uu]rl|WebRequest\\s*\\.\\s*Create\\s*\\(\\s*\\w*(?:endpoint|target)",
307
+ "flags": "i",
308
+ "category": "ssrf",
309
+ "description": "SSRF — C#: WebClient.DownloadString, WebRequest.Create",
310
+ "language": [
311
+ "csharp"
312
+ ],
313
+ "severity": "high"
314
+ },
315
+ {
316
+ "id": "SSRF025",
317
+ "pattern": "file_get_contents\\s*\\(\\s*\\$[a-zA-Z_]",
318
+ "flags": "",
319
+ "category": "ssrf",
320
+ "description": "SSRF — PHP: file_get_contents, curl_init/curl_exec",
321
+ "language": [
322
+ "php"
323
+ ],
324
+ "severity": "high"
325
+ },
326
+ {
327
+ "id": "SSRF026",
328
+ "pattern": "curl_init\\s*\\(\\s*\\$[a-zA-Z_]|curl_exec\\s*\\(\\s*\\$[a-zA-Z_]",
329
+ "flags": "",
330
+ "category": "ssrf",
331
+ "description": "SSRF — PHP: file_get_contents, curl_init/curl_exec",
332
+ "language": [
333
+ "php"
334
+ ],
335
+ "severity": "high"
336
+ },
337
+ {
338
+ "id": "SSRF027",
339
+ "pattern": "Net\\s*::\\s*HTTP\\s*\\.\\s*(?:get|get_response|start)",
340
+ "flags": "i",
341
+ "category": "ssrf",
342
+ "description": "SSRF — Ruby: Net::HTTP, HTTParty, Faraday, URI.open, RestClient",
343
+ "language": [
344
+ "ruby"
345
+ ],
346
+ "severity": "high"
347
+ },
348
+ {
349
+ "id": "SSRF028",
350
+ "pattern": "HTTParty\\s*\\.\\s*(?:get|post)\\s*\\(",
351
+ "flags": "i",
352
+ "category": "ssrf",
353
+ "description": "SSRF — Ruby: Net::HTTP, HTTParty, Faraday, URI.open, RestClient",
354
+ "language": [
355
+ "ruby"
356
+ ],
357
+ "severity": "high"
358
+ },
359
+ {
360
+ "id": "SSRF029",
361
+ "pattern": "Faraday\\s*\\.\\s*new\\s*\\(",
362
+ "flags": "i",
363
+ "category": "ssrf",
364
+ "description": "SSRF — Ruby: Net::HTTP, HTTParty, Faraday, URI.open, RestClient",
365
+ "language": [
366
+ "ruby"
367
+ ],
368
+ "severity": "high"
369
+ },
370
+ {
371
+ "id": "SSRF030",
372
+ "pattern": "URI\\s*\\.\\s*open\\s*\\(\\s*\\w*[Uu]rl|URI\\s*\\.\\s*open\\s*\\(\\s*(?:resource|source|target)",
373
+ "flags": "i",
374
+ "category": "ssrf",
375
+ "description": "SSRF — Ruby: Net::HTTP, HTTParty, Faraday, URI.open, RestClient",
376
+ "language": [
377
+ "ruby"
378
+ ],
379
+ "severity": "high"
380
+ },
381
+ {
382
+ "id": "SSRF031",
383
+ "pattern": "RestClient\\s*\\.\\s*(?:get|post)\\s*\\(",
384
+ "flags": "i",
385
+ "category": "ssrf",
386
+ "description": "SSRF — Ruby: Net::HTTP, HTTParty, Faraday, URI.open, RestClient",
387
+ "language": [
388
+ "ruby"
389
+ ],
390
+ "severity": "high"
391
+ },
392
+ {
393
+ "id": "SSRF032",
394
+ "pattern": "reqwest\\s*::\\s*(?:get|Client)",
395
+ "flags": "i",
396
+ "category": "ssrf",
397
+ "description": "SSRF — Rust: reqwest::get, reqwest Client builder",
398
+ "language": [
399
+ "rust"
400
+ ],
401
+ "severity": "high"
402
+ },
403
+ {
404
+ "id": "SSRF033",
405
+ "pattern": "client\\s*\\.\\s*(?:get|post)\\s*\\(\\s*&?\\s*(?:url|user_url|req\\.|payload\\.)",
406
+ "flags": "",
407
+ "category": "ssrf",
408
+ "description": "SSRF — Rust: reqwest::get, reqwest Client builder",
409
+ "language": [
410
+ "rust"
411
+ ],
412
+ "severity": "high"
413
+ },
414
+ {
415
+ "id": "SSRF034",
416
+ "pattern": "new WebClient\\s*\\(\\)|WebRequest\\.Create\\s*\\(\\s*\\w*[Uu]rl",
417
+ "flags": "i",
418
+ "category": "ssrf",
419
+ "description": "C# SSRF: WebClient, HttpClient, WebRequest",
420
+ "language": [
421
+ "csharp"
422
+ ],
423
+ "severity": "high"
424
+ },
425
+ {
426
+ "id": "SSRF035",
427
+ "pattern": "client\\.DownloadString\\s*\\(\\s*\\w*[Uu]rl",
428
+ "flags": "i",
429
+ "category": "ssrf",
430
+ "description": "C# SSRF: WebClient, HttpClient, WebRequest",
431
+ "language": [
432
+ "csharp"
433
+ ],
434
+ "severity": "high"
435
+ },
436
+ {
437
+ "id": "SSRF036",
438
+ "pattern": "_httpClient\\.(?:GetAsync|PostAsync)\\s*\\(\\s*\\w*[Uu]rl",
439
+ "flags": "i",
440
+ "category": "ssrf",
441
+ "description": "C# SSRF: WebClient, HttpClient, WebRequest",
442
+ "language": [
443
+ "csharp"
444
+ ],
445
+ "severity": "high"
446
+ },
447
+ {
448
+ "id": "SSRF037",
449
+ "pattern": "Net::HTTP\\.get_response\\s*\\(",
450
+ "flags": "i",
451
+ "category": "ssrf",
452
+ "description": "Ruby SSRF: Net::HTTP, HTTParty, Faraday, RestClient, URI.open",
453
+ "language": [
454
+ "ruby"
455
+ ],
456
+ "severity": "high"
457
+ },
458
+ {
459
+ "id": "SSRF038",
460
+ "pattern": "HTTParty\\.(?:get|post)\\s*\\(\\s*\\w*(?:[Uu]rl|callback|target)",
461
+ "flags": "i",
462
+ "category": "ssrf",
463
+ "description": "Ruby SSRF: Net::HTTP, HTTParty, Faraday, RestClient, URI.open",
464
+ "language": [
465
+ "ruby"
466
+ ],
467
+ "severity": "high"
468
+ },
469
+ {
470
+ "id": "SSRF039",
471
+ "pattern": "Faraday\\.new\\s*\\(\\s*url:\\s*\\w*(?:[Uu]rl|source_url|feed_url)",
472
+ "flags": "i",
473
+ "category": "ssrf",
474
+ "description": "Ruby SSRF: Net::HTTP, HTTParty, Faraday, RestClient, URI.open",
475
+ "language": [
476
+ "ruby"
477
+ ],
478
+ "severity": "high"
479
+ },
480
+ {
481
+ "id": "SSRF040",
482
+ "pattern": "RestClient\\.(?:get|post)\\s*\\(\\s*\\w*(?:[Uu]rl|target|host)",
483
+ "flags": "i",
484
+ "category": "ssrf",
485
+ "description": "Ruby SSRF: Net::HTTP, HTTParty, Faraday, RestClient, URI.open",
486
+ "language": [
487
+ "ruby"
488
+ ],
489
+ "severity": "high"
490
+ },
491
+ {
492
+ "id": "SSRF041",
493
+ "pattern": "URI\\.open\\s*\\(\\s*\\w*(?:[Uu]rl|resource_url|avatar_url)",
494
+ "flags": "i",
495
+ "category": "ssrf",
496
+ "description": "Ruby SSRF: Net::HTTP, HTTParty, Faraday, RestClient, URI.open",
497
+ "language": [
498
+ "ruby"
499
+ ],
500
+ "severity": "high"
501
+ },
502
+ {
503
+ "id": "SSRF042",
504
+ "pattern": "file_get_contents\\s*\\(\\s*\\$(?:_GET|_POST|url|imageUrl)\\b",
505
+ "flags": "i",
506
+ "category": "ssrf",
507
+ "description": "PHP SSRF",
508
+ "language": [
509
+ "php"
510
+ ],
511
+ "severity": "high"
512
+ },
513
+ {
514
+ "id": "SSRF043",
515
+ "pattern": "curl_init\\s*\\(\\s*\\$(?:_POST|_GET|url|target|webhook_url)",
516
+ "flags": "i",
517
+ "category": "ssrf",
518
+ "description": "PHP SSRF",
519
+ "language": [
520
+ "php"
521
+ ],
522
+ "severity": "high"
523
+ },
524
+ {
525
+ "id": "SSRF044",
526
+ "pattern": "http\\.Get\\s*\\(\\s*\\w*(?:[Uu]rl|[Tt]arget|[Ee]ndpoint|[Ww]ebhook|[Aa]vatar)",
527
+ "flags": "i",
528
+ "category": "ssrf",
529
+ "description": "Go SSRF",
530
+ "language": [
531
+ "go"
532
+ ],
533
+ "severity": "high"
534
+ },
535
+ {
536
+ "id": "SSRF045",
537
+ "pattern": "http\\.Post\\s*\\(\\s*\\w*(?:[Uu]rl|[Ww]ebhook)",
538
+ "flags": "i",
539
+ "category": "ssrf",
540
+ "description": "Go SSRF",
541
+ "language": [
542
+ "go"
543
+ ],
544
+ "severity": "high"
545
+ },
546
+ {
547
+ "id": "SSRF046",
548
+ "pattern": "http\\.NewRequest\\s*\\(\\s*\"GET\"\\s*,\\s*\\w*(?:[Uu]rl|[Ee]ndpoint)",
549
+ "flags": "i",
550
+ "category": "ssrf",
551
+ "description": "Go SSRF",
552
+ "language": [
553
+ "go"
554
+ ],
555
+ "severity": "high"
556
+ }
557
+ ]