bundler-audit 0.6.1 → 0.9.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (436) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +3 -0
  3. data/.github/ISSUE_TEMPLATE/bug-report.md +44 -0
  4. data/.github/workflows/ruby.yml +42 -0
  5. data/.gitignore +1 -1
  6. data/.rspec +1 -1
  7. data/.rubocop.yml +83 -0
  8. data/COPYING.txt +4 -4
  9. data/ChangeLog.md +111 -4
  10. data/Gemfile +7 -3
  11. data/README.md +85 -23
  12. data/Rakefile +17 -30
  13. data/bundler-audit.gemspec +3 -11
  14. data/gemspec.yml +2 -2
  15. data/lib/bundler/audit/advisory.rb +81 -9
  16. data/lib/bundler/audit/cli/formats/json.rb +65 -0
  17. data/lib/bundler/audit/cli/formats/junit.rb +127 -0
  18. data/lib/bundler/audit/cli/formats/text.rb +122 -0
  19. data/lib/bundler/audit/cli/formats.rb +148 -0
  20. data/lib/bundler/audit/cli/thor_ext/shell/basic/say_error.rb +33 -0
  21. data/lib/bundler/audit/cli.rb +114 -88
  22. data/lib/bundler/audit/configuration.rb +108 -0
  23. data/lib/bundler/audit/database.rb +161 -29
  24. data/lib/bundler/audit/report.rb +149 -0
  25. data/lib/bundler/audit/results/insecure_source.rb +78 -0
  26. data/lib/bundler/audit/results/result.rb +21 -0
  27. data/lib/bundler/audit/results/unpatched_gem.rb +98 -0
  28. data/lib/bundler/audit/results.rb +19 -0
  29. data/lib/bundler/audit/scanner.rb +105 -26
  30. data/lib/bundler/audit/task.rb +19 -6
  31. data/lib/bundler/audit/version.rb +3 -3
  32. data/lib/bundler/audit.rb +2 -2
  33. data/spec/advisory_spec.rb +153 -20
  34. data/spec/bundle/insecure_sources/Gemfile.lock +151 -0
  35. data/spec/bundle/secure/Gemfile +1 -0
  36. data/spec/bundle/secure/Gemfile.lock +123 -0
  37. data/spec/bundle/unpatched_gems/Gemfile +1 -1
  38. data/spec/bundle/unpatched_gems/Gemfile.lock +31 -0
  39. data/spec/bundle/unpatched_gems_with_dot_configuration/.bundler-audit.yml +3 -0
  40. data/spec/bundle/unpatched_gems_with_dot_configuration/Gemfile +3 -0
  41. data/spec/bundle/unpatched_gems_with_dot_configuration/Gemfile.lock +31 -0
  42. data/spec/cli/formats/json_spec.rb +114 -0
  43. data/spec/cli/formats/junit_spec.rb +284 -0
  44. data/spec/cli/formats/text_spec.rb +273 -0
  45. data/spec/cli/formats_spec.rb +86 -0
  46. data/spec/cli_spec.rb +100 -21
  47. data/spec/configuration_spec.rb +78 -0
  48. data/spec/database_spec.rb +286 -39
  49. data/spec/fixtures/advisory/CVE-2020-1234.yml +21 -0
  50. data/spec/fixtures/{not_a_hash.yml → advisory/not_a_hash.yml} +0 -0
  51. data/spec/fixtures/config/bad/empty.yml +0 -0
  52. data/spec/fixtures/config/bad/ignore_contains_a_non_string.yml +4 -0
  53. data/spec/fixtures/config/bad/ignore_is_not_an_array.yml +3 -0
  54. data/spec/fixtures/config/valid.yml +4 -0
  55. data/spec/fixtures/lib/bundler/audit/cli/formats/bad.rb +17 -0
  56. data/spec/fixtures/lib/bundler/audit/cli/formats/good.rb +17 -0
  57. data/spec/integration_spec.rb +17 -89
  58. data/spec/report_spec.rb +98 -0
  59. data/spec/results/insecure_source_spec.rb +47 -0
  60. data/spec/results/result_spec.rb +10 -0
  61. data/spec/results/unpatched_gem_spec.rb +123 -0
  62. data/spec/scanner_spec.rb +90 -34
  63. data/spec/spec_helper.rb +40 -35
  64. metadata +47 -383
  65. data/.gitmodules +0 -3
  66. data/.travis.yml +0 -13
  67. data/data/ruby-advisory-db/.gitignore +0 -1
  68. data/data/ruby-advisory-db/.rspec +0 -1
  69. data/data/ruby-advisory-db/.travis.yml +0 -12
  70. data/data/ruby-advisory-db/CONTRIBUTING.md +0 -69
  71. data/data/ruby-advisory-db/CONTRIBUTORS.md +0 -40
  72. data/data/ruby-advisory-db/Gemfile +0 -9
  73. data/data/ruby-advisory-db/Gemfile.lock +0 -40
  74. data/data/ruby-advisory-db/LICENSE.txt +0 -5
  75. data/data/ruby-advisory-db/README.md +0 -99
  76. data/data/ruby-advisory-db/Rakefile +0 -26
  77. data/data/ruby-advisory-db/gems/Arabic-Prawn/OSVDB-104365.yml +0 -12
  78. data/data/ruby-advisory-db/gems/RedCloth/CVE-2012-6684.yml +0 -21
  79. data/data/ruby-advisory-db/gems/VladTheEnterprising/CVE-2014-4995.yml +0 -13
  80. data/data/ruby-advisory-db/gems/VladTheEnterprising/CVE-2014-4996.yml +0 -13
  81. data/data/ruby-advisory-db/gems/actionmailer/OSVDB-98629.yml +0 -17
  82. data/data/ruby-advisory-db/gems/actionpack/CVE-2014-0130.yml +0 -23
  83. data/data/ruby-advisory-db/gems/actionpack/CVE-2014-7818.yml +0 -24
  84. data/data/ruby-advisory-db/gems/actionpack/CVE-2014-7829.yml +0 -26
  85. data/data/ruby-advisory-db/gems/actionpack/CVE-2015-7576.yml +0 -116
  86. data/data/ruby-advisory-db/gems/actionpack/CVE-2015-7581.yml +0 -55
  87. data/data/ruby-advisory-db/gems/actionpack/CVE-2016-0751.yml +0 -71
  88. data/data/ruby-advisory-db/gems/actionpack/CVE-2016-0752.yml +0 -96
  89. data/data/ruby-advisory-db/gems/actionpack/CVE-2016-2097.yml +0 -90
  90. data/data/ruby-advisory-db/gems/actionpack/CVE-2016-2098.yml +0 -89
  91. data/data/ruby-advisory-db/gems/actionpack/CVE-2016-6316.yml +0 -57
  92. data/data/ruby-advisory-db/gems/actionpack/OSVDB-100524.yml +0 -20
  93. data/data/ruby-advisory-db/gems/actionpack/OSVDB-100525.yml +0 -21
  94. data/data/ruby-advisory-db/gems/actionpack/OSVDB-100526.yml +0 -27
  95. data/data/ruby-advisory-db/gems/actionpack/OSVDB-100527.yml +0 -24
  96. data/data/ruby-advisory-db/gems/actionpack/OSVDB-100528.yml +0 -22
  97. data/data/ruby-advisory-db/gems/actionpack/OSVDB-103439.yml +0 -24
  98. data/data/ruby-advisory-db/gems/actionpack/OSVDB-103440.yml +0 -22
  99. data/data/ruby-advisory-db/gems/actionpack/OSVDB-74616.yml +0 -18
  100. data/data/ruby-advisory-db/gems/actionpack/OSVDB-77199.yml +0 -23
  101. data/data/ruby-advisory-db/gems/actionpack/OSVDB-79727.yml +0 -26
  102. data/data/ruby-advisory-db/gems/actionpack/OSVDB-84243.yml +0 -28
  103. data/data/ruby-advisory-db/gems/actionpack/OSVDB-84513.yml +0 -23
  104. data/data/ruby-advisory-db/gems/actionpack/OSVDB-84515.yml +0 -26
  105. data/data/ruby-advisory-db/gems/actionpack/OSVDB-89026.yml +0 -24
  106. data/data/ruby-advisory-db/gems/actionpack/OSVDB-91452.yml +0 -20
  107. data/data/ruby-advisory-db/gems/actionpack/OSVDB-91454.yml +0 -23
  108. data/data/ruby-advisory-db/gems/actionview/CVE-2016-0752.yml +0 -92
  109. data/data/ruby-advisory-db/gems/actionview/CVE-2016-2097.yml +0 -89
  110. data/data/ruby-advisory-db/gems/actionview/CVE-2016-6316.yml +0 -56
  111. data/data/ruby-advisory-db/gems/activemodel/CVE-2016-0753.yml +0 -92
  112. data/data/ruby-advisory-db/gems/activerecord/CVE-2014-3514.yml +0 -23
  113. data/data/ruby-advisory-db/gems/activerecord/CVE-2015-7577.yml +0 -107
  114. data/data/ruby-advisory-db/gems/activerecord/CVE-2016-6317.yml +0 -73
  115. data/data/ruby-advisory-db/gems/activerecord/OSVDB-103438.yml +0 -23
  116. data/data/ruby-advisory-db/gems/activerecord/OSVDB-108664.yml +0 -23
  117. data/data/ruby-advisory-db/gems/activerecord/OSVDB-108665.yml +0 -24
  118. data/data/ruby-advisory-db/gems/activerecord/OSVDB-82403.yml +0 -25
  119. data/data/ruby-advisory-db/gems/activerecord/OSVDB-82610.yml +0 -24
  120. data/data/ruby-advisory-db/gems/activerecord/OSVDB-88661.yml +0 -20
  121. data/data/ruby-advisory-db/gems/activerecord/OSVDB-89025.yml +0 -24
  122. data/data/ruby-advisory-db/gems/activerecord/OSVDB-90072.yml +0 -21
  123. data/data/ruby-advisory-db/gems/activerecord/OSVDB-90073.yml +0 -23
  124. data/data/ruby-advisory-db/gems/activerecord/OSVDB-91453.yml +0 -26
  125. data/data/ruby-advisory-db/gems/activerecord-jdbc-adapter/OSVDB-114854.yml +0 -20
  126. data/data/ruby-advisory-db/gems/activerecord-oracle_enhanced-adapter/OSVDB-95376.yml +0 -15
  127. data/data/ruby-advisory-db/gems/activeresource/OSVDB-95749.yml +0 -15
  128. data/data/ruby-advisory-db/gems/activesupport/CVE-2015-3226.yml +0 -54
  129. data/data/ruby-advisory-db/gems/activesupport/CVE-2015-3227.yml +0 -32
  130. data/data/ruby-advisory-db/gems/activesupport/OSVDB-79726.yml +0 -26
  131. data/data/ruby-advisory-db/gems/activesupport/OSVDB-84516.yml +0 -23
  132. data/data/ruby-advisory-db/gems/activesupport/OSVDB-89594.yml +0 -25
  133. data/data/ruby-advisory-db/gems/activesupport/OSVDB-91451.yml +0 -28
  134. data/data/ruby-advisory-db/gems/administrate/CVE-2016-3098.yml +0 -14
  135. data/data/ruby-advisory-db/gems/aescrypt/CVE-2013-7463.yml +0 -10
  136. data/data/ruby-advisory-db/gems/archive-tar-minitar/CVE-2016-10173.yml +0 -16
  137. data/data/ruby-advisory-db/gems/as/OSVDB-112683.yml +0 -10
  138. data/data/ruby-advisory-db/gems/authlogic/OSVDB-89064.yml +0 -15
  139. data/data/ruby-advisory-db/gems/auto_awesomplete/OSVDB-132800.yml +0 -11
  140. data/data/ruby-advisory-db/gems/auto_select2/OSVDB-132800.yml +0 -13
  141. data/data/ruby-advisory-db/gems/awesome_spawn/CVE-2014-0156.yml +0 -19
  142. data/data/ruby-advisory-db/gems/backup-agoddard/OSVDB-108578.yml +0 -8
  143. data/data/ruby-advisory-db/gems/backup_checksum/OSVDB-108569.yml +0 -12
  144. data/data/ruby-advisory-db/gems/backup_checksum/OSVDB-108570.yml +0 -10
  145. data/data/ruby-advisory-db/gems/bcrypt/OSVDB-62067.yml +0 -17
  146. data/data/ruby-advisory-db/gems/bcrypt-ruby/OSVDB-62067.yml +0 -19
  147. data/data/ruby-advisory-db/gems/bio-basespace-sdk/OSVDB-101031.yml +0 -8
  148. data/data/ruby-advisory-db/gems/brbackup/OSVDB-108899.yml +0 -12
  149. data/data/ruby-advisory-db/gems/brbackup/OSVDB-108900.yml +0 -11
  150. data/data/ruby-advisory-db/gems/brbackup/OSVDB-108901.yml +0 -11
  151. data/data/ruby-advisory-db/gems/bson/CVE-2015-4412.yml +0 -16
  152. data/data/ruby-advisory-db/gems/builder/OSVDB-95668.yml +0 -13
  153. data/data/ruby-advisory-db/gems/bundler/OSVDB-110004.yml +0 -15
  154. data/data/ruby-advisory-db/gems/bundler/OSVDB-115090.yml +0 -13
  155. data/data/ruby-advisory-db/gems/bundler/OSVDB-115091.yml +0 -12
  156. data/data/ruby-advisory-db/gems/bundler/OSVDB-115917.yml +0 -12
  157. data/data/ruby-advisory-db/gems/cap-strap/OSVDB-108574.yml +0 -8
  158. data/data/ruby-advisory-db/gems/cap-strap/OSVDB-108575.yml +0 -7
  159. data/data/ruby-advisory-db/gems/ciborg/OSVDB-108586.yml +0 -8
  160. data/data/ruby-advisory-db/gems/cocaine/OSVDB-98835.yml +0 -15
  161. data/data/ruby-advisory-db/gems/codders-dataset/OSVDB-108582.yml +0 -8
  162. data/data/ruby-advisory-db/gems/codders-dataset/OSVDB-108583.yml +0 -8
  163. data/data/ruby-advisory-db/gems/colorscore/CVE-2015-7541.yml +0 -21
  164. data/data/ruby-advisory-db/gems/command_wrap/OSVDB-91450.yml +0 -9
  165. data/data/ruby-advisory-db/gems/crack/OSVDB-90742.yml +0 -17
  166. data/data/ruby-advisory-db/gems/cremefraiche/OSVDB-93395.yml +0 -11
  167. data/data/ruby-advisory-db/gems/curb/OSVDB-114600.yml +0 -12
  168. data/data/ruby-advisory-db/gems/curl/OSVDB-91230.yml +0 -13
  169. data/data/ruby-advisory-db/gems/devise/CVE-2015-8314.yml +0 -14
  170. data/data/ruby-advisory-db/gems/devise/OSVDB-114435.yml +0 -17
  171. data/data/ruby-advisory-db/gems/devise/OSVDB-89642.yml +0 -20
  172. data/data/ruby-advisory-db/gems/devise-two-factor/CVE-2015-7225.yml +0 -22
  173. data/data/ruby-advisory-db/gems/doorkeeper/CVE-2014-8144.yml +0 -26
  174. data/data/ruby-advisory-db/gems/doorkeeper/CVE-2016-6582.yml +0 -43
  175. data/data/ruby-advisory-db/gems/doorkeeper/OSVDB-118830.yml +0 -17
  176. data/data/ruby-advisory-db/gems/dragonfly/OSVDB-110439.yml +0 -13
  177. data/data/ruby-advisory-db/gems/dragonfly/OSVDB-90647.yml +0 -16
  178. data/data/ruby-advisory-db/gems/dragonfly/OSVDB-96798.yml +0 -14
  179. data/data/ruby-advisory-db/gems/dragonfly/OSVDB-97854.yml +0 -12
  180. data/data/ruby-advisory-db/gems/echor/OSVDB-102129.yml +0 -12
  181. data/data/ruby-advisory-db/gems/echor/OSVDB-102130.yml +0 -11
  182. data/data/ruby-advisory-db/gems/ember-source/CVE-2013-4170.yml +0 -25
  183. data/data/ruby-advisory-db/gems/ember-source/CVE-2014-0013.yml +0 -33
  184. data/data/ruby-advisory-db/gems/ember-source/CVE-2014-0014.yml +0 -30
  185. data/data/ruby-advisory-db/gems/ember-source/CVE-2014-0046.yml +0 -26
  186. data/data/ruby-advisory-db/gems/ember-source/CVE-2015-1866.yml +0 -26
  187. data/data/ruby-advisory-db/gems/ember-source/CVE-2015-7565.yml +0 -30
  188. data/data/ruby-advisory-db/gems/enum_column3/OSVDB-94679.yml +0 -9
  189. data/data/ruby-advisory-db/gems/espeak-ruby/CVE-2016-10193.yml +0 -15
  190. data/data/ruby-advisory-db/gems/extlib/OSVDB-90740.yml +0 -18
  191. data/data/ruby-advisory-db/gems/fastreader/OSVDB-91232.yml +0 -13
  192. data/data/ruby-advisory-db/gems/fat_free_crm/OSVDB-101445.yml +0 -17
  193. data/data/ruby-advisory-db/gems/fat_free_crm/OSVDB-101446.yml +0 -19
  194. data/data/ruby-advisory-db/gems/fat_free_crm/OSVDB-101447.yml +0 -17
  195. data/data/ruby-advisory-db/gems/fat_free_crm/OSVDB-101448.yml +0 -19
  196. data/data/ruby-advisory-db/gems/fat_free_crm/OSVDB-101700.yml +0 -16
  197. data/data/ruby-advisory-db/gems/fat_free_crm/OSVDB-110420.yml +0 -19
  198. data/data/ruby-advisory-db/gems/fat_free_crm/OSVDB-118465.yml +0 -17
  199. data/data/ruby-advisory-db/gems/features/OSVDB-96975.yml +0 -8
  200. data/data/ruby-advisory-db/gems/festivaltts4r/CVE-2016-10194.yml +0 -12
  201. data/data/ruby-advisory-db/gems/fileutils/OSVDB-90715.yml +0 -7
  202. data/data/ruby-advisory-db/gems/fileutils/OSVDB-90716.yml +0 -7
  203. data/data/ruby-advisory-db/gems/fileutils/OSVDB-90717.yml +0 -8
  204. data/data/ruby-advisory-db/gems/fileutils/OSVDB-90718.yml +0 -7
  205. data/data/ruby-advisory-db/gems/flash_tool/OSVDB-90829.yml +0 -8
  206. data/data/ruby-advisory-db/gems/flavour_saver/OSVDB-110796.yml +0 -14
  207. data/data/ruby-advisory-db/gems/flukso4r/OSVDB-101577.yml +0 -7
  208. data/data/ruby-advisory-db/gems/fog-dragonfly/OSVDB-110439.yml +0 -15
  209. data/data/ruby-advisory-db/gems/fog-dragonfly/OSVDB-90647.yml +0 -16
  210. data/data/ruby-advisory-db/gems/fog-dragonfly/OSVDB-96798.yml +0 -16
  211. data/data/ruby-advisory-db/gems/fog-dragonfly/OSVDB-97854.yml +0 -12
  212. data/data/ruby-advisory-db/gems/ftpd/OSVDB-90784.yml +0 -18
  213. data/data/ruby-advisory-db/gems/git-fastclone/CVE-2015-8968.yml +0 -21
  214. data/data/ruby-advisory-db/gems/git-fastclone/CVE-2015-8969.yml +0 -13
  215. data/data/ruby-advisory-db/gems/gitlab-grit/OSVDB-99370.yml +0 -14
  216. data/data/ruby-advisory-db/gems/gnms/OSVDB-108594.yml +0 -7
  217. data/data/ruby-advisory-db/gems/gollum/CVE-2015-7314.yml +0 -13
  218. data/data/ruby-advisory-db/gems/gollum-grit_adapter/CVE-2014-9489.yml +0 -23
  219. data/data/ruby-advisory-db/gems/gtk2/OSVDB-40774.yml +0 -20
  220. data/data/ruby-advisory-db/gems/gyazo/OSVDB-108563.yml +0 -10
  221. data/data/ruby-advisory-db/gems/handlebars-source/OSVDB-131671.yml +0 -17
  222. data/data/ruby-advisory-db/gems/http/CVE-2015-1828.yml +0 -14
  223. data/data/ruby-advisory-db/gems/httparty/OSVDB-90741.yml +0 -14
  224. data/data/ruby-advisory-db/gems/i18n/OSVDB-100528.yml +0 -17
  225. data/data/ruby-advisory-db/gems/jquery-rails/CVE-2015-1840.yml +0 -36
  226. data/data/ruby-advisory-db/gems/jquery-ujs/CVE-2015-1840.yml +0 -35
  227. data/data/ruby-advisory-db/gems/jruby-openssl/CVE-2009-4123.yml +0 -16
  228. data/data/ruby-advisory-db/gems/jruby-sandbox/OSVDB-106279.yml +0 -12
  229. data/data/ruby-advisory-db/gems/json/OSVDB-101137.yml +0 -17
  230. data/data/ruby-advisory-db/gems/json/OSVDB-101157.yml +0 -14
  231. data/data/ruby-advisory-db/gems/json/OSVDB-90074.yml +0 -23
  232. data/data/ruby-advisory-db/gems/kafo/OSVDB-106826.yml +0 -15
  233. data/data/ruby-advisory-db/gems/kajam/OSVDB-108529.yml +0 -12
  234. data/data/ruby-advisory-db/gems/kajam/OSVDB-108530.yml +0 -11
  235. data/data/ruby-advisory-db/gems/karo/OSVDB-108573.yml +0 -10
  236. data/data/ruby-advisory-db/gems/karteek-docsplit/OSVDB-92117.yml +0 -9
  237. data/data/ruby-advisory-db/gems/kcapifony/OSVDB-108571.yml +0 -8
  238. data/data/ruby-advisory-db/gems/kcapifony/OSVDB-108572.yml +0 -7
  239. data/data/ruby-advisory-db/gems/kelredd-pruview/OSVDB-92228.yml +0 -9
  240. data/data/ruby-advisory-db/gems/kompanee-recipes/OSVDB-108593.yml +0 -12
  241. data/data/ruby-advisory-db/gems/lawn-login/OSVDB-108576.yml +0 -8
  242. data/data/ruby-advisory-db/gems/ldap_fluff/OSVDB-90579.yml +0 -15
  243. data/data/ruby-advisory-db/gems/ldoce/OSVDB-91870.yml +0 -9
  244. data/data/ruby-advisory-db/gems/lean-ruport/OSVDB-108581.yml +0 -8
  245. data/data/ruby-advisory-db/gems/lingq/OSVDB-108585.yml +0 -7
  246. data/data/ruby-advisory-db/gems/loofah/OSVDB-90945.yml +0 -21
  247. data/data/ruby-advisory-db/gems/lynx/OSVDB-108579.yml +0 -7
  248. data/data/ruby-advisory-db/gems/lynx/OSVDB-108580.yml +0 -8
  249. data/data/ruby-advisory-db/gems/mail/OSVDB-131677.yml +0 -26
  250. data/data/ruby-advisory-db/gems/mail/OSVDB-70667.yml +0 -21
  251. data/data/ruby-advisory-db/gems/mail/OSVDB-81631.yml +0 -14
  252. data/data/ruby-advisory-db/gems/mail/OSVDB-81632.yml +0 -16
  253. data/data/ruby-advisory-db/gems/mapbox-rails/OSVDB-129854.yml +0 -21
  254. data/data/ruby-advisory-db/gems/mapbox-rails/OSVDB-132871.yml +0 -22
  255. data/data/ruby-advisory-db/gems/md2pdf/OSVDB-92290.yml +0 -9
  256. data/data/ruby-advisory-db/gems/mini_magick/OSVDB-91231.yml +0 -15
  257. data/data/ruby-advisory-db/gems/minitar/CVE-2016-10173.yml +0 -16
  258. data/data/ruby-advisory-db/gems/moped/CVE-2015-4410.yml +0 -17
  259. data/data/ruby-advisory-db/gems/multi_xml/OSVDB-89148.yml +0 -16
  260. data/data/ruby-advisory-db/gems/mustache-js-rails/OSVDB-131671.yml +0 -17
  261. data/data/ruby-advisory-db/gems/net-ldap/OSVDB-106108.yml +0 -14
  262. data/data/ruby-advisory-db/gems/newrelic_rpm/OSVDB-90189.yml +0 -17
  263. data/data/ruby-advisory-db/gems/nokogiri/CVE-2015-1819.yml +0 -52
  264. data/data/ruby-advisory-db/gems/nokogiri/CVE-2015-5312.yml +0 -92
  265. data/data/ruby-advisory-db/gems/nokogiri/CVE-2015-7499.yml +0 -37
  266. data/data/ruby-advisory-db/gems/nokogiri/CVE-2015-8806.yml +0 -42
  267. data/data/ruby-advisory-db/gems/nokogiri/CVE-2016-4658.yml +0 -32
  268. data/data/ruby-advisory-db/gems/nokogiri/CVE-2017-5029.yml +0 -44
  269. data/data/ruby-advisory-db/gems/nokogiri/OSVDB-101179.yml +0 -18
  270. data/data/ruby-advisory-db/gems/nokogiri/OSVDB-101458.yml +0 -15
  271. data/data/ruby-advisory-db/gems/nokogiri/OSVDB-118481.yml +0 -15
  272. data/data/ruby-advisory-db/gems/nokogiri/OSVDB-90946.yml +0 -15
  273. data/data/ruby-advisory-db/gems/nori/OSVDB-90196.yml +0 -19
  274. data/data/ruby-advisory-db/gems/omniauth-facebook/OSVDB-99693.yml +0 -22
  275. data/data/ruby-advisory-db/gems/omniauth-facebook/OSVDB-99888.yml +0 -17
  276. data/data/ruby-advisory-db/gems/omniauth-oauth2/OSVDB-90264.yml +0 -16
  277. data/data/ruby-advisory-db/gems/open-uri-cached/OSVDB-121701.yml +0 -13
  278. data/data/ruby-advisory-db/gems/paperclip/CVE-2015-2963.yml +0 -16
  279. data/data/ruby-advisory-db/gems/paperclip/OSVDB-103151.yml +0 -13
  280. data/data/ruby-advisory-db/gems/paratrooper-newrelic/OSVDB-101839.yml +0 -13
  281. data/data/ruby-advisory-db/gems/paratrooper-pingdom/OSVDB-101847.yml +0 -13
  282. data/data/ruby-advisory-db/gems/passenger/CVE-2014-1831.yml +0 -13
  283. data/data/ruby-advisory-db/gems/passenger/CVE-2014-1832.yml +0 -13
  284. data/data/ruby-advisory-db/gems/passenger/CVE-2015-7519.yml +0 -17
  285. data/data/ruby-advisory-db/gems/passenger/CVE-2016-10345.yml +0 -16
  286. data/data/ruby-advisory-db/gems/passenger/OSVDB-90738.yml +0 -16
  287. data/data/ruby-advisory-db/gems/passenger/OSVDB-93752.yml +0 -15
  288. data/data/ruby-advisory-db/gems/passenger/OSVDB-94074.yml +0 -14
  289. data/data/ruby-advisory-db/gems/pdfkit/OSVDB-90867.yml +0 -11
  290. data/data/ruby-advisory-db/gems/point-cli/OSVDB-108577.yml +0 -8
  291. data/data/ruby-advisory-db/gems/quick_magick/OSVDB-106954.yml +0 -7
  292. data/data/ruby-advisory-db/gems/rack/CVE-2015-3225.yml +0 -18
  293. data/data/ruby-advisory-db/gems/rack/OSVDB-78121.yml +0 -21
  294. data/data/ruby-advisory-db/gems/rack/OSVDB-89317.yml +0 -21
  295. data/data/ruby-advisory-db/gems/rack/OSVDB-89320.yml +0 -19
  296. data/data/ruby-advisory-db/gems/rack/OSVDB-89327.yml +0 -20
  297. data/data/ruby-advisory-db/gems/rack/OSVDB-89938.yml +0 -18
  298. data/data/ruby-advisory-db/gems/rack/OSVDB-89939.yml +0 -23
  299. data/data/ruby-advisory-db/gems/rack-attack/OSVDB-132234.yml +0 -26
  300. data/data/ruby-advisory-db/gems/rack-cache/OSVDB-83077.yml +0 -18
  301. data/data/ruby-advisory-db/gems/rack-mini-profiler/CVE-2016-4442.yml +0 -17
  302. data/data/ruby-advisory-db/gems/rack-ssl/OSVDB-104734.yml +0 -11
  303. data/data/ruby-advisory-db/gems/rails-html-sanitizer/CVE-2015-7578.yml +0 -47
  304. data/data/ruby-advisory-db/gems/rails-html-sanitizer/CVE-2015-7579.yml +0 -75
  305. data/data/ruby-advisory-db/gems/rails-html-sanitizer/CVE-2015-7580.yml +0 -70
  306. data/data/ruby-advisory-db/gems/rbovirt/OSVDB-104080.yml +0 -20
  307. data/data/ruby-advisory-db/gems/rdoc/OSVDB-90004.yml +0 -27
  308. data/data/ruby-advisory-db/gems/redcarpet/CVE-2015-5147.yml +0 -17
  309. data/data/ruby-advisory-db/gems/redcarpet/OSVDB-120415.yml +0 -16
  310. data/data/ruby-advisory-db/gems/redis-namespace/OSVDB-96425.yml +0 -15
  311. data/data/ruby-advisory-db/gems/refile/OSVDB-120857.yml +0 -16
  312. data/data/ruby-advisory-db/gems/rest-client/CVE-2015-1820.yml +0 -23
  313. data/data/ruby-advisory-db/gems/rest-client/OSVDB-117461.yml +0 -13
  314. data/data/ruby-advisory-db/gems/rgpg/OSVDB-95948.yml +0 -15
  315. data/data/ruby-advisory-db/gems/ruby-saml/CVE-2016-5697.yml +0 -17
  316. data/data/ruby-advisory-db/gems/ruby-saml/OSVDB-117903.yml +0 -13
  317. data/data/ruby-advisory-db/gems/ruby-saml/OSVDB-124383.yml +0 -11
  318. data/data/ruby-advisory-db/gems/ruby-saml/OSVDB-124991.yml +0 -13
  319. data/data/ruby-advisory-db/gems/ruby_parser/OSVDB-90561.yml +0 -11
  320. data/data/ruby-advisory-db/gems/rubyzip/CVE-2017-5946.yml +0 -14
  321. data/data/ruby-advisory-db/gems/safemode/CVE-2016-3693.yml +0 -13
  322. data/data/ruby-advisory-db/gems/screen_capture/OSVDB-107783.yml +0 -7
  323. data/data/ruby-advisory-db/gems/sentry-raven/OSVDB-115654.yml +0 -14
  324. data/data/ruby-advisory-db/gems/sfpagent/OSVDB-105971.yml +0 -15
  325. data/data/ruby-advisory-db/gems/show_in_browser/OSVDB-93490.yml +0 -8
  326. data/data/ruby-advisory-db/gems/sidekiq/OSVDB-125675.yml +0 -9
  327. data/data/ruby-advisory-db/gems/sidekiq/OSVDB-125676.yml +0 -14
  328. data/data/ruby-advisory-db/gems/sidekiq/OSVDB-125678.yml +0 -9
  329. data/data/ruby-advisory-db/gems/sidekiq-pro/OSVDB-126329.yml +0 -12
  330. data/data/ruby-advisory-db/gems/sidekiq-pro/OSVDB-126330.yml +0 -10
  331. data/data/ruby-advisory-db/gems/sidekiq-pro/OSVDB-126331.yml +0 -14
  332. data/data/ruby-advisory-db/gems/sounder/OSVDB-96278.yml +0 -14
  333. data/data/ruby-advisory-db/gems/spina/CVE-2015-4619.yml +0 -16
  334. data/data/ruby-advisory-db/gems/spree/OSVDB-119205.yml +0 -18
  335. data/data/ruby-advisory-db/gems/spree/OSVDB-125699.yml +0 -18
  336. data/data/ruby-advisory-db/gems/spree/OSVDB-125701.yml +0 -17
  337. data/data/ruby-advisory-db/gems/spree/OSVDB-125712.yml +0 -16
  338. data/data/ruby-advisory-db/gems/spree/OSVDB-125713.yml +0 -15
  339. data/data/ruby-advisory-db/gems/spree/OSVDB-69098.yml +0 -19
  340. data/data/ruby-advisory-db/gems/spree/OSVDB-73751.yml +0 -11
  341. data/data/ruby-advisory-db/gems/spree/OSVDB-76011.yml +0 -15
  342. data/data/ruby-advisory-db/gems/spree/OSVDB-81505.yml +0 -14
  343. data/data/ruby-advisory-db/gems/spree/OSVDB-81506.yml +0 -16
  344. data/data/ruby-advisory-db/gems/spree/OSVDB-90865.yml +0 -20
  345. data/data/ruby-advisory-db/gems/spree/OSVDB-91216.yml +0 -17
  346. data/data/ruby-advisory-db/gems/spree/OSVDB-91217.yml +0 -17
  347. data/data/ruby-advisory-db/gems/spree/OSVDB-91218.yml +0 -17
  348. data/data/ruby-advisory-db/gems/spree/OSVDB-91219.yml +0 -17
  349. data/data/ruby-advisory-db/gems/spree_auth/OSVDB-90865.yml +0 -16
  350. data/data/ruby-advisory-db/gems/spree_auth_devise/OSVDB-90865.yml +0 -20
  351. data/data/ruby-advisory-db/gems/sprockets/CVE-2014-7819.yml +0 -27
  352. data/data/ruby-advisory-db/gems/sprout/OSVDB-100598.yml +0 -16
  353. data/data/ruby-advisory-db/gems/sup/CVE-2013-4478.yml +0 -14
  354. data/data/ruby-advisory-db/gems/sup/CVE-2013-4479.yml +0 -14
  355. data/data/ruby-advisory-db/gems/thumbshooter/OSVDB-91839.yml +0 -9
  356. data/data/ruby-advisory-db/gems/twitter-bootstrap-rails/OSVDB-109206.yml +0 -22
  357. data/data/ruby-advisory-db/gems/uglifier/OSVDB-126747.yml +0 -19
  358. data/data/ruby-advisory-db/gems/web-console/CVE-2015-3224.yml +0 -22
  359. data/data/ruby-advisory-db/gems/web-console/OSVDB-112346.yml +0 -12
  360. data/data/ruby-advisory-db/gems/webbynode/OSVDB-100920.yml +0 -12
  361. data/data/ruby-advisory-db/gems/wicked/OSVDB-98270.yml +0 -14
  362. data/data/ruby-advisory-db/gems/will_paginate/OSVDB-101138.yml +0 -15
  363. data/data/ruby-advisory-db/gems/xaviershay-dm-rails/OSVDB-118579.yml +0 -13
  364. data/data/ruby-advisory-db/lib/cf_scrape.py +0 -5
  365. data/data/ruby-advisory-db/lib/osvdb_scrape.rb +0 -92
  366. data/data/ruby-advisory-db/libraries/rubygems/CVE-2013-4287.yml +0 -19
  367. data/data/ruby-advisory-db/libraries/rubygems/CVE-2013-4363.yml +0 -20
  368. data/data/ruby-advisory-db/libraries/rubygems/CVE-2015-3900.yml +0 -19
  369. data/data/ruby-advisory-db/libraries/rubygems/CVE-2015-4020.yml +0 -19
  370. data/data/ruby-advisory-db/libraries/rubygems/OSVDB-33561.yml +0 -17
  371. data/data/ruby-advisory-db/libraries/rubygems/OSVDB-81444.yml +0 -14
  372. data/data/ruby-advisory-db/libraries/rubygems/OSVDB-85809.yml +0 -16
  373. data/data/ruby-advisory-db/rubies/jruby/CVE-2010-1330.yml +0 -17
  374. data/data/ruby-advisory-db/rubies/jruby/CVE-2011-4838.yml +0 -15
  375. data/data/ruby-advisory-db/rubies/jruby/CVE-2012-5370.yml +0 -17
  376. data/data/ruby-advisory-db/rubies/jruby/OSVDB-94644.yml +0 -12
  377. data/data/ruby-advisory-db/rubies/rbx/OSVDB-78119.yml +0 -13
  378. data/data/ruby-advisory-db/rubies/rbx/OSVDB-87861.yml +0 -17
  379. data/data/ruby-advisory-db/rubies/ruby/CVE-2007-5162.yml +0 -16
  380. data/data/ruby-advisory-db/rubies/ruby/CVE-2007-5770.yml +0 -17
  381. data/data/ruby-advisory-db/rubies/ruby/CVE-2008-1447.yml +0 -15
  382. data/data/ruby-advisory-db/rubies/ruby/CVE-2008-1891.yml +0 -21
  383. data/data/ruby-advisory-db/rubies/ruby/CVE-2008-2376.yml +0 -18
  384. data/data/ruby-advisory-db/rubies/ruby/CVE-2008-3443.yml +0 -17
  385. data/data/ruby-advisory-db/rubies/ruby/CVE-2008-3655.yml +0 -18
  386. data/data/ruby-advisory-db/rubies/ruby/CVE-2008-3656.yml +0 -19
  387. data/data/ruby-advisory-db/rubies/ruby/CVE-2008-3657.yml +0 -16
  388. data/data/ruby-advisory-db/rubies/ruby/CVE-2008-3905.yml +0 -17
  389. data/data/ruby-advisory-db/rubies/ruby/CVE-2009-0642.yml +0 -17
  390. data/data/ruby-advisory-db/rubies/ruby/CVE-2009-5147.yml +0 -13
  391. data/data/ruby-advisory-db/rubies/ruby/CVE-2011-0188.yml +0 -17
  392. data/data/ruby-advisory-db/rubies/ruby/CVE-2011-2686.yml +0 -17
  393. data/data/ruby-advisory-db/rubies/ruby/CVE-2011-2705.yml +0 -16
  394. data/data/ruby-advisory-db/rubies/ruby/CVE-2011-3009.yml +0 -17
  395. data/data/ruby-advisory-db/rubies/ruby/CVE-2012-4464.yml +0 -17
  396. data/data/ruby-advisory-db/rubies/ruby/CVE-2012-4466.yml +0 -16
  397. data/data/ruby-advisory-db/rubies/ruby/CVE-2012-4481.yml +0 -15
  398. data/data/ruby-advisory-db/rubies/ruby/CVE-2015-1855.yml +0 -17
  399. data/data/ruby-advisory-db/rubies/ruby/CVE-2015-7551.yml +0 -19
  400. data/data/ruby-advisory-db/rubies/ruby/CVE-2015-9096.yml +0 -19
  401. data/data/ruby-advisory-db/rubies/ruby/OSVDB-100113.yml +0 -17
  402. data/data/ruby-advisory-db/rubies/ruby/OSVDB-105027.yml +0 -20
  403. data/data/ruby-advisory-db/rubies/ruby/OSVDB-107478.yml +0 -16
  404. data/data/ruby-advisory-db/rubies/ruby/OSVDB-108971.yml +0 -17
  405. data/data/ruby-advisory-db/rubies/ruby/OSVDB-113747.yml +0 -19
  406. data/data/ruby-advisory-db/rubies/ruby/OSVDB-114641.yml +0 -22
  407. data/data/ruby-advisory-db/rubies/ruby/OSVDB-120541.yml +0 -22
  408. data/data/ruby-advisory-db/rubies/ruby/OSVDB-46550.yml +0 -22
  409. data/data/ruby-advisory-db/rubies/ruby/OSVDB-46551.yml +0 -21
  410. data/data/ruby-advisory-db/rubies/ruby/OSVDB-46552.yml +0 -21
  411. data/data/ruby-advisory-db/rubies/ruby/OSVDB-46553.yml +0 -22
  412. data/data/ruby-advisory-db/rubies/ruby/OSVDB-46554.yml +0 -18
  413. data/data/ruby-advisory-db/rubies/ruby/OSVDB-47753.yml +0 -16
  414. data/data/ruby-advisory-db/rubies/ruby/OSVDB-55031.yml +0 -17
  415. data/data/ruby-advisory-db/rubies/ruby/OSVDB-60880.yml +0 -17
  416. data/data/ruby-advisory-db/rubies/ruby/OSVDB-61774.yml +0 -20
  417. data/data/ruby-advisory-db/rubies/ruby/OSVDB-65556.yml +0 -17
  418. data/data/ruby-advisory-db/rubies/ruby/OSVDB-66040.yml +0 -17
  419. data/data/ruby-advisory-db/rubies/ruby/OSVDB-70957.yml +0 -15
  420. data/data/ruby-advisory-db/rubies/ruby/OSVDB-70958.yml +0 -20
  421. data/data/ruby-advisory-db/rubies/ruby/OSVDB-74829.yml +0 -18
  422. data/data/ruby-advisory-db/rubies/ruby/OSVDB-78118.yml +0 -14
  423. data/data/ruby-advisory-db/rubies/ruby/OSVDB-87280.yml +0 -17
  424. data/data/ruby-advisory-db/rubies/ruby/OSVDB-87863.yml +0 -18
  425. data/data/ruby-advisory-db/rubies/ruby/OSVDB-87917.yml +0 -16
  426. data/data/ruby-advisory-db/rubies/ruby/OSVDB-90587.yml +0 -16
  427. data/data/ruby-advisory-db/rubies/ruby/OSVDB-93414.yml +0 -19
  428. data/data/ruby-advisory-db/rubies/ruby/OSVDB-94628.yml +0 -21
  429. data/data/ruby-advisory-db/scripts/post-advisories.sh +0 -18
  430. data/data/ruby-advisory-db/spec/advisory_example.rb +0 -202
  431. data/data/ruby-advisory-db/spec/gem_example.rb +0 -22
  432. data/data/ruby-advisory-db/spec/gems_spec.rb +0 -23
  433. data/data/ruby-advisory-db/spec/library_example.rb +0 -21
  434. data/data/ruby-advisory-db/spec/ruby_example.rb +0 -23
  435. data/data/ruby-advisory-db/spec/spec_helper.rb +0 -1
  436. data/data/ruby-advisory-db.ts +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9a3d576304278048394827d4322e8e4be389a2a899b3e22bff638a0aaffcf91a
4
- data.tar.gz: 025cf42cf42c6e868b1de3b07066aafe6e55878fe13f53f34c3e40396b44ba27
3
+ metadata.gz: 83898613996d764bcb4e3ed517da59a95132049e29e7e8afa25698d4a03f6276
4
+ data.tar.gz: e931b427480a4bbdaeaa4bf381141780e04d26cbd2a98c60e60f3a0431c3b4d6
5
5
  SHA512:
6
- metadata.gz: 4485f6c903fcda454232c9305aaefb7d170edc6d6ea4bb8d766880a4135460dde1b3249cb28a87434ae3f01138d60c8bc0792e36b31e2b2893d314ae8cfb5acd
7
- data.tar.gz: c273401ad1f90286ff8a0981e858320cd2b14aa65718338ab7c54bb43b77cbf423848d982852217ab763e44b32ea9f6d977ce26e8dbc1f793cb405c52da3be82
6
+ metadata.gz: fcd29c11e7cee080390e9dc3b6356fc74817835a8b9f8621d230d27ea497b81ba63abcf880799f948de6eb4768747a01dc46a0aa29841c1bd76d92cd990c2659
7
+ data.tar.gz: f41ece9bf750bddcf632be46f240f079074ce26c7cb69e24184002929f041ed326e1b383a3649ec680bb3d42e03c25a167b65eb93219511065c05622bee1bef3
@@ -0,0 +1,3 @@
1
+ github:
2
+ - postmodern
3
+ - reedloden
@@ -0,0 +1,44 @@
1
+ ---
2
+ name: Bug Report
3
+ about: Report a bug
4
+ title: ''
5
+ labels: bug
6
+ assignees: ''
7
+
8
+ ---
9
+ <!--
10
+ **Double Check**
11
+
12
+ - Did you update to the latest bundler-audit? (ex: `bundle update bundler-audit` or `gem update bundler-audit`)
13
+ - Did you update the ruby-advisory-db? (ex: `bundler-audit update`)
14
+ -->
15
+
16
+ ## Description
17
+
18
+ <!-- A clear and concise description of what the bug is. -->
19
+
20
+ ## Steps To Reproduce
21
+
22
+ Steps to reproduce the bug:
23
+ 1. `$ bundle-audit ...`
24
+ 2. ???
25
+
26
+ ## Expected Behavior
27
+
28
+ <!-- What should happen. -->
29
+
30
+ ## Actual Behavior
31
+
32
+ <!-- The error message or backtrace. -->
33
+ ```
34
+ ```
35
+
36
+ ## Environment
37
+
38
+ $ bundler-audit --version
39
+ ...
40
+ $ bundle --version
41
+ ...
42
+ $ ruby --version
43
+ ...
44
+
@@ -0,0 +1,42 @@
1
+ name: CI
2
+
3
+ on: [ push, pull_request ]
4
+
5
+ jobs:
6
+ tests:
7
+ runs-on: ubuntu-latest
8
+ strategy:
9
+ fail-fast: false
10
+ matrix:
11
+ ruby:
12
+ - 2.5
13
+ - 2.6
14
+ - 2.7
15
+ - 3.0
16
+ - jruby
17
+ - truffleruby-head
18
+ name: Ruby ${{ matrix.ruby }}
19
+ steps:
20
+ - uses: actions/checkout@v2
21
+ - name: Set up Ruby
22
+ uses: ruby/setup-ruby@v1
23
+ with:
24
+ ruby-version: ${{ matrix.ruby }}
25
+ - name: Install dependencies
26
+ run: bundle install --jobs 4 --retry 3
27
+ - name: Run tests
28
+ run: bundle exec rake test
29
+
30
+ # rubocop linting
31
+ rubocop:
32
+ runs-on: ubuntu-latest
33
+ steps:
34
+ - uses: actions/checkout@v2
35
+ - name: Set up Ruby
36
+ uses: ruby/setup-ruby@v1
37
+ with:
38
+ ruby-version: 2.7
39
+ - name: Install dependencies
40
+ run: bundle install --jobs 4 --retry 3
41
+ - name: Run rubocop
42
+ run: bundle exec rubocop --parallel
data/.gitignore CHANGED
@@ -5,7 +5,7 @@ doc/
5
5
  .yardoc/
6
6
  coverage/
7
7
  pkg/
8
- spec/bundle/*/Gemfile.lock
9
8
  spec/bundle/*/.bundle/
9
+ spec/fixtures/database
10
10
  vendor/bundle/
11
11
  tmp/
data/.rspec CHANGED
@@ -1 +1 @@
1
- --colour --format documentation
1
+ --colour --format documentation --exclude-pattern spec/fixtures/**/*_spec.rb
data/.rubocop.yml ADDED
@@ -0,0 +1,83 @@
1
+ AllCops:
2
+ NewCops: enable
3
+ SuggestExtensions: false
4
+ TargetRubyVersion: 2.7
5
+ Exclude:
6
+ - 'spec/bundle/**/*'
7
+ - 'spec/fixtures/database/**/*'
8
+ - 'vendor/**/*'
9
+
10
+ #
11
+ # Style
12
+ #
13
+ Layout/FirstArrayElementIndentation: { EnforcedStyle: consistent }
14
+ Layout/FirstHashElementIndentation: { EnforcedStyle: consistent }
15
+ Layout/SpaceAroundEqualsInParameterDefault: { EnforcedStyle: no_space }
16
+ Style/SymbolArray: { EnforcedStyle: brackets }
17
+ Style/PercentLiteralDelimiters:
18
+ Enabled: true
19
+ PreferredDelimiters:
20
+ default: '{}'
21
+ '%i': '[]'
22
+ '%I': '[]'
23
+ '%w': '[]'
24
+ '%W': '[]'
25
+
26
+ #
27
+ # Rules that conflict with my style.
28
+ #
29
+ Metrics: { Enabled: false }
30
+ Layout/BeginEndAlignment: { Enabled: false } # Offense count: 1
31
+ Layout/BlockAlignment: { Enabled: false } # Offense count: 1
32
+ Layout/EmptyLinesAroundClassBody: { Enabled: false } # Offense count: 15
33
+ Layout/ExtraSpacing: { Enabled: false } # Offense count: 9
34
+ Layout/HashAlignment: { Enabled: false } # Offense count: 3
35
+ Layout/SpaceAfterComma: { Enabled: false } # Offense count: 122
36
+ Layout/SpaceInsideHashLiteralBraces: { Enabled: false } # Offense count: 8
37
+ Lint/MissingSuper: { Enabled: false } # Offense count: 3
38
+ Lint/ShadowingOuterLocalVariable: { Enabled: false }
39
+ Lint/ConstantDefinitionInBlock: { Exclude: ['spec/cli/formats_spec.rb'] }
40
+ Lint/SuppressedException: { Exclude: ['spec/cli_spec.rb'] }
41
+ Lint/UnusedBlockArgument: { Enabled: false } # Offense count: 4
42
+ Lint/UnusedMethodArgument: { Enabled: false } # Offense count: 6
43
+ Naming/RescuedExceptionsVariableName: { Enabled: false } # Offense count: 2
44
+ Style/BlockDelimiters: { Enabled: false } # Offense count: 20
45
+ Style/CaseEquality: { Exclude: ['lib/bundler/audit/advisory.rb'] }
46
+ Style/ClassCheck: { Enabled: false } # Offense count: 4
47
+ Style/Documentation: { Enabled: false } # Offense count: 12
48
+ Style/GuardClause: { Enabled: false } # Offense count: 1
49
+ Style/HashSyntax:
50
+ Exclude:
51
+ - 'Rakefile'
52
+ - 'lib/bundler/audit/task.rb'
53
+ Style/IfUnlessModifier: { Enabled: false } # Offense count: 14
54
+ Style/MethodCallWithoutArgsParentheses: { Enabled: false } # Offense count: 1
55
+ Style/MultilineBlockChain: { Exclude: ['spec/**/*'] } # Offense count: 6
56
+ Style/MutableConstant: { Enabled: false } # Offense count: 4
57
+ Style/ParenthesesAroundCondition: { Enabled: false } # Offense count: 1
58
+ Style/RedundantBegin: { Exclude: ['spec/cli_spec.rb'] } # Offense count: 1
59
+ Style/RedundantReturn: { Enabled: false } # Offense count: 6
60
+ Style/SpecialGlobalVars: { Enabled: false } # Offense count: 5
61
+ Style/StringLiterals: { Enabled: false } # Offense count: 333
62
+ Style/StructInheritance: { Enabled: false } # Offense count: 1
63
+ Style/UnlessElse: { Enabled: false } # Offense count: 1
64
+ Style/WordArray: { Enabled: false } # Offense count: 1
65
+ Style/Lambda: { Enabled: false } # Offense count: 2
66
+ Style/SafeNavigation: { Enabled: false } # Offense count: 2
67
+ Lint/IneffectiveAccessModifier: { Enabled: false } # Offense count: 1
68
+
69
+ #
70
+ # Rules that may be disabled in the future.
71
+ #
72
+ # Layout/SpaceInsideParens: { Enabled: false }
73
+ # Layout/TrailingWhitespace: { Enabled: false }
74
+
75
+ #
76
+ # Rules that I want to fully enabled in the future.
77
+ #
78
+ Style/DoubleNegation: { Exclude: ['spec/spec_helper.rb'] } # Offense count: 1
79
+ Style/EmptyMethod: { Exclude: ['spec/cli/formats_spec.rb'] } # Offense count: 2
80
+ Style/ExpandPathArguments: { Enabled: false } # Offense count: 5
81
+ Style/FrozenStringLiteralComment: { Enabled: false } # Offense count: 42
82
+ Style/MixinUsage: { Exclude: ['spec/spec_helper.rb'] } # Offense count: 1
83
+ Layout/LineLength: { Enabled: false }
data/COPYING.txt CHANGED
@@ -1,7 +1,7 @@
1
1
  GNU GENERAL PUBLIC LICENSE
