bundler-audit 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +6 -0
  3. data/.travis.yml +5 -2
  4. data/ChangeLog.md +25 -0
  5. data/Gemfile +2 -1
  6. data/README.md +12 -1
  7. data/Rakefile +11 -13
  8. data/data/ruby-advisory-db/CONTRIBUTORS.md +9 -0
  9. data/data/ruby-advisory-db/gems/actionpack/OSVDB-100524.yml +20 -0
  10. data/data/ruby-advisory-db/gems/actionpack/OSVDB-100525.yml +21 -0
  11. data/data/ruby-advisory-db/gems/actionpack/OSVDB-100526.yml +27 -0
  12. data/data/ruby-advisory-db/gems/actionpack/OSVDB-100527.yml +24 -0
  13. data/data/ruby-advisory-db/gems/actionpack/OSVDB-100528.yml +22 -0
  14. data/data/ruby-advisory-db/gems/actionpack/OSVDB-103439.yml +24 -0
  15. data/data/ruby-advisory-db/gems/actionpack/OSVDB-103440.yml +22 -0
  16. data/data/ruby-advisory-db/gems/activerecord/OSVDB-103438.yml +23 -0
  17. data/data/ruby-advisory-db/gems/arabic-prawn/OSVDB-104365.yml +15 -0
  18. data/data/ruby-advisory-db/gems/cocaine/OSVDB-98835.yml +2 -2
  19. data/data/ruby-advisory-db/gems/crack/OSVDB-90742.yml +1 -1
  20. data/data/ruby-advisory-db/gems/curl/OSVDB-91230.yml +1 -1
  21. data/data/ruby-advisory-db/gems/echor/OSVDB-102129.yml +11 -0
  22. data/data/ruby-advisory-db/gems/echor/OSVDB-102130.yml +10 -0
  23. data/data/ruby-advisory-db/gems/gitlab-grit/OSVDB-99370.yml +14 -0
  24. data/data/ruby-advisory-db/gems/httparty/OSVDB-90741.yml +3 -8
  25. data/data/ruby-advisory-db/gems/i18n/OSVDB-100528.yml +17 -0
  26. data/data/ruby-advisory-db/gems/nokogiri/OSVDB-101179.yml +12 -0
  27. data/data/ruby-advisory-db/gems/nokogiri/OSVDB-101458.yml +15 -0
  28. data/data/ruby-advisory-db/gems/nori/OSVDB-90196.yml +1 -1
  29. data/data/ruby-advisory-db/gems/omniauth-facebook/OSVDB-99693.yml +22 -0
  30. data/data/ruby-advisory-db/gems/omniauth-facebook/OSVDB-99888.yml +17 -0
  31. data/data/ruby-advisory-db/gems/paperclip/OSVDB-103151.yml +13 -0
  32. data/data/ruby-advisory-db/gems/paratrooper-newrelic/OSVDB-101839.yml +12 -0
  33. data/data/ruby-advisory-db/gems/paratrooper-pingdom/OSVDB-101847.yml +13 -0
  34. data/data/ruby-advisory-db/gems/rack/OSVDB-89939.yml +1 -1
  35. data/data/ruby-advisory-db/gems/rbovirt/OSVDB-104080.yml +20 -0
  36. data/data/ruby-advisory-db/gems/rgpg/OSVDB-95948.yml +2 -1
  37. data/data/ruby-advisory-db/gems/sfpagent/OSVDB-105971.yml +13 -0
  38. data/data/ruby-advisory-db/gems/spree/OSVDB-91216.yml +3 -2
  39. data/data/ruby-advisory-db/gems/spree/OSVDB-91217.yml +3 -2
  40. data/data/ruby-advisory-db/gems/spree/OSVDB-91218.yml +3 -2
  41. data/data/ruby-advisory-db/gems/spree/OSVDB-91219.yml +3 -2
  42. data/data/ruby-advisory-db/gems/sprout/OSVDB-100598.yml +14 -0
  43. data/data/ruby-advisory-db/gems/webbynode/OSVDB-100920.yml +11 -0
  44. data/data/ruby-advisory-db/gems/will_paginate/OSVDB-101138.yml +15 -0
  45. data/data/ruby-advisory-db/spec/advisory_example.rb +3 -3
  46. data/data/ruby-advisory-db/spec/gems_spec.rb +3 -4
  47. data/data/ruby-advisory-db.ts +1 -0
  48. data/gemspec.yml +2 -0
  49. data/lib/bundler/audit/advisory.rb +5 -1
  50. data/lib/bundler/audit/cli.rb +13 -7
  51. data/lib/bundler/audit/database.rb +7 -4
  52. data/lib/bundler/audit/scanner.rb +101 -3
  53. data/lib/bundler/audit/version.rb +2 -2
  54. data/lib/bundler/audit.rb +1 -1
  55. data/spec/advisory_spec.rb +78 -27
  56. data/spec/audit_spec.rb +1 -1
  57. data/spec/bundle/insecure_sources/Gemfile +1 -1
  58. data/spec/bundle/secure/Gemfile +2 -2
  59. data/spec/bundle/unpatched_gems/Gemfile +1 -1
  60. data/spec/database_spec.rb +68 -11
  61. data/spec/fixtures/not_a_hash.yml +2 -0
  62. data/spec/integration_spec.rb +14 -73
  63. data/spec/scanner_spec.rb +8 -8
  64. data/spec/spec_helper.rb +43 -0
  65. metadata +71 -30
@@ -5,7 +5,7 @@ gem 'rails', '3.2.12'
5
5
  # Bundle edge Rails instead:
6
6
  # gem 'rails', :git => 'git://github.com/rails/rails.git'
7
7
 
8
- gem 'sqlite3'
8
+ gem 'sqlite3', platform: [:mri, :rbx]
9
9
 
10
10
 
11
11
  # Gems used only for assets and not required
@@ -1,11 +1,11 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'rails', '3.2.15'
3
+ gem 'rails', '~> 3.2.17'
4
4
 
5
5
  # Bundle edge Rails instead:
6
6
  # gem 'rails', :git => 'git://github.com/rails/rails.git'
7
7
 
8
- gem 'sqlite3'
8
+ gem 'sqlite3', platform: [:mri, :rbx]
9
9
 
10
10
 
11
11
  # Gems used only for assets and not required
@@ -5,7 +5,7 @@ gem 'rails', '3.2.10'
5
5
  # Bundle edge Rails instead:
6
6
  # gem 'rails', :git => 'git://github.com/rails/rails.git'
7
7
 
8
- gem 'sqlite3'
8
+ gem 'sqlite3', platform: [:mri, :rbx]
9
9
 
10
10
 
11
11
  # Gems used only for assets and not required
@@ -3,11 +3,51 @@ require 'bundler/audit/database'
3
3
  require 'tmpdir'
4
4
 
5
5
  describe Bundler::Audit::Database do
6
+ let(:vendored_advisories) do
7
+ Dir[File.join(Bundler::Audit::Database::VENDORED_PATH, '**/*.yml')].sort
8
+ end
9
+
6
10
  describe "path" do
7
11
  subject { described_class.path }
8
12
 
9
13
  it "it should be a directory" do
10
- File.directory?(subject).should be_true
14
+ expect(File.directory?(subject)).to be_truthy
15
+ end
16
+
17
+ it "should prefer the user repo, iff it's as up to date, or more up to date than the vendored one" do
18
+ Bundler::Audit::Database.update!
19
+
20
+ Dir.chdir(Bundler::Audit::Database::USER_PATH) do
21
+ puts "Timestamp:"
22
+ system 'git log --pretty="%cd" -1'
23
+ end
24
+
25
+ # As up to date...
26
+ expect(Bundler::Audit::Database.path).to eq mocked_user_path
27
+
28
+ # More up to date...
29
+ fake_a_commit_in_the_user_repo
30
+ expect(Bundler::Audit::Database.path).to eq mocked_user_path
31
+
32
+ roll_user_repo_back(20)
33
+ expect(Bundler::Audit::Database.path).to eq Bundler::Audit::Database::VENDORED_PATH
34
+ end
35
+ end
36
+
37
+ describe "update!" do
38
+ it "should create the USER_PATH path as needed" do
39
+ Bundler::Audit::Database.update!
40
+ expect(File.directory?(mocked_user_path)).to be true
41
+ end
42
+
43
+ it "should create the repo, then update it given multple successive calls." do
44
+ expect_update_to_clone_repo!
45
+ Bundler::Audit::Database.update!
46
+ expect(File.directory?(mocked_user_path)).to be true
47
+
48
+ expect_update_to_update_repo!
49
+ Bundler::Audit::Database.update!
50
+ expect(File.directory?(mocked_user_path)).to be true
11
51
  end
12
52
  end
13
53
 
@@ -16,7 +56,7 @@ describe Bundler::Audit::Database do
16
56
  subject { described_class.new }
17
57
 
18
58
  it "should default path to path" do
19
- subject.path.should == described_class.path
59
+ expect(subject.path).to eq(described_class.path)
20
60
  end
21
61
  end
22
62
 
@@ -26,15 +66,15 @@ describe Bundler::Audit::Database do
26
66
  subject { described_class.new(path) }
27
67
 
28
68
  it "should set #path" do
29
- subject.path.should == path
69
+ expect(subject.path).to eq(path)
30
70
  end
31
71
  end
32
72
 
33
73
  context "when given an invalid directory" do
34
74
  it "should raise an ArgumentError" do
35
- lambda {
75
+ expect {
36
76
  described_class.new('/foo/bar/baz')
37
- }.should raise_error(ArgumentError)
77
+ }.to raise_error(ArgumentError)
38
78
  end
39
79
  end
40
80
  end
@@ -55,27 +95,44 @@ describe Bundler::Audit::Database do
55
95
  advisories << advisory
56
96
  end
57
97
 
58
- advisories.should_not be_empty
59
- advisories.all? { |advisory|
98
+ expect(advisories).not_to be_empty
99
+ expect(advisories.all? { |advisory|
60
100
  advisory.kind_of?(Bundler::Audit::Advisory)
61
- }.should be_true
101
+ }).to be_truthy
62
102
  end
63
103
  end
64
104
 
65
105
  context "when given no block" do
66
106
  it "should return an Enumerator" do
67
- subject.check_gem(gem).should be_kind_of(Enumerable)
107
+ expect(subject.check_gem(gem)).to be_kind_of(Enumerable)
68
108
  end
69
109
  end
70
110
  end
71
111
 
72
112
  describe "#size" do
73
- it { subject.size.should > 0 }
113
+ it { expect(subject.size).to eq vendored_advisories.count }
114
+ end
115
+
116
+ describe "#advisories" do
117
+ it "should return a list of all advisories." do
118
+ actual_advisories = Bundler::Audit::Database.new.
119
+ advisories.
120
+ map(&:path).
121
+ sort
122
+
123
+ expect(actual_advisories).to eq vendored_advisories
124
+ end
74
125
  end
75
126
 
76
127
  describe "#to_s" do
77
128
  it "should return the Database path" do
78
- subject.to_s.should == subject.path
129
+ expect(subject.to_s).to eq(subject.path)
130
+ end
131
+ end
132
+
133
+ describe "#inspect" do
134
+ it "should produce a Ruby-ish instance descriptor" do
135
+ expect(Bundler::Audit::Database.new.inspect).to eq("#<Bundler::Audit::Database:#{Bundler::Audit::Database::VENDORED_PATH}>")
79
136
  end
80
137
  end
81
138
  end
@@ -0,0 +1,2 @@
1
+ ---
2
+ "Just a string."
@@ -16,79 +16,20 @@ describe "CLI" do
16
16
  end
17
17
 
18
18
  it "should print a warning" do
19
- subject.should include("Unpatched versions found!")
19
+ expect(subject).to include("Vulnerabilities found!")
20
20
  end
21
21
 
22
22
  it "should print advisory information for the vulnerable gems" do
