secator 0.11.0__tar.gz → 0.11.1__tar.gz

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.

Potentially problematic release.


This version of secator might be problematic. Click here for more details.

Files changed (199) hide show
  1. {secator-0.11.0 → secator-0.11.1}/CHANGELOG.md +9 -0
  2. {secator-0.11.0 → secator-0.11.1}/PKG-INFO +1 -1
  3. {secator-0.11.0 → secator-0.11.1}/pyproject.toml +1 -1
  4. {secator-0.11.0 → secator-0.11.1}/secator/config.py +2 -2
  5. {secator-0.11.0 → secator-0.11.1}/secator/tasks/_categories.py +6 -3
  6. {secator-0.11.0 → secator-0.11.1}/secator/tasks/fping.py +1 -0
  7. {secator-0.11.0 → secator-0.11.1}/secator/tasks/grype.py +1 -1
  8. {secator-0.11.0 → secator-0.11.1}/secator/utils.py +3 -2
  9. {secator-0.11.0 → secator-0.11.1}/tests/integration/test_helpers.py +15 -1
  10. {secator-0.11.0 → secator-0.11.1}/.docker/Dockerfile.alpine +0 -0
  11. {secator-0.11.0 → secator-0.11.1}/.docker/Dockerfile.arch +0 -0
  12. {secator-0.11.0 → secator-0.11.1}/.docker/Dockerfile.debian +0 -0
  13. {secator-0.11.0 → secator-0.11.1}/.docker/Dockerfile.kali +0 -0
  14. {secator-0.11.0 → secator-0.11.1}/.docker/Dockerfile.osx +0 -0
  15. {secator-0.11.0 → secator-0.11.1}/.docker/Dockerfile.ubuntu +0 -0
  16. {secator-0.11.0 → secator-0.11.1}/.docker/build_all.sh +0 -0
  17. {secator-0.11.0 → secator-0.11.1}/.dockerignore +0 -0
  18. {secator-0.11.0 → secator-0.11.1}/.flake8 +0 -0
  19. {secator-0.11.0 → secator-0.11.1}/.gitignore +0 -0
  20. {secator-0.11.0 → secator-0.11.1}/CONTRIBUTING.md +0 -0
  21. {secator-0.11.0 → secator-0.11.1}/Dockerfile +0 -0
  22. {secator-0.11.0 → secator-0.11.1}/LICENSE +0 -0
  23. {secator-0.11.0 → secator-0.11.1}/README.md +0 -0
  24. {secator-0.11.0 → secator-0.11.1}/SECURITY.md +0 -0
  25. {secator-0.11.0 → secator-0.11.1}/cloudbuild.yaml +0 -0
  26. {secator-0.11.0 → secator-0.11.1}/helm/.helmignore +0 -0
  27. {secator-0.11.0 → secator-0.11.1}/helm/Chart.yaml +0 -0
  28. {secator-0.11.0 → secator-0.11.1}/helm/templates/redis-service.yaml +0 -0
  29. {secator-0.11.0 → secator-0.11.1}/helm/templates/redis.yaml +0 -0
  30. {secator-0.11.0 → secator-0.11.1}/helm/templates/secator-manager.yaml +0 -0
  31. {secator-0.11.0 → secator-0.11.1}/helm/templates/secator-worker.yaml +0 -0
  32. {secator-0.11.0 → secator-0.11.1}/helm/values.yaml +0 -0
  33. {secator-0.11.0 → secator-0.11.1}/scripts/download_cves.sh +0 -0
  34. {secator-0.11.0 → secator-0.11.1}/scripts/install.sh +0 -0
  35. {secator-0.11.0 → secator-0.11.1}/scripts/install_asciinema.sh +0 -0
  36. {secator-0.11.0 → secator-0.11.1}/scripts/install_go.sh +0 -0
  37. {secator-0.11.0 → secator-0.11.1}/scripts/install_ruby.sh +0 -0
  38. {secator-0.11.0 → secator-0.11.1}/scripts/msf/exploit_cve.rc +0 -0
  39. {secator-0.11.0 → secator-0.11.1}/scripts/msf/ftp_anonymous.rc +0 -0
  40. {secator-0.11.0 → secator-0.11.1}/scripts/msf/ftp_version.rc +0 -0
  41. {secator-0.11.0 → secator-0.11.1}/scripts/msf/ftp_vsftpd_234_backdoor.rc +0 -0
  42. {secator-0.11.0 → secator-0.11.1}/scripts/msf/redis.rc +0 -0
  43. {secator-0.11.0 → secator-0.11.1}/scripts/stories/STORY.md +0 -0
  44. {secator-0.11.0 → secator-0.11.1}/scripts/stories/aliases.sh +0 -0
  45. {secator-0.11.0 → secator-0.11.1}/scripts/stories/demo.sh +0 -0
  46. {secator-0.11.0 → secator-0.11.1}/scripts/stories/fmt.sh +0 -0
  47. {secator-0.11.0 → secator-0.11.1}/scripts/stories/input.sh +0 -0
  48. {secator-0.11.0 → secator-0.11.1}/scripts/stories/pipe.sh +0 -0
  49. {secator-0.11.0 → secator-0.11.1}/scripts/stories/short_demo.sh +0 -0
  50. {secator-0.11.0 → secator-0.11.1}/secator/.gitignore +0 -0
  51. {secator-0.11.0 → secator-0.11.1}/secator/__init__.py +0 -0
  52. {secator-0.11.0 → secator-0.11.1}/secator/celery.py +0 -0
  53. {secator-0.11.0 → secator-0.11.1}/secator/celery_signals.py +0 -0
  54. {secator-0.11.0 → secator-0.11.1}/secator/celery_utils.py +0 -0
  55. {secator-0.11.0 → secator-0.11.1}/secator/cli.py +0 -0
  56. {secator-0.11.0 → secator-0.11.1}/secator/configs/__init__.py +0 -0
  57. {secator-0.11.0 → secator-0.11.1}/secator/configs/profiles/__init__.py +0 -0
  58. {secator-0.11.0 → secator-0.11.1}/secator/configs/profiles/aggressive.yaml +0 -0
  59. {secator-0.11.0 → secator-0.11.1}/secator/configs/profiles/default.yaml +0 -0
  60. {secator-0.11.0 → secator-0.11.1}/secator/configs/profiles/stealth.yaml +0 -0
  61. {secator-0.11.0 → secator-0.11.1}/secator/configs/scans/__init__.py +0 -0
  62. {secator-0.11.0 → secator-0.11.1}/secator/configs/scans/domain.yaml +0 -0
  63. {secator-0.11.0 → secator-0.11.1}/secator/configs/scans/host.yaml +0 -0
  64. {secator-0.11.0 → secator-0.11.1}/secator/configs/scans/network.yaml +0 -0
  65. {secator-0.11.0 → secator-0.11.1}/secator/configs/scans/subdomain.yaml +0 -0
  66. {secator-0.11.0 → secator-0.11.1}/secator/configs/scans/url.yaml +0 -0
  67. {secator-0.11.0 → secator-0.11.1}/secator/configs/workflows/__init__.py +0 -0
  68. {secator-0.11.0 → secator-0.11.1}/secator/configs/workflows/cidr_recon.yaml +0 -0
  69. {secator-0.11.0 → secator-0.11.1}/secator/configs/workflows/code_scan.yaml +0 -0
  70. {secator-0.11.0 → secator-0.11.1}/secator/configs/workflows/host_recon.yaml +0 -0
  71. {secator-0.11.0 → secator-0.11.1}/secator/configs/workflows/subdomain_recon.yaml +0 -0
  72. {secator-0.11.0 → secator-0.11.1}/secator/configs/workflows/url_bypass.yaml +0 -0
  73. {secator-0.11.0 → secator-0.11.1}/secator/configs/workflows/url_crawl.yaml +0 -0
  74. {secator-0.11.0 → secator-0.11.1}/secator/configs/workflows/url_dirsearch.yaml +0 -0
  75. {secator-0.11.0 → secator-0.11.1}/secator/configs/workflows/url_fuzz.yaml +0 -0
  76. {secator-0.11.0 → secator-0.11.1}/secator/configs/workflows/url_nuclei.yaml +0 -0
  77. {secator-0.11.0 → secator-0.11.1}/secator/configs/workflows/url_params_fuzz.yaml +0 -0
  78. {secator-0.11.0 → secator-0.11.1}/secator/configs/workflows/url_vuln.yaml +0 -0
  79. {secator-0.11.0 → secator-0.11.1}/secator/configs/workflows/user_hunt.yaml +0 -0
  80. {secator-0.11.0 → secator-0.11.1}/secator/configs/workflows/wordpress.yaml +0 -0
  81. {secator-0.11.0 → secator-0.11.1}/secator/decorators.py +0 -0
  82. {secator-0.11.0 → secator-0.11.1}/secator/definitions.py +0 -0
  83. {secator-0.11.0 → secator-0.11.1}/secator/exporters/__init__.py +0 -0
  84. {secator-0.11.0 → secator-0.11.1}/secator/exporters/_base.py +0 -0
  85. {secator-0.11.0 → secator-0.11.1}/secator/exporters/console.py +0 -0
  86. {secator-0.11.0 → secator-0.11.1}/secator/exporters/csv.py +0 -0
  87. {secator-0.11.0 → secator-0.11.1}/secator/exporters/gdrive.py +0 -0
  88. {secator-0.11.0 → secator-0.11.1}/secator/exporters/json.py +0 -0
  89. {secator-0.11.0 → secator-0.11.1}/secator/exporters/table.py +0 -0
  90. {secator-0.11.0 → secator-0.11.1}/secator/exporters/txt.py +0 -0
  91. {secator-0.11.0 → secator-0.11.1}/secator/hooks/__init__.py +0 -0
  92. {secator-0.11.0 → secator-0.11.1}/secator/hooks/gcs.py +0 -0
  93. {secator-0.11.0 → secator-0.11.1}/secator/hooks/mongodb.py +0 -0
  94. {secator-0.11.0 → secator-0.11.1}/secator/installer.py +0 -0
  95. {secator-0.11.0 → secator-0.11.1}/secator/output_types/__init__.py +0 -0
  96. {secator-0.11.0 → secator-0.11.1}/secator/output_types/_base.py +0 -0
  97. {secator-0.11.0 → secator-0.11.1}/secator/output_types/certificate.py +0 -0
  98. {secator-0.11.0 → secator-0.11.1}/secator/output_types/error.py +0 -0
  99. {secator-0.11.0 → secator-0.11.1}/secator/output_types/exploit.py +0 -0
  100. {secator-0.11.0 → secator-0.11.1}/secator/output_types/info.py +0 -0
  101. {secator-0.11.0 → secator-0.11.1}/secator/output_types/ip.py +0 -0
  102. {secator-0.11.0 → secator-0.11.1}/secator/output_types/port.py +0 -0
  103. {secator-0.11.0 → secator-0.11.1}/secator/output_types/progress.py +0 -0
  104. {secator-0.11.0 → secator-0.11.1}/secator/output_types/record.py +0 -0
  105. {secator-0.11.0 → secator-0.11.1}/secator/output_types/stat.py +0 -0
  106. {secator-0.11.0 → secator-0.11.1}/secator/output_types/state.py +0 -0
  107. {secator-0.11.0 → secator-0.11.1}/secator/output_types/subdomain.py +0 -0
  108. {secator-0.11.0 → secator-0.11.1}/secator/output_types/tag.py +0 -0
  109. {secator-0.11.0 → secator-0.11.1}/secator/output_types/target.py +0 -0
  110. {secator-0.11.0 → secator-0.11.1}/secator/output_types/url.py +0 -0
  111. {secator-0.11.0 → secator-0.11.1}/secator/output_types/user_account.py +0 -0
  112. {secator-0.11.0 → secator-0.11.1}/secator/output_types/vulnerability.py +0 -0
  113. {secator-0.11.0 → secator-0.11.1}/secator/output_types/warning.py +0 -0
  114. {secator-0.11.0 → secator-0.11.1}/secator/report.py +0 -0
  115. {secator-0.11.0 → secator-0.11.1}/secator/rich.py +0 -0
  116. {secator-0.11.0 → secator-0.11.1}/secator/runners/__init__.py +0 -0
  117. {secator-0.11.0 → secator-0.11.1}/secator/runners/_base.py +0 -0
  118. {secator-0.11.0 → secator-0.11.1}/secator/runners/_helpers.py +0 -0
  119. {secator-0.11.0 → secator-0.11.1}/secator/runners/celery.py +0 -0
  120. {secator-0.11.0 → secator-0.11.1}/secator/runners/command.py +0 -0
  121. {secator-0.11.0 → secator-0.11.1}/secator/runners/scan.py +0 -0
  122. {secator-0.11.0 → secator-0.11.1}/secator/runners/task.py +0 -0
  123. {secator-0.11.0 → secator-0.11.1}/secator/runners/workflow.py +0 -0
  124. {secator-0.11.0 → secator-0.11.1}/secator/scans/__init__.py +0 -0
  125. {secator-0.11.0 → secator-0.11.1}/secator/serializers/__init__.py +0 -0
  126. {secator-0.11.0 → secator-0.11.1}/secator/serializers/dataclass.py +0 -0
  127. {secator-0.11.0 → secator-0.11.1}/secator/serializers/json.py +0 -0
  128. {secator-0.11.0 → secator-0.11.1}/secator/serializers/regex.py +0 -0
  129. {secator-0.11.0 → secator-0.11.1}/secator/tasks/__init__.py +0 -0
  130. {secator-0.11.0 → secator-0.11.1}/secator/tasks/arjun.py +0 -0
  131. {secator-0.11.0 → secator-0.11.1}/secator/tasks/bbot.py +0 -0
  132. {secator-0.11.0 → secator-0.11.1}/secator/tasks/bup.py +0 -0
  133. {secator-0.11.0 → secator-0.11.1}/secator/tasks/cariddi.py +0 -0
  134. {secator-0.11.0 → secator-0.11.1}/secator/tasks/dalfox.py +0 -0
  135. {secator-0.11.0 → secator-0.11.1}/secator/tasks/dirsearch.py +0 -0
  136. {secator-0.11.0 → secator-0.11.1}/secator/tasks/dnsx.py +0 -0
  137. {secator-0.11.0 → secator-0.11.1}/secator/tasks/dnsxbrute.py +0 -0
  138. {secator-0.11.0 → secator-0.11.1}/secator/tasks/feroxbuster.py +0 -0
  139. {secator-0.11.0 → secator-0.11.1}/secator/tasks/ffuf.py +0 -0
  140. {secator-0.11.0 → secator-0.11.1}/secator/tasks/gau.py +0 -0
  141. {secator-0.11.0 → secator-0.11.1}/secator/tasks/gf.py +0 -0
  142. {secator-0.11.0 → secator-0.11.1}/secator/tasks/gitleaks.py +0 -0
  143. {secator-0.11.0 → secator-0.11.1}/secator/tasks/gospider.py +0 -0
  144. {secator-0.11.0 → secator-0.11.1}/secator/tasks/h8mail.py +0 -0
  145. {secator-0.11.0 → secator-0.11.1}/secator/tasks/httpx.py +0 -0
  146. {secator-0.11.0 → secator-0.11.1}/secator/tasks/katana.py +0 -0
  147. {secator-0.11.0 → secator-0.11.1}/secator/tasks/maigret.py +0 -0
  148. {secator-0.11.0 → secator-0.11.1}/secator/tasks/mapcidr.py +0 -0
  149. {secator-0.11.0 → secator-0.11.1}/secator/tasks/msfconsole.py +0 -0
  150. {secator-0.11.0 → secator-0.11.1}/secator/tasks/naabu.py +0 -0
  151. {secator-0.11.0 → secator-0.11.1}/secator/tasks/nmap.py +0 -0
  152. {secator-0.11.0 → secator-0.11.1}/secator/tasks/nuclei.py +0 -0
  153. {secator-0.11.0 → secator-0.11.1}/secator/tasks/searchsploit.py +0 -0
  154. {secator-0.11.0 → secator-0.11.1}/secator/tasks/subfinder.py +0 -0
  155. {secator-0.11.0 → secator-0.11.1}/secator/tasks/testssl.py +0 -0
  156. {secator-0.11.0 → secator-0.11.1}/secator/tasks/trivy.py +0 -0
  157. {secator-0.11.0 → secator-0.11.1}/secator/tasks/wafw00f.py +0 -0
  158. {secator-0.11.0 → secator-0.11.1}/secator/tasks/wpprobe.py +0 -0
  159. {secator-0.11.0 → secator-0.11.1}/secator/tasks/wpscan.py +0 -0
  160. {secator-0.11.0 → secator-0.11.1}/secator/template.py +0 -0
  161. {secator-0.11.0 → secator-0.11.1}/secator/thread.py +0 -0
  162. {secator-0.11.0 → secator-0.11.1}/secator/utils_test.py +0 -0
  163. {secator-0.11.0 → secator-0.11.1}/secator/workflows/__init__.py +0 -0
  164. {secator-0.11.0 → secator-0.11.1}/tests/__init__.py +0 -0
  165. {secator-0.11.0 → secator-0.11.1}/tests/fixtures/h8mail_breach.txt +0 -0
  166. {secator-0.11.0 → secator-0.11.1}/tests/fixtures/ls.py +0 -0
  167. {secator-0.11.0 → secator-0.11.1}/tests/fixtures/msfconsole_input.rc +0 -0
  168. {secator-0.11.0 → secator-0.11.1}/tests/fixtures/nmap_output.xml +0 -0
  169. {secator-0.11.0 → secator-0.11.1}/tests/integration/__init__.py +0 -0
  170. {secator-0.11.0 → secator-0.11.1}/tests/integration/inputs.py +0 -0
  171. {secator-0.11.0 → secator-0.11.1}/tests/integration/outputs.py +0 -0
  172. {secator-0.11.0 → secator-0.11.1}/tests/integration/setup.sh +0 -0
  173. {secator-0.11.0 → secator-0.11.1}/tests/integration/teardown.sh +0 -0
  174. {secator-0.11.0 → secator-0.11.1}/tests/integration/test_addons.py +0 -0
  175. {secator-0.11.0 → secator-0.11.1}/tests/integration/test_celery.py +0 -0
  176. {secator-0.11.0 → secator-0.11.1}/tests/integration/test_scans.py +0 -0
  177. {secator-0.11.0 → secator-0.11.1}/tests/integration/test_tasks.py +0 -0
  178. {secator-0.11.0 → secator-0.11.1}/tests/integration/test_worker.py +0 -0
  179. {secator-0.11.0 → secator-0.11.1}/tests/integration/test_workflows.py +0 -0
  180. {secator-0.11.0 → secator-0.11.1}/tests/integration/wordlist.txt +0 -0
  181. {secator-0.11.0 → secator-0.11.1}/tests/integration/wordlist_dns.txt +0 -0
  182. {secator-0.11.0 → secator-0.11.1}/tests/integration/wordpress_toolbox/Dockerfile +0 -0
  183. {secator-0.11.0 → secator-0.11.1}/tests/integration/wordpress_toolbox/Makefile +0 -0
  184. {secator-0.11.0 → secator-0.11.1}/tests/performance/__init__.py +0 -0
  185. {secator-0.11.0 → secator-0.11.1}/tests/performance/loadtester.py +0 -0
  186. {secator-0.11.0 → secator-0.11.1}/tests/performance/test_worker.py +0 -0
  187. {secator-0.11.0 → secator-0.11.1}/tests/unit/__init__.py +0 -0
  188. {secator-0.11.0 → secator-0.11.1}/tests/unit/test_celery.py +0 -0
  189. {secator-0.11.0 → secator-0.11.1}/tests/unit/test_cli.py +0 -0
  190. {secator-0.11.0 → secator-0.11.1}/tests/unit/test_command.py +0 -0
  191. {secator-0.11.0 → secator-0.11.1}/tests/unit/test_config.py +0 -0
  192. {secator-0.11.0 → secator-0.11.1}/tests/unit/test_offline.py +0 -0
  193. {secator-0.11.0 → secator-0.11.1}/tests/unit/test_runners.py +0 -0
  194. {secator-0.11.0 → secator-0.11.1}/tests/unit/test_scans.py +0 -0
  195. {secator-0.11.0 → secator-0.11.1}/tests/unit/test_serializers.py +0 -0
  196. {secator-0.11.0 → secator-0.11.1}/tests/unit/test_tasks.py +0 -0
  197. {secator-0.11.0 → secator-0.11.1}/tests/unit/test_tasks_categories.py +0 -0
  198. {secator-0.11.0 → secator-0.11.1}/tests/unit/test_template.py +0 -0
  199. {secator-0.11.0 → secator-0.11.1}/tests/unit/test_utils.py +0 -0
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.11.1](https://github.com/freelabz/secator/compare/v0.11.0...v0.11.1) (2025-04-23)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * fping ret code ([#593](https://github.com/freelabz/secator/issues/593)) ([f2d0982](https://github.com/freelabz/secator/commit/f2d0982ea665a08d24afd3f80c8f976811daa397))
9
+ * ghsa lookups, startup file downloads ([#592](https://github.com/freelabz/secator/issues/592)) ([021bf11](https://github.com/freelabz/secator/commit/021bf11b6cd7d9ecb5dd95b45d6411d1feeeb86c))
10
+ * wordlist dynamic download ([#595](https://github.com/freelabz/secator/issues/595)) ([9a859ae](https://github.com/freelabz/secator/commit/9a859ae8f391bb73263b356ef166f5685683c30f))
11
+
3
12
  ## [0.11.0](https://github.com/freelabz/secator/compare/v0.10.0...v0.11.0) (2025-04-22)
4
13
 
5
14
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: secator
3
- Version: 0.11.0
3
+ Version: 0.11.1
4
4
  Summary: The pentester's swiss knife.
5
5
  Project-URL: Homepage, https://github.com/freelabz/secator
6
6
  Project-URL: Issues, https://github.com/freelabz/secator/issues
@@ -4,7 +4,7 @@ build-backend = 'hatchling.build'
4
4
 
5
5
  [project]
6
6
  name = 'secator'
7
- version = "0.11.0"
7
+ version = "0.11.1"
8
8
  authors = [{ name = 'FreeLabz', email = 'sales@freelabz.com' }]
9
9
  readme = 'README.md'
10
10
  description = "The pentester's swiss knife."
@@ -623,8 +623,8 @@ for name, dir in CONFIG.dirs.items():
623
623
  console.print('[bold green]ok.[/]')
624
624
 
625
625
  # Download wordlists and payloads
626
- download_files(CONFIG.wordlists.templates, CONFIG.dirs.wordlists, CONFIG.offline_mode, 'wordlist')
627
- download_files(CONFIG.payloads.templates, CONFIG.dirs.payloads, CONFIG.offline_mode, 'payload')
626
+ # download_files(CONFIG.wordlists.templates, CONFIG.dirs.wordlists, CONFIG.offline_mode, 'wordlist')
627
+ # download_files(CONFIG.payloads.templates, CONFIG.dirs.payloads, CONFIG.offline_mode, 'payload')
628
628
 
629
629
  # Print config
630
630
  if CONFIG.debug.component == 'config':
@@ -393,11 +393,11 @@ class Vuln(Command):
393
393
 
394
394
  @cache
395
395
  @staticmethod
396
- def lookup_ghsa(ghsa_id):
396
+ def lookup_cve_from_ghsa(ghsa_id):
397
397
  """Search for a GHSA on Github and and return associated CVE vulnerability data.
398
398
 
399
399
  Args:
400
- ghsa (str): CVE ID in the form GHSA-*
400
+ ghsa (str): GHSA ID in the form GHSA-*
401
401
 
402
402
  Returns:
403
403
  dict: vulnerability data.
@@ -410,7 +410,10 @@ class Vuln(Command):
410
410
  return None
411
411
  soup = BeautifulSoup(resp.text, 'lxml')
412
412
  sidebar_items = soup.find_all('div', {'class': 'discussion-sidebar-item'})
413
- cve_id = sidebar_items[2].find('div').text.strip()
413
+ cve_id = sidebar_items[3].find('div').text.strip()
414
+ if not cve_id.startswith('CVE'):
415
+ debug(f'{ghsa_id}: No CVE_ID extracted from https://github.com/advisories/{ghsa_id}', sub='cve')
416
+ return None
414
417
  vuln = Vuln.lookup_cve(cve_id)
415
418
  if vuln:
416
419
  vuln[TAGS].append('ghsa')
@@ -29,6 +29,7 @@ class fping(ReconIp):
29
29
  input_type = IP
30
30
  output_types = [Ip]
31
31
  install_pre = {'*': ['fping']}
32
+ ignore_return_code = True
32
33
 
33
34
  @staticmethod
34
35
  def item_loader(self, line):
@@ -66,7 +66,7 @@ class grype(VulnCode):
66
66
  if vuln_id.startswith('GHSA'):
67
67
  data['provider'] = 'github.com'
68
68
  data['references'] = [f'https://github.com/advisories/{vuln_id}']
69
- vuln = VulnCode.lookup_ghsa(vuln_id)
69
+ vuln = VulnCode.lookup_cve_from_ghsa(vuln_id)
70
70
  if vuln:
71
71
  data.update(vuln)
72
72
  data['severity'] = data['severity'] or severity.lower()
@@ -781,8 +781,9 @@ def process_wordlist(val):
781
781
  val = default_wordlist
782
782
  template_wordlist = getattr(CONFIG.wordlists.templates, val)
783
783
  if template_wordlist:
784
- return template_wordlist
785
- elif Path(val).exists():
784
+ val = template_wordlist
785
+
786
+ if Path(val).exists():
786
787
  return val
787
788
  else:
788
789
  return download_file(
@@ -1,9 +1,11 @@
1
1
  import json
2
+ import os
2
3
  import unittest
3
4
 
4
5
  from pathlib import Path
6
+ from unittest import mock
5
7
 
6
- from secator.utils_test import load_fixture, FIXTURES_DIR
8
+ from secator.utils_test import load_fixture, FIXTURES_DIR, clear_modules
7
9
  from secator.tasks._categories import Vuln
8
10
  from secator.config import CONFIG
9
11
 
@@ -17,3 +19,15 @@ class TestHelpers(unittest.TestCase):
17
19
  Path(cve_path).unlink() # make sure we don't use cache data
18
20
  actual = json.dumps(Vuln.lookup_cve_from_cve_circle('CVE-2023-5568'), sort_keys=True)
19
21
  self.assertEqual(actual, fixture)
22
+
23
+ def test_lookup_cve_from_ghsa_no_cve_id(self):
24
+ actual = Vuln.lookup_cve_from_ghsa('GHSA-ggpf-24jw-3fcw')
25
+ self.assertIsNone(actual)
26
+
27
+ @mock.patch.dict(os.environ, {'SECATOR_RUNNERS_SKIP_CVE_SEARCH': '0'})
28
+ def test_lookup_cve_from_ghsa(self):
29
+ clear_modules()
30
+ from secator.tasks._categories import Vuln
31
+ actual = Vuln.lookup_cve_from_ghsa('GHSA-w596-4wvx-j9j6')
32
+ self.assertIsNotNone(actual)
33
+ self.assertEqual(actual['id'], 'CVE-2022-42969')
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes