bundler-audit 0.1.1 → 0.1.2
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.
- data/.gitignore +3 -0
- data/.gitmodules +3 -0
- data/.travis.yml +4 -0
- data/ChangeLog.md +13 -0
- data/Gemfile +12 -0
- data/README.md +3 -37
- data/Rakefile +20 -49
- data/bundler-audit.gemspec +7 -0
- data/data/ruby-advisory-db/.rspec +1 -0
- data/data/ruby-advisory-db/README.md +64 -0
- data/data/ruby-advisory-db/gems/actionpack/2012-1099.yml +23 -0
- data/data/{bundler/audit/rails → ruby-advisory-db/gems/actionpack}/2012-3424.yml +10 -6
- data/data/ruby-advisory-db/gems/actionpack/2012-3463.yml +20 -0
- data/data/ruby-advisory-db/gems/actionpack/2012-3465.yml +20 -0
- data/data/{bundler/audit/rails → ruby-advisory-db/gems/actionpack}/2013-0156.yml +5 -3
- data/data/ruby-advisory-db/gems/activerecord/2012-2660.yml +21 -0
- data/data/ruby-advisory-db/gems/activerecord/2012-2661.yml +19 -0
- data/data/{bundler/audit/rails → ruby-advisory-db/gems/activerecord}/2013-0155.yml +6 -4
- data/data/{bundler/audit/rails → ruby-advisory-db/gems/activerecord}/2013-0276.yml +5 -3
- data/data/{bundler/audit/rails → ruby-advisory-db/gems/activerecord}/2013-0277.yml +5 -3
- data/data/ruby-advisory-db/gems/activesupport/2012-1098.yml +20 -0
- data/data/ruby-advisory-db/gems/activesupport/2012-3464.yml +20 -0
- data/data/{bundler/audit/rails → ruby-advisory-db/gems/activesupport}/2013-0333.yml +5 -3
- data/data/ruby-advisory-db/gems/devise/2013-0233.yml +18 -0
- data/data/ruby-advisory-db/gems/gtk2/2007-6183.yml +18 -0
- data/data/{bundler/audit → ruby-advisory-db/gems}/json/2013-0269.yml +4 -2
- data/data/ruby-advisory-db/gems/mail/2011-0739.yml +19 -0
- data/data/ruby-advisory-db/gems/mail/2012-2139.yml +11 -0
- data/data/ruby-advisory-db/gems/mail/2012-2140.yml +11 -0
- data/data/ruby-advisory-db/gems/multi_xml/2013-0175.yml +14 -0
- data/data/ruby-advisory-db/gems/newrelic_rpm/2013-0284.yml +15 -0
- data/data/ruby-advisory-db/gems/nori/2013-0285.yml +17 -0
- data/data/ruby-advisory-db/gems/omniauth-oauth2/2012-6134.yml +14 -0
- data/data/ruby-advisory-db/gems/rack-cache/2012-267.yml +16 -0
- data/data/{bundler/audit → ruby-advisory-db/gems}/rack/2013-0263.yml +9 -8
- data/data/ruby-advisory-db/gems/rdoc/2013-0256.yml +25 -0
- data/data/ruby-advisory-db/spec/advisory_example.rb +80 -0
- data/data/ruby-advisory-db/spec/gems_spec.rb +8 -0
- data/data/ruby-advisory-db/spec/spec_helper.rb +1 -0
- data/gemspec.yml +1 -6
- data/lib/bundler/audit/advisory.rb +13 -1
- data/lib/bundler/audit/cli.rb +17 -6
- data/lib/bundler/audit/database.rb +1 -30
- data/lib/bundler/audit/version.rb +1 -1
- data/spec/advisory_spec.rb +1 -1
- data/spec/bundle/secure/Gemfile +38 -0
- data/spec/bundle/{Gemfile → vuln/Gemfile} +0 -0
- data/spec/database_spec.rb +1 -32
- data/spec/integration_spec.rb +63 -0
- data/spec/spec_helper.rb +14 -1
- metadata +68 -112
- data/data/bundler/audit/mail/2011-0739.yml +0 -17
- data/data/bundler/audit/mail/2012-2139.yml +0 -16
- data/data/bundler/audit/mail/2012-2140.yml +0 -13
- data/data/bundler/audit/rack-cache/2012-267.yml +0 -14
- data/data/bundler/audit/rails/2012-1098.yml +0 -19
- data/data/bundler/audit/rails/2012-1099.yml +0 -19
- data/data/bundler/audit/rails/2012-2660.yml +0 -17
- data/data/bundler/audit/rails/2012-2661.yml +0 -18
- data/data/bundler/audit/rails/2012-3463.yml +0 -19
- data/data/bundler/audit/rails/2012-3464.yml +0 -18
- data/data/bundler/audit/rails/2012-3465.yml +0 -19
- data/spec/bundle/Gemfile.lock +0 -92
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require 'rspec'
|
data/gemspec.yml
CHANGED
|
@@ -19,7 +19,8 @@ require 'yaml'
|
|
|
19
19
|
|
|
20
20
|
module Bundler
|
|
21
21
|
module Audit
|
|
22
|
-
class Advisory < Struct.new(:
|
|
22
|
+
class Advisory < Struct.new(:path,
|
|
23
|
+
:cve,
|
|
23
24
|
:url,
|
|
24
25
|
:title,
|
|
25
26
|
:description,
|
|
@@ -45,6 +46,7 @@ module Bundler
|
|
|
45
46
|
end
|
|
46
47
|
|
|
47
48
|
return new(
|
|
49
|
+
path,
|
|
48
50
|
cve,
|
|
49
51
|
data['url'],
|
|
50
52
|
data['title'],
|
|
@@ -85,6 +87,16 @@ module Bundler
|
|
|
85
87
|
end
|
|
86
88
|
end
|
|
87
89
|
|
|
90
|
+
#
|
|
91
|
+
# Converts the advisory to a String.
|
|
92
|
+
#
|
|
93
|
+
# @return [String]
|
|
94
|
+
# The CVE identifier.
|
|
95
|
+
#
|
|
96
|
+
def to_s
|
|
97
|
+
"CVE-#{cve}"
|
|
98
|
+
end
|
|
99
|
+
|
|
88
100
|
end
|
|
89
101
|
end
|
|
90
102
|
end
|
data/lib/bundler/audit/cli.rb
CHANGED
|
@@ -32,19 +32,20 @@ module Bundler
|
|
|
32
32
|
method_option :verbose, :type => :boolean, :aliases => '-v'
|
|
33
33
|
|
|
34
34
|
def check
|
|
35
|
-
environment = Bundler.load
|
|
36
35
|
database = Database.new
|
|
37
36
|
vulnerable = false
|
|
37
|
+
lock_file = load_gemfile_lock('Gemfile.lock')
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
lock_file.specs.each do |gem|
|
|
40
|
+
database.check_gem(gem) do |advisory|
|
|
41
|
+
vulnerable = true
|
|
42
|
+
print_advisory gem, advisory
|
|
43
|
+
end
|
|
43
44
|
end
|
|
44
45
|
|
|
45
46
|
if vulnerable
|
|
46
47
|
say "Unpatched versions found!", :red
|
|
47
|
-
|
|
48
|
+
exit 1
|
|
48
49
|
else
|
|
49
50
|
say "No unpatched versions found", :green
|
|
50
51
|
end
|
|
@@ -59,6 +60,10 @@ module Bundler
|
|
|
59
60
|
|
|
60
61
|
protected
|
|
61
62
|
|
|
63
|
+
def load_gemfile_lock(path)
|
|
64
|
+
Bundler::LockfileParser.new(File.read(path))
|
|
65
|
+
end
|
|
66
|
+
|
|
62
67
|
def print_advisory(gem, advisory)
|
|
63
68
|
say "Name: ", :red
|
|
64
69
|
say gem.name
|
|
@@ -74,6 +79,7 @@ module Bundler
|
|
|
74
79
|
when :low then say "Low"
|
|
75
80
|
when :medium then say "Medium", :yellow
|
|
76
81
|
when :high then say "High", [:red, :bold]
|
|
82
|
+
else say "Unknown"
|
|
77
83
|
end
|
|
78
84
|
|
|
79
85
|
say "URL: ", :red
|
|
@@ -102,6 +108,11 @@ module Bundler
|
|
|
102
108
|
say
|
|
103
109
|
end
|
|
104
110
|
|
|
111
|
+
def say(string="", color=nil)
|
|
112
|
+
color = nil unless $stdout.tty?
|
|
113
|
+
super(string, color)
|
|
114
|
+
end
|
|
115
|
+
|
|
105
116
|
end
|
|
106
117
|
end
|
|
107
118
|
end
|
|
@@ -28,7 +28,7 @@ module Bundler
|
|
|
28
28
|
class Database
|
|
29
29
|
|
|
30
30
|
# directory containing advisories
|
|
31
|
-
PATH = File.expand_path(File.join(File.dirname(__FILE__),'..','..','..','data','
|
|
31
|
+
PATH = File.expand_path(File.join(File.dirname(__FILE__),'..','..','..','data','ruby-advisory-db','gems'))
|
|
32
32
|
|
|
33
33
|
# The path to the advisory database
|
|
34
34
|
attr_reader :path
|
|
@@ -119,35 +119,6 @@ module Bundler
|
|
|
119
119
|
end
|
|
120
120
|
end
|
|
121
121
|
|
|
122
|
-
#
|
|
123
|
-
# Verifies whether the bundled gems are effected by any advisories.
|
|
124
|
-
#
|
|
125
|
-
# @param [Bundle::Environment] environment
|
|
126
|
-
# The bundled gems.
|
|
127
|
-
#
|
|
128
|
-
# @yield [gem, advisory]
|
|
129
|
-
# If a block is given, each advisory that effects a gem within the
|
|
130
|
-
# bundle will be passed.
|
|
131
|
-
#
|
|
132
|
-
# @yieldparam [Gem::Specification] gem
|
|
133
|
-
# The gem effected by the advisory.
|
|
134
|
-
#
|
|
135
|
-
# @yieldparam [Advisory] advisory
|
|
136
|
-
# An advisory that effects a gem within the bundle.
|
|
137
|
-
#
|
|
138
|
-
# @return [Enumerator]
|
|
139
|
-
# If no block is given, an Enumerator will be returned.
|
|
140
|
-
#
|
|
141
|
-
def check_bundle(environment)
|
|
142
|
-
return enum_for(__method__,environment) unless block_given?
|
|
143
|
-
|
|
144
|
-
environment.gems.each do |gem|
|
|
145
|
-
check_gem(gem) do |advisory|
|
|
146
|
-
yield gem, advisory
|
|
147
|
-
end
|
|
148
|
-
end
|
|
149
|
-
end
|
|
150
|
-
|
|
151
122
|
#
|
|
152
123
|
# The number of advisories within the database.
|
|
153
124
|
#
|
data/spec/advisory_spec.rb
CHANGED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
source 'https://rubygems.org'
|
|
2
|
+
|
|
3
|
+
gem 'rails', '3.2.12'
|
|
4
|
+
|
|
5
|
+
# Bundle edge Rails instead:
|
|
6
|
+
# gem 'rails', :git => 'git://github.com/rails/rails.git'
|
|
7
|
+
|
|
8
|
+
gem 'sqlite3'
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
# Gems used only for assets and not required
|
|
12
|
+
# in production environments by default.
|
|
13
|
+
group :assets do
|
|
14
|
+
# gem 'sass-rails', '~> 3.2.3'
|
|
15
|
+
# gem 'coffee-rails', '~> 3.2.1'
|
|
16
|
+
|
|
17
|
+
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
|
|
18
|
+
# gem 'therubyracer', :platforms => :ruby
|
|
19
|
+
|
|
20
|
+
# gem 'uglifier', '>= 1.0.3'
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
gem 'jquery-rails'
|
|
24
|
+
|
|
25
|
+
# To use ActiveModel has_secure_password
|
|
26
|
+
# gem 'bcrypt-ruby', '~> 3.0.0'
|
|
27
|
+
|
|
28
|
+
# To use Jbuilder templates for JSON
|
|
29
|
+
# gem 'jbuilder'
|
|
30
|
+
|
|
31
|
+
# Use unicorn as the app server
|
|
32
|
+
# gem 'unicorn'
|
|
33
|
+
|
|
34
|
+
# Deploy with Capistrano
|
|
35
|
+
# gem 'capistrano'
|
|
36
|
+
|
|
37
|
+
# To use debugger
|
|
38
|
+
# gem 'debugger'
|
|
File without changes
|
data/spec/database_spec.rb
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
require 'bundler/audit/database'
|
|
3
|
-
|
|
4
|
-
require 'bundler'
|
|
5
3
|
require 'tmpdir'
|
|
6
4
|
|
|
7
5
|
describe Bundler::Audit::Database do
|
|
@@ -44,7 +42,7 @@ describe Bundler::Audit::Database do
|
|
|
44
42
|
describe "#check_gem" do
|
|
45
43
|
let(:gem) do
|
|
46
44
|
Gem::Specification.new do |s|
|
|
47
|
-
s.name = '
|
|
45
|
+
s.name = 'actionpack'
|
|
48
46
|
s.version = '3.1.9'
|
|
49
47
|
end
|
|
50
48
|
end
|
|
@@ -71,35 +69,6 @@ describe Bundler::Audit::Database do
|
|
|
71
69
|
end
|
|
72
70
|
end
|
|
73
71
|
|
|
74
|
-
describe "#check_bundle" do
|
|
75
|
-
let(:path) { File.join(File.dirname(__FILE__),'bundle') }
|
|
76
|
-
let(:bundle) do
|
|
77
|
-
Dir.chdir(path) { Bundler.load }
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
context "when given a block" do
|
|
81
|
-
it "should yield every advisory effecting the bundle" do
|
|
82
|
-
advisories = []
|
|
83
|
-
|
|
84
|
-
subject.check_bundle(bundle) do |gem,advisory|
|
|
85
|
-
advisories << [gem, advisory]
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
advisories.should_not be_empty
|
|
89
|
-
advisories.all? { |gem,advisory|
|
|
90
|
-
gem.kind_of?(Gem::Specification) &&
|
|
91
|
-
advisory.kind_of?(Bundler::Audit::Advisory)
|
|
92
|
-
}.should be_true
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
context "when given no block" do
|
|
97
|
-
it "should return an Enumerator" do
|
|
98
|
-
subject.check_bundle(bundle).should be_kind_of(Enumerable)
|
|
99
|
-
end
|
|
100
|
-
end
|
|
101
|
-
end
|
|
102
|
-
|
|
103
72
|
describe "#size" do
|
|
104
73
|
it { subject.size.should > 0 }
|
|
105
74
|
end
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe "CLI" do
|
|
4
|
+
include Helpers
|
|
5
|
+
|
|
6
|
+
let(:command) do
|
|
7
|
+
File.expand_path(File.join(File.dirname(__FILE__),'..','bin','bundle-audit'))
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
context "when auditing a vulnerable bundle" do
|
|
11
|
+
let(:bundle) { 'vuln' }
|
|
12
|
+
let(:directory) { File.join('spec','bundle',bundle) }
|
|
13
|
+
|
|
14
|
+
subject do
|
|
15
|
+
Dir.chdir(directory) { sh(command, :fail => true) }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "should print a warning" do
|
|
19
|
+
subject.should include("Unpatched versions found!")
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it "should print advisory information for the vulnerable gems" do
|
|
23
|
+
subject.should include(%{
|
|
24
|
+
Name: actionpack
|
|
25
|
+
Version: 3.2.10
|
|
26
|
+
CVE: 2013-0156
|
|
27
|
+
Criticality: High
|
|
28
|
+
URL: http://osvdb.org/show/osvdb/89026
|
|
29
|
+
Title: Ruby on Rails params_parser.rb Action Pack Type Casting Parameter Parsing Remote Code Execution
|
|
30
|
+
Solution: upgrade to ~> 2.3.15, ~> 3.0.19, ~> 3.1.10, >= 3.2.11
|
|
31
|
+
|
|
32
|
+
Name: activerecord
|
|
33
|
+
Version: 3.2.10
|
|
34
|
+
CVE: 2013-0276
|
|
35
|
+
Criticality: Medium
|
|
36
|
+
URL: http://direct.osvdb.org/show/osvdb/90072
|
|
37
|
+
Title: Ruby on Rails Active Record attr_protected Method Bypass
|
|
38
|
+
Solution: upgrade to ~> 2.3.17, ~> 3.1.11, >= 3.2.12
|
|
39
|
+
|
|
40
|
+
Name: activerecord
|
|
41
|
+
Version: 3.2.10
|
|
42
|
+
CVE: 2013-0155
|
|
43
|
+
Criticality: High
|
|
44
|
+
URL: http://osvdb.org/show/osvdb/89025
|
|
45
|
+
Title: Ruby on Rails Active Record JSON Parameter Parsing Query Bypass
|
|
46
|
+
Solution: upgrade to ~> 2.3.16, ~> 3.0.19, ~> 3.1.10, >= 3.2.11
|
|
47
|
+
}.strip)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
context "when auditing a secure bundle" do
|
|
52
|
+
let(:bundle) { 'secure' }
|
|
53
|
+
let(:directory) { File.join('spec','bundle',bundle) }
|
|
54
|
+
|
|
55
|
+
subject do
|
|
56
|
+
Dir.chdir(directory) { sh(command) }
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
it "should print nothing when everything is fine" do
|
|
60
|
+
subject.strip.should == "No unpatched versions found"
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
|
-
gem 'rspec', '~> 2.4'
|
|
2
1
|
require 'rspec'
|
|
3
2
|
require 'bundler/audit/version'
|
|
4
3
|
|
|
4
|
+
module Helpers
|
|
5
|
+
def sh(command, options={})
|
|
6
|
+
Bundler.with_clean_env do
|
|
7
|
+
result = `#{command} 2>&1`
|
|
8
|
+
raise "FAILED #{command}\n#{result}" if $?.success? == !!options[:fail]
|
|
9
|
+
result
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def decolorize(string)
|
|
14
|
+
string.gsub(/\e\[\d+m/, "")
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
5
18
|
include Bundler::Audit
|
metadata
CHANGED
|
@@ -1,122 +1,55 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bundler-audit
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.2
|
|
5
5
|
prerelease:
|
|
6
|
-
segments:
|
|
7
|
-
- 0
|
|
8
|
-
- 1
|
|
9
|
-
- 1
|
|
10
|
-
version: 0.1.1
|
|
11
6
|
platform: ruby
|
|
12
|
-
authors:
|
|
7
|
+
authors:
|
|
13
8
|
- Postmodern
|
|
14
9
|
autorequire:
|
|
15
10
|
bindir: bin
|
|
16
11
|
cert_chain: []
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
- !ruby/object:Gem::Dependency
|
|
12
|
+
date: 2013-02-18 00:00:00.000000000 Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
21
15
|
name: bundler
|
|
22
|
-
|
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
|
24
17
|
none: false
|
|
25
|
-
requirements:
|
|
18
|
+
requirements:
|
|
26
19
|
- - ~>
|
|
27
|
-
- !ruby/object:Gem::Version
|
|
28
|
-
|
|
29
|
-
segments:
|
|
30
|
-
- 1
|
|
31
|
-
- 0
|
|
32
|
-
version: "1.0"
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: '1.2'
|
|
33
22
|
type: :runtime
|
|
34
|
-
version_requirements: *id001
|
|
35
|
-
- !ruby/object:Gem::Dependency
|
|
36
|
-
name: yard
|
|
37
|
-
prerelease: false
|
|
38
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
|
39
|
-
none: false
|
|
40
|
-
requirements:
|
|
41
|
-
- - ~>
|
|
42
|
-
- !ruby/object:Gem::Version
|
|
43
|
-
hash: 27
|
|
44
|
-
segments:
|
|
45
|
-
- 0
|
|
46
|
-
- 8
|
|
47
|
-
version: "0.8"
|
|
48
|
-
type: :development
|
|
49
|
-
version_requirements: *id002
|
|
50
|
-
- !ruby/object:Gem::Dependency
|
|
51
|
-
name: rubygems-tasks
|
|
52
|
-
prerelease: false
|
|
53
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
|
54
|
-
none: false
|
|
55
|
-
requirements:
|
|
56
|
-
- - ~>
|
|
57
|
-
- !ruby/object:Gem::Version
|
|
58
|
-
hash: 15
|
|
59
|
-
segments:
|
|
60
|
-
- 0
|
|
61
|
-
- 2
|
|
62
|
-
version: "0.2"
|
|
63
|
-
type: :development
|
|
64
|
-
version_requirements: *id003
|
|
65
|
-
- !ruby/object:Gem::Dependency
|
|
66
|
-
name: rspec
|
|
67
23
|
prerelease: false
|
|
68
|
-
|
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
69
25
|
none: false
|
|
70
|
-
requirements:
|
|
26
|
+
requirements:
|
|
71
27
|
- - ~>
|
|
72
|
-
- !ruby/object:Gem::Version
|
|
73
|
-
|
|
74
|
-
segments:
|
|
75
|
-
- 2
|
|
76
|
-
- 4
|
|
77
|
-
version: "2.4"
|
|
78
|
-
type: :development
|
|
79
|
-
version_requirements: *id004
|
|
28
|
+
- !ruby/object:Gem::Version
|
|
29
|
+
version: '1.2'
|
|
80
30
|
description: bundler-audit provides patch-level verification for Bundled apps.
|
|
81
31
|
email: postmodern.mod3@gmail.com
|
|
82
|
-
executables:
|
|
32
|
+
executables:
|
|
83
33
|
- bundle-audit
|
|
84
34
|
extensions: []
|
|
85
|
-
|
|
86
|
-
extra_rdoc_files:
|
|
35
|
+
extra_rdoc_files:
|
|
87
36
|
- COPYING.txt
|
|
88
37
|
- ChangeLog.md
|
|
89
38
|
- README.md
|
|
90
|
-
files:
|
|
39
|
+
files:
|
|
91
40
|
- .document
|
|
92
41
|
- .gitignore
|
|
42
|
+
- .gitmodules
|
|
93
43
|
- .rspec
|
|
44
|
+
- .travis.yml
|
|
94
45
|
- .yardopts
|
|
95
46
|
- COPYING.txt
|
|
96
47
|
- ChangeLog.md
|
|
48
|
+
- Gemfile
|
|
97
49
|
- README.md
|
|
98
50
|
- Rakefile
|
|
99
51
|
- bin/bundle-audit
|
|
100
52
|
- bundler-audit.gemspec
|
|
101
|
-
- data/bundler/audit/json/2013-0269.yml
|
|
102
|
-
- data/bundler/audit/mail/2011-0739.yml
|
|
103
|
-
- data/bundler/audit/mail/2012-2139.yml
|
|
104
|
-
- data/bundler/audit/mail/2012-2140.yml
|
|
105
|
-
- data/bundler/audit/rack-cache/2012-267.yml
|
|
106
|
-
- data/bundler/audit/rack/2013-0263.yml
|
|
107
|
-
- data/bundler/audit/rails/2012-1098.yml
|
|
108
|
-
- data/bundler/audit/rails/2012-1099.yml
|
|
109
|
-
- data/bundler/audit/rails/2012-2660.yml
|
|
110
|
-
- data/bundler/audit/rails/2012-2661.yml
|
|
111
|
-
- data/bundler/audit/rails/2012-3424.yml
|
|
112
|
-
- data/bundler/audit/rails/2012-3463.yml
|
|
113
|
-
- data/bundler/audit/rails/2012-3464.yml
|
|
114
|
-
- data/bundler/audit/rails/2012-3465.yml
|
|
115
|
-
- data/bundler/audit/rails/2013-0155.yml
|
|
116
|
-
- data/bundler/audit/rails/2013-0156.yml
|
|
117
|
-
- data/bundler/audit/rails/2013-0276.yml
|
|
118
|
-
- data/bundler/audit/rails/2013-0277.yml
|
|
119
|
-
- data/bundler/audit/rails/2013-0333.yml
|
|
120
53
|
- gemspec.yml
|
|
121
54
|
- lib/bundler/audit.rb
|
|
122
55
|
- lib/bundler/audit/advisory.rb
|
|
@@ -125,42 +58,65 @@ files:
|
|
|
125
58
|
- lib/bundler/audit/version.rb
|
|
126
59
|
- spec/advisory_spec.rb
|
|
127
60
|
- spec/audit_spec.rb
|
|
128
|
-
- spec/bundle/Gemfile
|
|
129
|
-
- spec/bundle/Gemfile
|
|
61
|
+
- spec/bundle/secure/Gemfile
|
|
62
|
+
- spec/bundle/vuln/Gemfile
|
|
130
63
|
- spec/database_spec.rb
|
|
64
|
+
- spec/integration_spec.rb
|
|
131
65
|
- spec/spec_helper.rb
|
|
66
|
+
- data/ruby-advisory-db/.rspec
|
|
67
|
+
- data/ruby-advisory-db/README.md
|
|
68
|
+
- data/ruby-advisory-db/gems/actionpack/2012-1099.yml
|
|
69
|
+
- data/ruby-advisory-db/gems/actionpack/2012-3424.yml
|
|
70
|
+
- data/ruby-advisory-db/gems/actionpack/2012-3463.yml
|
|
71
|
+
- data/ruby-advisory-db/gems/actionpack/2012-3465.yml
|
|
72
|
+
- data/ruby-advisory-db/gems/actionpack/2013-0156.yml
|
|
73
|
+
- data/ruby-advisory-db/gems/activerecord/2012-2660.yml
|
|
74
|
+
- data/ruby-advisory-db/gems/activerecord/2012-2661.yml
|
|
75
|
+
- data/ruby-advisory-db/gems/activerecord/2013-0155.yml
|
|
76
|
+
- data/ruby-advisory-db/gems/activerecord/2013-0276.yml
|
|
77
|
+
- data/ruby-advisory-db/gems/activerecord/2013-0277.yml
|
|
78
|
+
- data/ruby-advisory-db/gems/activesupport/2012-1098.yml
|
|
79
|
+
- data/ruby-advisory-db/gems/activesupport/2012-3464.yml
|
|
80
|
+
- data/ruby-advisory-db/gems/activesupport/2013-0333.yml
|
|
81
|
+
- data/ruby-advisory-db/gems/devise/2013-0233.yml
|
|
82
|
+
- data/ruby-advisory-db/gems/gtk2/2007-6183.yml
|
|
83
|
+
- data/ruby-advisory-db/gems/json/2013-0269.yml
|
|
84
|
+
- data/ruby-advisory-db/gems/mail/2011-0739.yml
|
|
85
|
+
- data/ruby-advisory-db/gems/mail/2012-2139.yml
|
|
86
|
+
- data/ruby-advisory-db/gems/mail/2012-2140.yml
|
|
87
|
+
- data/ruby-advisory-db/gems/multi_xml/2013-0175.yml
|
|
88
|
+
- data/ruby-advisory-db/gems/newrelic_rpm/2013-0284.yml
|
|
89
|
+
- data/ruby-advisory-db/gems/nori/2013-0285.yml
|
|
90
|
+
- data/ruby-advisory-db/gems/omniauth-oauth2/2012-6134.yml
|
|
91
|
+
- data/ruby-advisory-db/gems/rack-cache/2012-267.yml
|
|
92
|
+
- data/ruby-advisory-db/gems/rack/2013-0263.yml
|
|
93
|
+
- data/ruby-advisory-db/gems/rdoc/2013-0256.yml
|
|
94
|
+
- data/ruby-advisory-db/spec/advisory_example.rb
|
|
95
|
+
- data/ruby-advisory-db/spec/gems_spec.rb
|
|
96
|
+
- data/ruby-advisory-db/spec/spec_helper.rb
|
|
132
97
|
homepage: https://github.com/postmodern/bundler-audit#readme
|
|
133
|
-
licenses:
|
|
98
|
+
licenses:
|
|
134
99
|
- GPLv3
|
|
135
100
|
post_install_message:
|
|
136
101
|
rdoc_options: []
|
|
137
|
-
|
|
138
|
-
require_paths:
|
|
102
|
+
require_paths:
|
|
139
103
|
- lib
|
|
140
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
104
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
141
105
|
none: false
|
|
142
|
-
requirements:
|
|
143
|
-
- -
|
|
144
|
-
- !ruby/object:Gem::Version
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
- 0
|
|
148
|
-
version: "0"
|
|
149
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
106
|
+
requirements:
|
|
107
|
+
- - ! '>='
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: '0'
|
|
110
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
150
111
|
none: false
|
|
151
|
-
requirements:
|
|
152
|
-
- -
|
|
153
|
-
- !ruby/object:Gem::Version
|
|
154
|
-
|
|
155
|
-
segments:
|
|
156
|
-
- 0
|
|
157
|
-
version: "0"
|
|
112
|
+
requirements:
|
|
113
|
+
- - ! '>='
|
|
114
|
+
- !ruby/object:Gem::Version
|
|
115
|
+
version: '0'
|
|
158
116
|
requirements: []
|
|
159
|
-
|
|
160
117
|
rubyforge_project:
|
|
161
|
-
rubygems_version: 1.8.
|
|
118
|
+
rubygems_version: 1.8.25
|
|
162
119
|
signing_key:
|
|
163
120
|
specification_version: 3
|
|
164
121
|
summary: Patch-level verification for Bundler
|
|
165
122
|
test_files: []
|
|
166
|
-
|