2
2
  Version 3, 29 June 2007
3
3
 
4
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
4
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
5
5
  Everyone is permitted to copy and distribute verbatim copies
6
6
  of this license document, but changing it is not allowed.
7
7
 
@@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found.
645
645
  GNU General Public License for more details.
646
646
 
647
647
  You should have received a copy of the GNU General Public License
648
- along with this program. If not, see <http://www.gnu.org/licenses/>.
648
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
649
649
 
650
650
  Also add information on how to contact you by electronic and paper mail.
651
651
 
@@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box".
664
664
  You should also get your employer (if you work as a programmer) or school,
665
665
  if any, to sign a "copyright disclaimer" for the program, if necessary.
666
666
  For more information on this, and how to apply and follow the GNU GPL, see
667
- <http://www.gnu.org/licenses/>.
667
+ <https://www.gnu.org/licenses/>.
668
668
 
669
669
  The GNU General Public License does not permit incorporating your program
670
670
  into proprietary programs. If your program is a subroutine library, you
671
671
  may consider it more useful to permit linking proprietary applications with
672
672
  the library. If this is what you want to do, use the GNU Lesser General
673
673
  Public License instead of this License. But first, please read
674
- <http://www.gnu.org/philosophy/why-not-lgpl.html>.
674
+ <https://www.gnu.org/philosophy/why-not-lgpl.html>.
data/ChangeLog.md CHANGED
@@ -1,3 +1,109 @@
1
+ ### 0.9.0.1 / 2021-08-31
2
+
3
+ * Add a workaround for Psych < 3.1.0 to support running on Ruby < 2.6.
4
+ (issue #319)
5
+
6
+ ### 0.9.0 / 2021-08-31
7
+
8
+ * Load advisory metadata using `YAML.safe_load`. (issue #302)
9
+ * Explicitly permit the `Date` class for Psych >= 4.0.0 and Ruby >= 3.1.0.
10
+ * Added {Bundler::Audit::Advisory#to_h}. (pull #310)
11
+ * Added {Bundler::Audit::Database#commit_id}.
12
+
13
+ #### CLI
14
+
15
+ * Added the `--config` option. (pull #306)
16
+ * Added the `junit` output format (ex: `--format junit`). (pull #314)
17
+ * Add missing output for CVSSv3 criticality information. (pull #302)
18
+ * Include criticality information in the JSON output as well. (pull #310)
19
+ * `bundle-audit stats` now prints the commit ID of the ruby-advisory-db.
20
+ * Fixed a deprecation warning from Thor. (issue #317)
21
+
22
+ #### Rake Task
23
+
24
+ * Add the `bundle:audit:update` task for updating the [ruby-advisory-db].
25
+ (pull #296)
26
+ * Aliased `bundle:audit` to `bundle:audit:check`.
27
+ * Aliased `bundler:audit:*` to `bundle:audit:*`.
28
+ * Rake tasks now execute `bundle-audit` command as a subprocess to ensure
29
+ isolation.
30
+
31
+ ### 0.8.0 / 2021-03-10
32
+
33
+ * No longer vendor [ruby-advisory-db].
34
+ * Added {Bundler::Audit::Configuration}.
35
+ * Supports loading YAML configuration data from a `.bundler-audit.yml` file.
36
+ * Added {Bundler::Audit::Results}.
37
+ * Added {Bundler::Audit::Report}.
38
+ * Added {Bundler::Audit::CLI::Formats}.
39
+ * Added {Bundler::Audit::CLI::Formats::Text}.
40
+ * Added {Bundler::Audit::CLI::Formats::JSON}.
41
+ * Added {Bundler::Audit::Database::DEFAULT_PATH}.
42
+ * Added {Bundler::Audit::Database.exists?}.
43
+ * Added {Bundler::Audit::Database#git?}.
44
+ * Added {Bundler::Audit::Database#update!}.
45
+ * Will raise a {Bundler::Audit::Database::UpdateFailed UpdateFailed}
46
+ exception, if the `git pull` command fails.
47
+ * Added {Bundler::Audit::Database#last_updated_at}.
48
+ * Added {Bundler::Audit::Scanner#report}.
49
+ * {Bundler::Audit::Database::USER_PATH} is now `Gem.user_home` aware.
50
+ * `Gem.user_home` will try to infer `HOME`, even if it is not set.
51
+ * {Bundler::Audit::Database#download} will now raise a
52
+ {Bundler::Audit::Database::DownloadFailed DownloadFailed} exception, if the
53
+ `git clone` command fails.
54
+ * {Bundler::Audit::Scanner#initialize}:
55
+ * Now accepts an additional `database` and `config_dot_file` arguments.
56
+ * Will now raise a `Bundler::GemfileLockNotFound` exception,
57
+ if the given `Gemfile.lock` file cannot be found.
58
+ * {Bundler::Audit::Scanner#scan_sources} will now ignore any source with a
59
+ `127.0.0.0/8` or `::1/128` IP address.
60
+ * {Bundler::Audit::Scanner#scan_specs} will ignore any advisories listed in
61
+ {Bundler::Audit::Configuration#ignore}, which is loaded from the
62
+ `.bundler-audit.yml` file.
63
+ * Deprecated {Bundler::Audit::Database.update!} in favor of
64
+ {Bundler::Audit::Database#update! #update!}.
65
+ * Removed `Bundler::Audit::Database::VENDORED_PATH`.
66
+ * Removed `Bundler::Audit::Database::VENDORED_TIMESTAMP`.
67
+
68
+ #### CLI
69
+
70
+ * Require [thor] ~> 1.0.
71
+ * Added `bundler-audit stats`.
72
+ * Added `bundler-audit download`.
73
+ * `bundler-audit check`:
74
+ * Now accepts a optional `DIR` argument for the project directory.
75
+ * `bundler-audit check` will now print an explicit error message and exit,
76
+ if the given `DIR` does not exist.
77
+ * Will now auto-download [ruby-advisory-db] to ensure the latest advisory
78
+ information is used on first run.
79
+ * Now supports a `--database` option for specifying a path
80
+ to an alternative [ruby-advisory-db] copy.
81
+ * Now supports a `--gemfile-lock` option for specifying a
82
+ custom `Gemfile.lock` file within the project directory.
83
+ * Now supports a `--format` option for specifying the
84
+ desired format. `text` and `json` are supported, but other custom formats
85
+ can be loaded. See {Bundler::Audit::CLI::Formats}.
86
+ * Now supports a `--output` option for writing the report output to a file.
87
+ * Prints both CVE and GHSA IDs.
88
+ * Print all error messages to stderr.
89
+ * No longer print number of advisories in `bundler-audit version`.
90
+
91
+ ### 0.7.0.1 / 2020-06-12
92
+
93
+ * Forgot to populate `data/ruby-advisory-db`.
94
+
95
+ ### 0.7.0 / 2020-06-12
96
+
97
+ * Require [thor] >= 0.18, < 2.
98
+ * Added {Bundler::Audit::Advisory#ghsa} (@rschultheis).
99
+ * Added {Bundler::Audit::Advisory#cvss_v3} (@ahamlin-nr).
100
+ * Added {Bundler::Audit::Advisory#identifiers} (@rschultheis).
101
+ * Updated {Bundler::Audit::Advisory#criticality} ranges (@reedloden).
102
+ * Avoid rebasing the ruby-advisory-db when updating (@nicknovitski).
103
+ * Fixed issue with Bundler 2.x where source URIs are no longer parsed as
104
+ `URI::HTTP` objects, but as `Bundler::URI::HTTP` objects. (@milgner)
105
+ * Make it more explicit that git is required for database updates (@fatkodima)
106
+
1
107
  ### 0.6.1 / 2019-01-17
2
108
 
3
109
  * Require bundler `>= 1.2.0, < 3` to support [bundler] 2.0.
@@ -19,9 +125,9 @@
19
125
 
20
126
  #### CLI
21
127
 
22
- * Added the `--update` option to `bundle-audit check`.
23
- * `bundle-audit update` now returns a non-zero exit status on error.
24
- * `bundle-audit update` only updates `~/.local/share/ruby-advisory-db`, if it is a git
128
+ * Added the `--update` option to `bundler-audit check`.
129
+ * `bundler-audit update` now returns a non-zero exit status on error.
130
+ * `bundler-audit update` only updates `~/.local/share/ruby-advisory-db`, if it is a git
25
131
  repository.
26
132
 
27
133
  ### 0.4.0 / 2015-06-30
@@ -59,7 +165,7 @@
59
165
 
60
166
  #### CLI
61
167
 
62
- * Added the `bundle-audit update` sub-command.
168
+ * Added the `bundler-audit update` sub-command.
63
169
 
64
170
  ### 0.2.0 / 2013-03-05
65
171
 
@@ -126,4 +232,5 @@
126
232
  * [CVE-2013-0333](http://osvdb.org/show/osvdb/89594)
127
233
 
128
234
  [bundler]: http://gembundler.com/
235
+ [thor]: http://whatisthor.com/
129
236
  [ruby-advisory-db]: https://github.com/rubysec/ruby-advisory-db#readme
data/Gemfile CHANGED
@@ -4,10 +4,14 @@ gemspec
4
4
 
5
5
  group :development do
6
6
  gem 'rake'
7
- gem 'kramdown', '~> 0.14'
8
-
9
7
  gem 'rubygems-tasks', '~> 0.2'
8
+
9
+ gem 'rubocop', '~> 1.18'
10
+
10
11
  gem 'rspec', '~> 3.0'
12
+ gem 'simplecov', '~> 0.7', require: false
13
+
14
+ gem 'kramdown', '~> 2.0'
11
15
  gem 'yard', '~> 0.9'
12
- gem 'simplecov', '~> 0.7', :require => false
16
+ gem 'yard-spellcheck', require: false
13
17
  end
data/README.md CHANGED
@@ -1,11 +1,12 @@
1
1
  # bundler-audit
2
2
 
3
+ [![CI](https://github.com/rubysec/bundler-audit/actions/workflows/ruby.yml/badge.svg)](https://github.com/rubysec/bundler-audit/actions/workflows/ruby.yml)
4
+ [![Code Climate](https://codeclimate.com/github/rubysec/bundler-audit.svg)](https://codeclimate.com/github/rubysec/bundler-audit)
5
+ [![Gem Version](https://badge.fury.io/rb/bundler-audit.svg)](https://badge.fury.io/rb/bundler-audit)
6
+
3
7
  * [Homepage](https://github.com/rubysec/bundler-audit#readme)
4
8
  * [Issues](https://github.com/rubysec/bundler-audit/issues)
5
9
  * [Documentation](http://rubydoc.info/gems/bundler-audit/frames)
6
- * [Email](mailto:postmodern.mod3 at gmail.com)
7
- * [![Build Status](https://travis-ci.org/rubysec/bundler-audit.svg)](https://travis-ci.org/rubysec/bundler-audit)
8
- * [![Code Climate](https://codeclimate.com/github/rubysec/bundler-audit.svg)](https://codeclimate.com/github/rubysec/bundler-audit)
9
10
 
10
11
  ## Description
11
12
 
@@ -14,7 +15,7 @@ Patch-level verification for [bundler].
14
15
  ## Features
15
16
 
16
17
  * Checks for vulnerable versions of gems in `Gemfile.lock`.
17
- * Checks for insecure gem sources (`http://`).
18
+ * Checks for insecure gem sources (`http://` and `git://`).
18
19
  * Allows ignoring certain advisories that have been manually worked around.
19
20
  * Prints advisory information.
20
21
  * Does not require a network connection.
@@ -23,7 +24,7 @@ Patch-level verification for [bundler].
23
24
 
24
25
  Audit a project's `Gemfile.lock`:
25
26
 
26
- $ bundle audit
27
+ $ bundle-audit
27
28
  Name: actionpack
28
29
  Version: 3.2.10
29
30
  Advisory: OSVDB-91452
@@ -84,7 +85,7 @@ Audit a project's `Gemfile.lock`:
84
85
 
85
86
  Update the [ruby-advisory-db] that `bundle audit` uses:
86
87
 
87
- $ bundle audit update
88
+ $ bundle-audit update
88
89
  Updating ruby-advisory-db ...
89
90
  remote: Counting objects: 44, done.
90
91
  remote: Compressing objects: 100% (24/24), done.
@@ -110,41 +111,101 @@ Update the [ruby-advisory-db] that `bundle audit` uses:
110
111
 
111
112
  Update the [ruby-advisory-db] and check `Gemfile.lock` (useful for CI runs):
112
113
 
113
- $ bundle audit check --update
114
+ $ bundle-audit check --update
115
+
116
+ Checking the `Gemfile.lock` without updating the [ruby-advisory-db]:
117
+
118
+ $ bundle-audit check --no-update
114
119
 
115
120
  Ignore specific advisories:
116
121
 
117
- $ bundle audit check --ignore OSVDB-108664
122
+ $ bundle-audit check --ignore OSVDB-108664
123
+
124
+ Checking a custom `Gemfile.lock` file:
125
+
126
+ $ bundle-audit check --gemfile Gemfile.custom.lock
127
+
128
+ Output the audit's results in JSON:
129
+
130
+ $ bundle-audit check --format json
118
131
 
119
- Rake task:
132
+ Output the audit's results in JSON, to a file:
120
133
 
121
- ```ruby
122
- require 'bundler/audit/task'
123
- Bundler::Audit::Task.new
134
+ $ bundle-audit check --format json --output bundle-audit.json
124
135
 
125
- task default: 'bundle:audit'
136
+ ## Rake Tasks
137
+
138
+ Bundler-audit provides Rake tasks for checking the code and for updating
139
+ its vulnerability database:
140
+
141
+ ```bash
142
+ rake bundle:audit
143
+ rake bundle:audit:update
126
144
  ```
127
145
 
146
+ ## Configuration File
147
+
148
+ bundler-audit also supports a per-project configuration file:
149
+
150
+ `.bundler-audit.yml`:
151
+
152
+ ---
153
+ ignore:
154
+ - CVE-YYYY-XXXX
155
+ - ...
156
+
157
+ * `ignore:` \[Array\<String\>\] - A list of advisory IDs to ignore.
158
+
159
+ You can provide a path to a config file using the `--config` flag:
160
+
161
+ $ bundle-audit check --config bundler-audit.custom.yaml
162
+
128
163
  ## Requirements
129
164
 
130
- * [ruby] >= 1.9.3
165
+ * [git]
166
+ * [ruby] >= 2.0.0
131
167
  * [rubygems] >= 1.8
132
- * [thor] ~> 0.18
133
- * [bundler] ~> 1.2
168
+ * [thor] ~> 1.0
169
+ * [bundler] >= 1.2.0, < 3
134
170
 
135
171
  ## Install
136
172
 
137
- $ gem install bundler-audit
173
+ $ [sudo] gem install bundler-audit
174
+
175
+ ### Git
176
+
177
+ * Debian / Ubuntu:
178
+
179
+ $ sudo apt install git
180
+
181
+ * RedHat / Fedora:
182
+
183
+ $ sudo dnf install git
184
+
185
+ * Alpine Linux:
186
+
187
+ $ apk add git
188
+
189
+ * macOS:
190
+
191
+ $ brew install git
138
192
 
139
193
  ## Contributing
140
194
 
141
- 1. Clone the repo
142
- 1. `git submodule update --init` # To populate data/ruby-advisory-db
143
- 1. `bundle exec rake`
195
+ 1. https://github.com/rubysec/bundler-audit/fork
196
+ 2. `git clone YOUR_FORK_URI`
197
+ 3. `cd bundler-audit/`
198
+ 4. `bundle install`
199
+ 5. `bundle exec rake spec`
200
+ 6. `git checkout -b YOUR_FEATURE`
201
+ 7. Make your changes
202
+ 8. `bundle exec rake spec`
203
+ 9. `git commit -a`
204
+ 10. `git push origin YOUR_FEATURE`
144
205
 
145
206
  ## License
146
207
 
147
- Copyright (c) 2013-2019 Hal Brodigan (postmodern.mod3 at gmail.com)
208
+ Copyright (c) 2013-2021 Hal Brodigan (postmodern.mod3 at gmail.com)
148
209
 
149
210
  bundler-audit is free software: you can redistribute it and/or modify
150
211
  it under the terms of the GNU General Public License as published by
@@ -157,12 +218,13 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
157
218
  GNU General Public License for more details.
158
219
 
159
220
  You should have received a copy of the GNU General Public License
160
- along with bundler-audit. If not, see <http://www.gnu.org/licenses/>.
221
+ along with bundler-audit. If not, see <https://www.gnu.org/licenses/>.
161
222
 
223
+ [git]: https://git-scm.com
162
224
  [ruby]: https://ruby-lang.org
163
225
  [rubygems]: https://rubygems.org
164
226
  [thor]: http://whatisthor.com/
165
- [bundler]: https://github.com/carlhuda/bundler#readme
227
+ [bundler]: https://bundler.io
166
228
 
167
229
  [OSVDB]: http://osvdb.org/
168
230
  [ruby-advisory-db]: https://github.com/rubysec/ruby-advisory-db
data/Rakefile CHANGED
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'rubygems'
4
2
 
5
3
  begin
@@ -14,44 +12,33 @@ require 'time'
14
12
  require 'rubygems/tasks'
15
13
  Gem::Tasks.new
16
14
 
17
- namespace :db do
18
- desc 'Updates data/ruby-advisory-db'
19
- task :update do
20
- timestamp = nil
21
-
22
- chdir 'data/ruby-advisory-db' do
23
- sh 'git', 'pull', 'origin', 'master'
24
-
25
- File.open('../ruby-advisory-db.ts','w') do |file|
26
- file.write Time.parse(`git log --pretty="%cd" -1`).utc
27
- end
28
- end
29
-
30
- sh 'git', 'commit', 'data/ruby-advisory-db',
31
- 'data/ruby-advisory-db.ts',
32
- '-m', 'Updated ruby-advisory-db'
33
- end
34
- end
35
-
36
15
  require 'rspec/core/rake_task'
37
16
  RSpec::Core::RakeTask.new
38
17
 
39
- namespace :spec do
40
- task :bundle do
41
- root = 'spec/bundle'
18
+ %w[secure unpatched_gems insecure_sources].each do |bundle|
19
+ bundle_dir = File.join('spec/bundle',bundle)
20
+ gemfile = File.join(bundle_dir,'Gemfile')
21
+ gemfile_lock = File.join(bundle_dir,'Gemfile.lock')
42
22
 
43
- %w[secure unpatched_gems insecure_sources].each do |bundle|
44
- chdir(File.join(root,bundle)) do
45
- sh 'unset BUNDLE_BIN_PATH BUNDLE_GEMFILE RUBYOPT && bundle install --path ../../../vendor/bundle'
46
- end
23
+ file gemfile_lock => gemfile do
24
+ chdir(bundle_dir) do
25
+ sh 'unset BUNDLE_BIN_PATH BUNDLE_GEMFILE RUBYOPT && bundle install --path ../../../vendor/bundle'
47
26
  end
48
27
  end
28
+
29
+ desc "Generates the spec/bundler/*/Gemfile.lock files"
30
+ task 'spec:bundle' => gemfile_lock
49
31
  end
50
- task :spec => 'spec:bundle'
51
32
 
52
33
  task :test => :spec
53
34
  task :default => :spec
54
35
 
55
36
  require 'yard'
56
- YARD::Rake::YardocTask.new
37
+ YARD::Rake::YardocTask.new
57
38
  task :doc => :yard
39
+
40
+ require 'bundler/audit/task'
41
+ Bundler::Audit::Task.new
42
+
43
+ require 'rubocop/rake_task'
44
+ RuboCop::RakeTask.new
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'yaml'
4
2
 
5
3
  Gem::Specification.new do |gem|
@@ -23,15 +21,9 @@ Gem::Specification.new do |gem|
23
21
 
24
22
  glob = lambda { |patterns| gem.files & Dir[*patterns] }
25
23
 
26
- gem.files = `git ls-files`.split($/)
27
- gem.files = glob[gemspec['files']] if gemspec['files']
28
-
29
- # add paths from data/ruby-advisory-db/
30
- gem.files += Dir.chdir('data/ruby-advisory-db') do
31
- `git ls-files`.split($/).map do |sub_path|
32
- File.join('data','ruby-advisory-db',sub_path)
33
- end
34
- end
24
+ gem.files = if gemspec['files'] then glob[gemspec['files']]
25
+ else `git ls-files`.split($/)
26
+ end
35
27
 
36
28
  gem.executables = gemspec.fetch('executables') do
37
29
  glob['bin/*'].map { |path| File.basename(path) }
data/gemspec.yml CHANGED
@@ -6,9 +6,9 @@ authors: Postmodern
6
6
  email: postmodern.mod3@gmail.com
7
7
  homepage: https://github.com/rubysec/bundler-audit#readme
8
8
 
9
- required_ruby_version: ">= 1.9.3"
9
+ required_ruby_version: ">= 2.0.0"
10
10
  required_rubygems_version: ">= 1.8.0"
11
11
 
12
12
  dependencies:
13
- thor: ~> 0.18
13
+ thor: "~> 1.0"
14
14
  bundler: ">= 1.2.0, < 3"