23
- expect = %{
24
- Name: actionmailer
25
- Version: 3.2.10
26
- Advisory: OSVDB-98629
27
- Criticality: Medium
28
- URL: http://www.osvdb.org/show/osvdb/98629
29
- Title: Action Mailer Gem for Ruby contains a possible DoS Vulnerability
30
- Solution: upgrade to >= 3.2.15
31
-
32
- Name: actionpack
33
- Version: 3.2.10
34
- Advisory: OSVDB-91452
35
- Criticality: Medium
36
- URL: http://www.osvdb.org/show/osvdb/91452
37
- Title: XSS vulnerability in sanitize_css in Action Pack
38
- Solution: upgrade to ~> 2.3.18, ~> 3.1.12, >= 3.2.13
39
-
40
- Name: actionpack
41
- Version: 3.2.10
42
- Advisory: OSVDB-91454
43
- Criticality: Medium
44
- URL: http://osvdb.org/show/osvdb/91454
45
- Title: XSS Vulnerability in the `sanitize` helper of Ruby on Rails
46
- Solution: upgrade to ~> 2.3.18, ~> 3.1.12, >= 3.2.13
47
-
48
- Name: actionpack
49
- Version: 3.2.10
50
- Advisory: OSVDB-89026
51
- Criticality: High
52
- URL: http://osvdb.org/show/osvdb/89026
53
- Title: Ruby on Rails params_parser.rb Action Pack Type Casting Parameter Parsing Remote Code Execution
54
- Solution: upgrade to ~> 2.3.15, ~> 3.0.19, ~> 3.1.10, >= 3.2.11
55
-
56
- Name: activerecord
57
- Version: 3.2.10
58
- Advisory: OSVDB-91453
59
- Criticality: High
60
- URL: http://osvdb.org/show/osvdb/91453
61
- Title: Symbol DoS vulnerability in Active Record
62
- Solution: upgrade to ~> 2.3.18, ~> 3.1.12, >= 3.2.13
63
-
64
- Name: activerecord
65
- Version: 3.2.10
66
- Advisory: OSVDB-90072
67
- Criticality: Medium
68
- URL: http://direct.osvdb.org/show/osvdb/90072
69
- Title: Ruby on Rails Active Record attr_protected Method Bypass
70
- Solution: upgrade to ~> 2.3.17, ~> 3.1.11, >= 3.2.12
71
-
72
- Name: activerecord
73
- Version: 3.2.10
74
- Advisory: OSVDB-89025
75
- Criticality: High
76
- URL: http://osvdb.org/show/osvdb/89025
77
- Title: Ruby on Rails Active Record JSON Parameter Parsing Query Bypass
78
- Solution: upgrade to ~> 2.3.16, ~> 3.0.19, ~> 3.1.10, >= 3.2.11
79
-
80
- Name: activesupport
81
- Version: 3.2.10
82
- Advisory: OSVDB-91451
83
- Criticality: High
84
- URL: http://www.osvdb.org/show/osvdb/91451
85
- Title: XML Parsing Vulnerability affecting JRuby users
86
- Solution: upgrade to ~> 3.1.12, >= 3.2.13
87
-
88
- Unpatched versions found!
89
- }.strip.split "\n\n"
90
-
91
- subject.strip.split("\n\n").should =~ expect
23
+ advisory_pattern = /(Name: [^\n]+
24
+ Version: \d+.\d+.\d+
25
+ Advisory: CVE-[0-9]{4}-[0-9]{4}
26
+ Criticality: (High|Medium)
27
+ URL: http:\/\/(direct|www\.)?osvdb.org\/show\/osvdb\/\d+
28
+ Title: [^\n]*?
29
+ Solution: upgrade to ((~>|=>) \d+.\d+.\d+, )*(~>|=>) \d+.\d+.\d+[\s\n]*?)+/
30
+
31
+ expect(subject).to match(advisory_pattern)
32
+ expect(subject).to include("Vulnerabilities found!")
92
33
  end
93
34
  end
94
35
 
@@ -105,7 +46,7 @@ Unpatched versions found!
105
46
  end
106
47
 
107
48
  it "should not print advisory information for ignored gem" do
108
- subject.should_not include("OSVDB-89026")
49
+ expect(subject).not_to include("OSVDB-89026")
109
50
  end
110
51
  end
111
52
 
@@ -118,7 +59,7 @@ Unpatched versions found!
118
59
  end
119
60
 
120
61
  it "should print warnings about insecure sources" do
