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.
- checksums.yaml +4 -4
- data/.gitignore +6 -0
- data/.travis.yml +5 -2
- data/ChangeLog.md +25 -0
- data/Gemfile +2 -1
- data/README.md +12 -1
- data/Rakefile +11 -13
- data/data/ruby-advisory-db/CONTRIBUTORS.md +9 -0
- data/data/ruby-advisory-db/gems/actionpack/OSVDB-100524.yml +20 -0
- data/data/ruby-advisory-db/gems/actionpack/OSVDB-100525.yml +21 -0
- data/data/ruby-advisory-db/gems/actionpack/OSVDB-100526.yml +27 -0
- data/data/ruby-advisory-db/gems/actionpack/OSVDB-100527.yml +24 -0
- data/data/ruby-advisory-db/gems/actionpack/OSVDB-100528.yml +22 -0
- data/data/ruby-advisory-db/gems/actionpack/OSVDB-103439.yml +24 -0
- data/data/ruby-advisory-db/gems/actionpack/OSVDB-103440.yml +22 -0
- data/data/ruby-advisory-db/gems/activerecord/OSVDB-103438.yml +23 -0
- data/data/ruby-advisory-db/gems/arabic-prawn/OSVDB-104365.yml +15 -0
- data/data/ruby-advisory-db/gems/cocaine/OSVDB-98835.yml +2 -2
- data/data/ruby-advisory-db/gems/crack/OSVDB-90742.yml +1 -1
- data/data/ruby-advisory-db/gems/curl/OSVDB-91230.yml +1 -1
- data/data/ruby-advisory-db/gems/echor/OSVDB-102129.yml +11 -0
- data/data/ruby-advisory-db/gems/echor/OSVDB-102130.yml +10 -0
- data/data/ruby-advisory-db/gems/gitlab-grit/OSVDB-99370.yml +14 -0
- data/data/ruby-advisory-db/gems/httparty/OSVDB-90741.yml +3 -8
- data/data/ruby-advisory-db/gems/i18n/OSVDB-100528.yml +17 -0
- data/data/ruby-advisory-db/gems/nokogiri/OSVDB-101179.yml +12 -0
- data/data/ruby-advisory-db/gems/nokogiri/OSVDB-101458.yml +15 -0
- data/data/ruby-advisory-db/gems/nori/OSVDB-90196.yml +1 -1
- data/data/ruby-advisory-db/gems/omniauth-facebook/OSVDB-99693.yml +22 -0
- data/data/ruby-advisory-db/gems/omniauth-facebook/OSVDB-99888.yml +17 -0
- data/data/ruby-advisory-db/gems/paperclip/OSVDB-103151.yml +13 -0
- data/data/ruby-advisory-db/gems/paratrooper-newrelic/OSVDB-101839.yml +12 -0
- data/data/ruby-advisory-db/gems/paratrooper-pingdom/OSVDB-101847.yml +13 -0
- data/data/ruby-advisory-db/gems/rack/OSVDB-89939.yml +1 -1
- data/data/ruby-advisory-db/gems/rbovirt/OSVDB-104080.yml +20 -0
- data/data/ruby-advisory-db/gems/rgpg/OSVDB-95948.yml +2 -1
- data/data/ruby-advisory-db/gems/sfpagent/OSVDB-105971.yml +13 -0
- data/data/ruby-advisory-db/gems/spree/OSVDB-91216.yml +3 -2
- data/data/ruby-advisory-db/gems/spree/OSVDB-91217.yml +3 -2
- data/data/ruby-advisory-db/gems/spree/OSVDB-91218.yml +3 -2
- data/data/ruby-advisory-db/gems/spree/OSVDB-91219.yml +3 -2
- data/data/ruby-advisory-db/gems/sprout/OSVDB-100598.yml +14 -0
- data/data/ruby-advisory-db/gems/webbynode/OSVDB-100920.yml +11 -0
- data/data/ruby-advisory-db/gems/will_paginate/OSVDB-101138.yml +15 -0
- data/data/ruby-advisory-db/spec/advisory_example.rb +3 -3
- data/data/ruby-advisory-db/spec/gems_spec.rb +3 -4
- data/data/ruby-advisory-db.ts +1 -0
- data/gemspec.yml +2 -0
- data/lib/bundler/audit/advisory.rb +5 -1
- data/lib/bundler/audit/cli.rb +13 -7
- data/lib/bundler/audit/database.rb +7 -4
- data/lib/bundler/audit/scanner.rb +101 -3
- data/lib/bundler/audit/version.rb +2 -2
- data/lib/bundler/audit.rb +1 -1
- data/spec/advisory_spec.rb +78 -27
- data/spec/audit_spec.rb +1 -1
- data/spec/bundle/insecure_sources/Gemfile +1 -1
- data/spec/bundle/secure/Gemfile +2 -2
- data/spec/bundle/unpatched_gems/Gemfile +1 -1
- data/spec/database_spec.rb +68 -11
- data/spec/fixtures/not_a_hash.yml +2 -0
- data/spec/integration_spec.rb +14 -73
- data/spec/scanner_spec.rb +8 -8
- data/spec/spec_helper.rb +43 -0
- metadata +71 -30
data/spec/bundle/secure/Gemfile
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
source 'https://rubygems.org'
|
|
2
2
|
|
|
3
|
-
gem 'rails', '3.2.
|
|
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
|
data/spec/database_spec.rb
CHANGED
|
@@ -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).
|
|
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.
|
|
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.
|
|
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
|
-
|
|
75
|
+
expect {
|
|
36
76
|
described_class.new('/foo/bar/baz')
|
|
37
|
-
}.
|
|
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.
|
|
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
|
-
}.
|
|
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).
|
|
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.
|
|
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.
|
|
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
|
data/spec/integration_spec.rb
CHANGED
|
@@ -16,79 +16,20 @@ describe "CLI" do
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
it "should print a warning" do
|
|
19
|
-
subject.
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
}.
|
|
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.
|
|
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.
|
|
59
|
-
subject[1].source.
|
|
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.
|
|
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.
|
|
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:
|
|
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
|
-
-
|
|
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:
|
|
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.
|
|
203
|
+
rubygems_version: 2.4.7
|
|
163
204
|
signing_key:
|
|
164
205
|
specification_version: 4
|
|
165
206
|
summary: Patch-level verification for Bundler
|