121
- subject.should include(%{
62
+ expect(subject).to include(%{
122
63
  Insecure Source URI found: git://github.com/rails/jquery-rails.git
123
64
  Insecure Source URI found: http://rubygems.org/
124
65
  }.strip)
@@ -134,7 +75,7 @@ Insecure Source URI found: http://rubygems.org/
134
75
  end
135
76
 
136
77
  it "should print nothing when everything is fine" do
137
- subject.strip.should == "No unpatched versions found"
78
+ expect(subject.strip).to eq("No vulnerabilities found")
138
79
  end
139
80
  end
140
81
  end
data/spec/scanner_spec.rb CHANGED
@@ -13,12 +13,12 @@ describe Scanner do
13
13
 
14
14
  subject.scan { |result| results << result }
15
15
 
16
- results.should_not be_empty
16
+ expect(results).not_to be_empty
17
17
  end
18
18
 
19
19
  context "when not called with a block" do
20
20
  it "should return an Enumerator" do
21
- subject.scan.should be_kind_of(Enumerable)
21
+ expect(subject.scan).to be_kind_of(Enumerable)
22
22
  end
23
23
  end
24
24
  end
@@ -31,9 +31,9 @@ describe Scanner do
31
31
  subject { scanner.scan.to_a }
32
32
 
33
33
  it "should match unpatched gems to their advisories" do
34
- subject.all? { |result|
34
+ expect(subject.all? { |result|
35
35
  result.advisory.vulnerable?(result.gem.version)
36
- }.should be_true
36
+ }).to be_truthy
37
37
  end
38
38
 
39
39
  context "when the :ignore option is given" do
@@ -42,7 +42,7 @@ describe Scanner do
42
42
  it "should ignore the specified advisories" do
43
43
  ids = subject.map { |result| result.advisory.id }
44
44
 
45
- ids.should_not include('OSVDB-89026')
45
+ expect(ids).not_to include('OSVDB-89026')
46
46
  end
47
47
  end
48
48
  end
@@ -55,8 +55,8 @@ describe Scanner do
55
55
  subject { scanner.scan.to_a }
56
56
 
57
57
  it "should match unpatched gems to their advisories" do
58
- subject[0].source.should == 'git://github.com/rails/jquery-rails.git'
59
- subject[1].source.should == 'http://rubygems.org/'
58
+ expect(subject[0].source).to eq('git://github.com/rails/jquery-rails.git')
59
+ expect(subject[1].source).to eq('http://rubygems.org/')
60
60
  end
61
61
  end
62
62
 
@@ -68,7 +68,7 @@ describe Scanner do
68
68
  subject { scanner.scan.to_a }
69
69
 
70
70
  it "should print nothing when everything is fine" do
71
- subject.should be_empty
71
+ expect(subject).to be_empty
72
72
  end
73
73
  end
74
74
  end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,6 @@
1
+ require 'simplecov'
2
+ SimpleCov.start
3
+
1
4
  require 'rspec'
2
5
  require 'bundler/audit/version'
3
6
 
@@ -13,6 +16,46 @@ module Helpers
13
16
  def decolorize(string)
14
17
  string.gsub(/\e\[\d+m/, "")
15
18
  end
19
+
20
+ def mocked_user_path
21
+ File.expand_path('../../tmp/ruby-advisory-db', __FILE__)
22
+ end
23
+
24
+ def expect_update_to_clone_repo!
25
+ expect(Bundler::Audit::Database).
26
+ to receive(:system).
27
+ with('git', 'clone', Bundler::Audit::Database::VENDORED_PATH, mocked_user_path).
28
+ and_call_original
29
+ end
30
+
31
+ def expect_update_to_update_repo!
32
+ expect(Bundler::Audit::Database).
33
+ to receive(:system).
34
+ with('git', 'pull', 'origin', 'master').
35
+ and_call_original
36
+ end
37
+
38
+ def fake_a_commit_in_the_user_repo
39
+ Dir.chdir(mocked_user_path) do
40
+ system 'git', 'commit', '--allow-empty', '-m', 'Dummy commit.'
41
+ end
42
+ end
43
+
44
+ def roll_user_repo_back(num_commits)
45
+ Dir.chdir(mocked_user_path) do
46
+ system 'git', 'reset', '--hard', "HEAD~#{num_commits}"
47
+ end
48
+ end
16
49
  end
17
50
 
18
51
  include Bundler::Audit
52
+
53
+ RSpec.configure do |config|
54
+ include Helpers
55
+
56
+ config.before(:each) do
57
+ stub_const("Bundler::Audit::Database::URL", Bundler::Audit::Database::VENDORED_PATH)
58
+ stub_const("Bundler::Audit::Database::USER_PATH", mocked_user_path)
59
+ FileUtils.rm_rf(mocked_user_path) if File.exist?(mocked_user_path)
60
+ end
61
+ end
metadata CHANGED
@@ -1,27 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bundler-audit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Postmodern
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-01 00:00:00.000000000 Z
11
+ date: 2015-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.18'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.18'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
- - - ~>
31
+ - - "~>"
18
32
  - !ruby/object:Gem::Version
19
33
  version: '1.2'
20
34
  type: :runtime
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
- - - ~>
38
+ - - "~>"
25
39
  - !ruby/object:Gem::Version
26
40
  version: '1.2'
27
41
  description: bundler-audit provides patch-level verification for Bundled apps.
@@ -34,12 +48,12 @@ extra_rdoc_files:
34
48
  - ChangeLog.md
35
49
  - README.md
36
50
  files:
37
- - .document
38
- - .gitignore
39
- - .gitmodules
40
- - .rspec
41
- - .travis.yml
42
- - .yardopts
51
+ - ".document"
52
+ - ".gitignore"
53
+ - ".gitmodules"
54
+ - ".rspec"
55
+ - ".travis.yml"
56
+ - ".yardopts"
43
57
  - COPYING.txt
44
58
  - ChangeLog.md
45
59
  - Gemfile
@@ -47,22 +61,7 @@ files:
47
61
  - Rakefile
48
62
  - bin/bundle-audit
49
63
  - bundler-audit.gemspec
50
- - gemspec.yml
51
- - lib/bundler/audit.rb
52
- - lib/bundler/audit/advisory.rb
53
- - lib/bundler/audit/cli.rb
54
- - lib/bundler/audit/database.rb
55
- - lib/bundler/audit/scanner.rb
56
- - lib/bundler/audit/version.rb
57
- - spec/advisory_spec.rb
58
- - spec/audit_spec.rb
59
- - spec/bundle/insecure_sources/Gemfile
60
- - spec/bundle/secure/Gemfile
61
- - spec/bundle/unpatched_gems/Gemfile
62
- - spec/database_spec.rb
63
- - spec/integration_spec.rb
64
- - spec/scanner_spec.rb
65
- - spec/spec_helper.rb
64
+ - data/ruby-advisory-db.ts
66
65
  - data/ruby-advisory-db/.gitignore
67
66
  - data/ruby-advisory-db/.rspec
68
67
  - data/ruby-advisory-db/CONTRIBUTING.md
@@ -72,6 +71,13 @@ files:
72
71
  - data/ruby-advisory-db/README.md
73
72
  - data/ruby-advisory-db/Rakefile
74
73
  - data/ruby-advisory-db/gems/actionmailer/OSVDB-98629.yml
74
+ - data/ruby-advisory-db/gems/actionpack/OSVDB-100524.yml
75
+ - data/ruby-advisory-db/gems/actionpack/OSVDB-100525.yml
76
+ - data/ruby-advisory-db/gems/actionpack/OSVDB-100526.yml
77
+ - data/ruby-advisory-db/gems/actionpack/OSVDB-100527.yml
78
+ - data/ruby-advisory-db/gems/actionpack/OSVDB-100528.yml
79
+ - data/ruby-advisory-db/gems/actionpack/OSVDB-103439.yml
80
+ - data/ruby-advisory-db/gems/actionpack/OSVDB-103440.yml
75
81
  - data/ruby-advisory-db/gems/actionpack/OSVDB-79727.yml
76
82
  - data/ruby-advisory-db/gems/actionpack/OSVDB-84243.yml
77
83
  - data/ruby-advisory-db/gems/actionpack/OSVDB-84513.yml
@@ -79,6 +85,7 @@ files:
79
85
  - data/ruby-advisory-db/gems/actionpack/OSVDB-89026.yml
80
86
  - data/ruby-advisory-db/gems/actionpack/OSVDB-91452.yml
81
87
  - data/ruby-advisory-db/gems/actionpack/OSVDB-91454.yml
88
+ - data/ruby-advisory-db/gems/activerecord/OSVDB-103438.yml
82
89
  - data/ruby-advisory-db/gems/activerecord/OSVDB-82403.yml
83
90
  - data/ruby-advisory-db/gems/activerecord/OSVDB-82610.yml
84
91
  - data/ruby-advisory-db/gems/activerecord/OSVDB-89025.yml
@@ -89,6 +96,7 @@ files:
89
96
  - data/ruby-advisory-db/gems/activesupport/OSVDB-84516.yml
90
97
  - data/ruby-advisory-db/gems/activesupport/OSVDB-89594.yml
91
98
  - data/ruby-advisory-db/gems/activesupport/OSVDB-91451.yml
99
+ - data/ruby-advisory-db/gems/arabic-prawn/OSVDB-104365.yml
92
100
  - data/ruby-advisory-db/gems/cocaine/OSVDB-98835.yml
93
101
  - data/ruby-advisory-db/gems/command_wrap/OSVDB-91450.yml
94
102
  - data/ruby-advisory-db/gems/crack/OSVDB-90742.yml
@@ -96,6 +104,8 @@ files:
96
104
  - data/ruby-advisory-db/gems/curl/OSVDB-91230.yml
97
105
  - data/ruby-advisory-db/gems/devise/OSVDB-89642.yml
98
106
  - data/ruby-advisory-db/gems/dragonfly/OSVDB-90647.yml
107
+ - data/ruby-advisory-db/gems/echor/OSVDB-102129.yml
108
+ - data/ruby-advisory-db/gems/echor/OSVDB-102130.yml
99
109
  - data/ruby-advisory-db/gems/enum_column3/OSVDB-94679.yml
100
110
  - data/ruby-advisory-db/gems/extlib/OSVDB-90740.yml
101
111
  - data/ruby-advisory-db/gems/fastreader/OSVDB-91232.yml
@@ -105,8 +115,10 @@ files:
105
115
  - data/ruby-advisory-db/gems/flash_tool/OSVDB-90829.yml
106
116
  - data/ruby-advisory-db/gems/fog-dragonfly/OSVDB-96798.yml
107
117
  - data/ruby-advisory-db/gems/ftpd/OSVDB-90784.yml
118
+ - data/ruby-advisory-db/gems/gitlab-grit/OSVDB-99370.yml
108
119
  - data/ruby-advisory-db/gems/gtk2/OSVDB-40774.yml
109
120
  - data/ruby-advisory-db/gems/httparty/OSVDB-90741.yml
121
+ - data/ruby-advisory-db/gems/i18n/OSVDB-100528.yml
110
122
  - data/ruby-advisory-db/gems/json/OSVDB-90074.yml
111
123
  - data/ruby-advisory-db/gems/karteek-docsplit/OSVDB-92117.yml
112
124
  - data/ruby-advisory-db/gems/kelredd-pruview/OSVDB-92228.yml
@@ -119,26 +131,55 @@ files:
119
131
  - data/ruby-advisory-db/gems/mini_magick/OSVDB-91231.yml
120
132
  - data/ruby-advisory-db/gems/multi_xml/OSVDB-89148.yml
121
133
  - data/ruby-advisory-db/gems/newrelic_rpm/OSVDB-90189.yml
134
+ - data/ruby-advisory-db/gems/nokogiri/OSVDB-101179.yml
135
+ - data/ruby-advisory-db/gems/nokogiri/OSVDB-101458.yml
122
136
  - data/ruby-advisory-db/gems/nori/OSVDB-90196.yml
137
+ - data/ruby-advisory-db/gems/omniauth-facebook/OSVDB-99693.yml
138
+ - data/ruby-advisory-db/gems/omniauth-facebook/OSVDB-99888.yml
123
139
  - data/ruby-advisory-db/gems/omniauth-oauth2/OSVDB-90264.yml
140
+ - data/ruby-advisory-db/gems/paperclip/OSVDB-103151.yml
141
+ - data/ruby-advisory-db/gems/paratrooper-newrelic/OSVDB-101839.yml
142
+ - data/ruby-advisory-db/gems/paratrooper-pingdom/OSVDB-101847.yml
124
143
  - data/ruby-advisory-db/gems/pdfkit/OSVDB-90867.yml
125
144
  - data/ruby-advisory-db/gems/rack-cache/OSVDB-83077.yml
126
145
  - data/ruby-advisory-db/gems/rack/OSVDB-89939.yml
146
+ - data/ruby-advisory-db/gems/rbovirt/OSVDB-104080.yml
127
147
  - data/ruby-advisory-db/gems/rdoc/OSVDB-90004.yml
128
148
  - data/ruby-advisory-db/gems/redis-namespace/OSVDB-96425.yml
129
149
  - data/ruby-advisory-db/gems/rgpg/OSVDB-95948.yml
130
150
  - data/ruby-advisory-db/gems/ruby_parser/OSVDB-90561.yml
151
+ - data/ruby-advisory-db/gems/sfpagent/OSVDB-105971.yml
131
152
  - data/ruby-advisory-db/gems/sounder/OSVDB-96278.yml
132
153
  - data/ruby-advisory-db/gems/spree/OSVDB-91216.yml
133
154
  - data/ruby-advisory-db/gems/spree/OSVDB-91217.yml
134
155
  - data/ruby-advisory-db/gems/spree/OSVDB-91218.yml
135
156
  - data/ruby-advisory-db/gems/spree/OSVDB-91219.yml
157
+ - data/ruby-advisory-db/gems/sprout/OSVDB-100598.yml
136
158
  - data/ruby-advisory-db/gems/thumbshooter/OSVDB-91839.yml
159
+ - data/ruby-advisory-db/gems/webbynode/OSVDB-100920.yml
137
160
  - data/ruby-advisory-db/gems/wicked/OSVDB-98270.yml
161
+ - data/ruby-advisory-db/gems/will_paginate/OSVDB-101138.yml
138
162
  - data/ruby-advisory-db/lib/scrape.rb
139
163
  - data/ruby-advisory-db/spec/advisory_example.rb
140
164
  - data/ruby-advisory-db/spec/gems_spec.rb
141
165
  - data/ruby-advisory-db/spec/spec_helper.rb
166
+ - gemspec.yml
167
+ - lib/bundler/audit.rb
168
+ - lib/bundler/audit/advisory.rb
169
+ - lib/bundler/audit/cli.rb
170
+ - lib/bundler/audit/database.rb
171
+ - lib/bundler/audit/scanner.rb
172
+ - lib/bundler/audit/version.rb
173
+ - spec/advisory_spec.rb
174
+ - spec/audit_spec.rb
175
+ - spec/bundle/insecure_sources/Gemfile
176
+ - spec/bundle/secure/Gemfile
177
+ - spec/bundle/unpatched_gems/Gemfile
178
+ - spec/database_spec.rb
179
+ - spec/fixtures/not_a_hash.yml
180
+ - spec/integration_spec.rb
181
+ - spec/scanner_spec.rb
182
+ - spec/spec_helper.rb
142
183
  homepage: https://github.com/rubysec/bundler-audit#readme
143
184
  licenses:
144
185
  - GPLv3
@@ -149,17 +190,17 @@ require_paths:
149
190
  - lib
150
191
  required_ruby_version: !ruby/object:Gem::Requirement
151
192
  requirements:
152
- - - '>='
193
+ - - ">="
153
194
  - !ruby/object:Gem::Version
154
- version: '0'
195
+ version: 1.9.3
155
196
  required_rubygems_version: !ruby/object:Gem::Requirement
156
197
  requirements:
157
- - - '>='
198
+ - - ">="
158
199
  - !ruby/object:Gem::Version
159
200
  version: 1.8.0
160
201
  requirements: []
161
202
  rubyforge_project:
162
- rubygems_version: 2.0.12
203
+ rubygems_version: 2.4.7
163
204
  signing_key:
164
205
  specification_version: 4
165
206
  summary: Patch-level verification for Bundler