bundler-audit 0.3.1 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +3 -1
- data/.travis.yml +13 -4
- data/ChangeLog.md +53 -0
- data/Gemfile +4 -3
- data/README.md +44 -18
- data/Rakefile +13 -21
- data/bin/bundler-audit +3 -0
- data/data/ruby-advisory-db.ts +1 -1
- data/gemspec.yml +4 -3
- data/lib/bundler/audit.rb +1 -1
- data/lib/bundler/audit/advisory.rb +71 -7
- data/lib/bundler/audit/cli.rb +41 -11
- data/lib/bundler/audit/database.rb +29 -7
- data/lib/bundler/audit/scanner.rb +126 -10
- data/lib/bundler/audit/task.rb +31 -0
- data/lib/bundler/audit/version.rb +2 -2
- data/spec/advisory_spec.rb +211 -35
- data/spec/audit_spec.rb +1 -1
- data/spec/bundle/insecure_sources/Gemfile +2 -37
- data/spec/bundle/secure/Gemfile +2 -36
- data/spec/bundle/unpatched_gems/Gemfile +1 -36
- data/spec/cli_spec.rb +126 -0
- data/spec/database_spec.rb +51 -25
- data/spec/integration_spec.rb +35 -13
- data/spec/scanner_spec.rb +11 -10
- data/spec/spec_helper.rb +9 -17
- metadata +38 -121
- data/data/ruby-advisory-db/.gitignore +0 -1
- data/data/ruby-advisory-db/.rspec +0 -1
- data/data/ruby-advisory-db/CONTRIBUTING.md +0 -6
- data/data/ruby-advisory-db/CONTRIBUTORS.md +0 -23
- data/data/ruby-advisory-db/Gemfile +0 -3
- data/data/ruby-advisory-db/LICENSE.txt +0 -5
- data/data/ruby-advisory-db/README.md +0 -82
- data/data/ruby-advisory-db/Rakefile +0 -27
- data/data/ruby-advisory-db/gems/actionmailer/OSVDB-98629.yml +0 -17
- data/data/ruby-advisory-db/gems/actionpack/OSVDB-100524.yml +0 -20
- data/data/ruby-advisory-db/gems/actionpack/OSVDB-100525.yml +0 -21
- data/data/ruby-advisory-db/gems/actionpack/OSVDB-100526.yml +0 -27
- data/data/ruby-advisory-db/gems/actionpack/OSVDB-100527.yml +0 -24
- data/data/ruby-advisory-db/gems/actionpack/OSVDB-100528.yml +0 -22
- data/data/ruby-advisory-db/gems/actionpack/OSVDB-103439.yml +0 -24
- data/data/ruby-advisory-db/gems/actionpack/OSVDB-103440.yml +0 -22
- data/data/ruby-advisory-db/gems/actionpack/OSVDB-79727.yml +0 -26
- data/data/ruby-advisory-db/gems/actionpack/OSVDB-84243.yml +0 -28
- data/data/ruby-advisory-db/gems/actionpack/OSVDB-84513.yml +0 -23
- data/data/ruby-advisory-db/gems/actionpack/OSVDB-84515.yml +0 -26
- data/data/ruby-advisory-db/gems/actionpack/OSVDB-89026.yml +0 -24
- data/data/ruby-advisory-db/gems/actionpack/OSVDB-91452.yml +0 -20
- data/data/ruby-advisory-db/gems/actionpack/OSVDB-91454.yml +0 -23
- data/data/ruby-advisory-db/gems/activerecord/OSVDB-103438.yml +0 -23
- data/data/ruby-advisory-db/gems/activerecord/OSVDB-82403.yml +0 -25
- data/data/ruby-advisory-db/gems/activerecord/OSVDB-82610.yml +0 -24
- data/data/ruby-advisory-db/gems/activerecord/OSVDB-89025.yml +0 -24
- data/data/ruby-advisory-db/gems/activerecord/OSVDB-90072.yml +0 -21
- data/data/ruby-advisory-db/gems/activerecord/OSVDB-90073.yml +0 -23
- data/data/ruby-advisory-db/gems/activerecord/OSVDB-91453.yml +0 -26
- data/data/ruby-advisory-db/gems/activesupport/OSVDB-79726.yml +0 -26
- data/data/ruby-advisory-db/gems/activesupport/OSVDB-84516.yml +0 -23
- data/data/ruby-advisory-db/gems/activesupport/OSVDB-89594.yml +0 -25
- data/data/ruby-advisory-db/gems/activesupport/OSVDB-91451.yml +0 -28
- data/data/ruby-advisory-db/gems/arabic-prawn/OSVDB-104365.yml +0 -15
- data/data/ruby-advisory-db/gems/cocaine/OSVDB-98835.yml +0 -15
- data/data/ruby-advisory-db/gems/command_wrap/OSVDB-91450.yml +0 -10
- data/data/ruby-advisory-db/gems/crack/OSVDB-90742.yml +0 -17
- data/data/ruby-advisory-db/gems/cremefraiche/OSVDB-93395.yml +0 -11
- data/data/ruby-advisory-db/gems/curl/OSVDB-91230.yml +0 -12
- data/data/ruby-advisory-db/gems/devise/OSVDB-89642.yml +0 -20
- data/data/ruby-advisory-db/gems/dragonfly/OSVDB-90647.yml +0 -19
- data/data/ruby-advisory-db/gems/echor/OSVDB-102129.yml +0 -11
- data/data/ruby-advisory-db/gems/echor/OSVDB-102130.yml +0 -10
- data/data/ruby-advisory-db/gems/enum_column3/OSVDB-94679.yml +0 -9
- data/data/ruby-advisory-db/gems/extlib/OSVDB-90740.yml +0 -18
- data/data/ruby-advisory-db/gems/fastreader/OSVDB-91232.yml +0 -12
- data/data/ruby-advisory-db/gems/fileutils/OSVDB-90715.yml +0 -10
- data/data/ruby-advisory-db/gems/fileutils/OSVDB-90716.yml +0 -10
- data/data/ruby-advisory-db/gems/fileutils/OSVDB-90717.yml +0 -10
- data/data/ruby-advisory-db/gems/flash_tool/OSVDB-90829.yml +0 -9
- data/data/ruby-advisory-db/gems/fog-dragonfly/OSVDB-96798.yml +0 -13
- data/data/ruby-advisory-db/gems/ftpd/OSVDB-90784.yml +0 -18
- data/data/ruby-advisory-db/gems/gitlab-grit/OSVDB-99370.yml +0 -14
- data/data/ruby-advisory-db/gems/gtk2/OSVDB-40774.yml +0 -20
- data/data/ruby-advisory-db/gems/httparty/OSVDB-90741.yml +0 -14
- data/data/ruby-advisory-db/gems/i18n/OSVDB-100528.yml +0 -17
- data/data/ruby-advisory-db/gems/json/OSVDB-90074.yml +0 -23
- data/data/ruby-advisory-db/gems/karteek-docsplit/OSVDB-92117.yml +0 -10
- data/data/ruby-advisory-db/gems/kelredd-pruview/OSVDB-92228.yml +0 -10
- data/data/ruby-advisory-db/gems/ldoce/OSVDB-91870.yml +0 -10
- data/data/ruby-advisory-db/gems/loofah/OSVDB-90945.yml +0 -21
- data/data/ruby-advisory-db/gems/mail/OSVDB-70667.yml +0 -21
- data/data/ruby-advisory-db/gems/mail/OSVDB-81631.yml +0 -14
- data/data/ruby-advisory-db/gems/mail/OSVDB-81632.yml +0 -16
- data/data/ruby-advisory-db/gems/md2pdf/OSVDB-92290.yml +0 -10
- data/data/ruby-advisory-db/gems/mini_magick/OSVDB-91231.yml +0 -15
- data/data/ruby-advisory-db/gems/multi_xml/OSVDB-89148.yml +0 -16
- data/data/ruby-advisory-db/gems/newrelic_rpm/OSVDB-90189.yml +0 -17
- data/data/ruby-advisory-db/gems/nokogiri/OSVDB-101179.yml +0 -12
- data/data/ruby-advisory-db/gems/nokogiri/OSVDB-101458.yml +0 -15
- data/data/ruby-advisory-db/gems/nori/OSVDB-90196.yml +0 -19
- data/data/ruby-advisory-db/gems/omniauth-facebook/OSVDB-99693.yml +0 -22
- data/data/ruby-advisory-db/gems/omniauth-facebook/OSVDB-99888.yml +0 -17
- data/data/ruby-advisory-db/gems/omniauth-oauth2/OSVDB-90264.yml +0 -16
- data/data/ruby-advisory-db/gems/paperclip/OSVDB-103151.yml +0 -13
- data/data/ruby-advisory-db/gems/paratrooper-newrelic/OSVDB-101839.yml +0 -12
- data/data/ruby-advisory-db/gems/paratrooper-pingdom/OSVDB-101847.yml +0 -13
- data/data/ruby-advisory-db/gems/pdfkit/OSVDB-90867.yml +0 -11
- data/data/ruby-advisory-db/gems/rack-cache/OSVDB-83077.yml +0 -18
- data/data/ruby-advisory-db/gems/rack/OSVDB-89939.yml +0 -23
- data/data/ruby-advisory-db/gems/rbovirt/OSVDB-104080.yml +0 -20
- data/data/ruby-advisory-db/gems/rdoc/OSVDB-90004.yml +0 -27
- data/data/ruby-advisory-db/gems/redis-namespace/OSVDB-96425.yml +0 -16
- data/data/ruby-advisory-db/gems/rgpg/OSVDB-95948.yml +0 -14
- data/data/ruby-advisory-db/gems/ruby_parser/OSVDB-90561.yml +0 -11
- data/data/ruby-advisory-db/gems/sfpagent/OSVDB-105971.yml +0 -13
- data/data/ruby-advisory-db/gems/sounder/OSVDB-96278.yml +0 -13
- data/data/ruby-advisory-db/gems/spree/OSVDB-91216.yml +0 -11
- data/data/ruby-advisory-db/gems/spree/OSVDB-91217.yml +0 -11
- data/data/ruby-advisory-db/gems/spree/OSVDB-91218.yml +0 -11
- data/data/ruby-advisory-db/gems/spree/OSVDB-91219.yml +0 -11
- data/data/ruby-advisory-db/gems/sprout/OSVDB-100598.yml +0 -14
- data/data/ruby-advisory-db/gems/thumbshooter/OSVDB-91839.yml +0 -10
- data/data/ruby-advisory-db/gems/webbynode/OSVDB-100920.yml +0 -11
- data/data/ruby-advisory-db/gems/wicked/OSVDB-98270.yml +0 -14
- data/data/ruby-advisory-db/gems/will_paginate/OSVDB-101138.yml +0 -15
- data/data/ruby-advisory-db/lib/scrape.rb +0 -87
- data/data/ruby-advisory-db/spec/advisory_example.rb +0 -165
- data/data/ruby-advisory-db/spec/gems_spec.rb +0 -7
- data/data/ruby-advisory-db/spec/spec_helper.rb +0 -1
@@ -1,13 +0,0 @@
|
|
1
|
-
---
|
2
|
-
gem: paperclip
|
3
|
-
osvdb: 103151
|
4
|
-
url: http://osvdb.org/show/osvdb/103151
|
5
|
-
title: Paperclip Gem for Ruby contains a flaw
|
6
|
-
date: 2014-01-31
|
7
|
-
description: Paperclip Gem for Ruby contains a flaw that is due to the application failing to properly
|
8
|
-
validate the file extension, instead only validating the Content-Type header during file uploads.
|
9
|
-
This may allow a remote attacker to bypass restrictions on file types for uploaded files by
|
10
|
-
spoofing the content-type.
|
11
|
-
cvss_v2:
|
12
|
-
patched_versions:
|
13
|
-
- ">= 4.0.0"
|
@@ -1,12 +0,0 @@
|
|
1
|
-
---
|
2
|
-
gem: paratrooper-newrelic
|
3
|
-
cve: 2014-1234
|
4
|
-
osvdb: 101839
|
5
|
-
url: http://www.osvdb.org/show/osvdb/101839
|
6
|
-
title: Paratrooper-newrelic Gem for Ruby contains a flaw
|
7
|
-
date: 2014-01-08
|
8
|
-
description: Paratrooper-newrelic Gem for Ruby contains a flaw in /lib/paratrooper-newrelic.rb.
|
9
|
-
The issue is triggered when the script exposes the API key, allowing a local attacker to
|
10
|
-
gain access to it by monitoring the process tree.
|
11
|
-
cvss_v2: 2.1
|
12
|
-
patched_versions:
|
@@ -1,13 +0,0 @@
|
|
1
|
-
---
|
2
|
-
gem: paratrooper-pingdom
|
3
|
-
cve: 2014-1233
|
4
|
-
osvdb: 101847
|
5
|
-
url: http://www.osvdb.org/show/osvdb/101847
|
6
|
-
title: Paratrooper-pingdom Gem for Ruby contains a flaw
|
7
|
-
date: 2013-12-26
|
8
|
-
description: paratrooper-pingdom Gem for Ruby contains a flaw in /lib/paratrooper-pingdom.rb.
|
9
|
-
The issue is triggered when the script exposes API login credentials, allowing a local
|
10
|
-
attacker to gain access to the API key, username, and password for the API login by
|
11
|
-
monitoring the process tree.
|
12
|
-
cvss_v2: 2.1
|
13
|
-
patched_versions:
|
@@ -1,11 +0,0 @@
|
|
1
|
-
---
|
2
|
-
gem: pdfkit
|
3
|
-
cve: 2013-1607
|
4
|
-
osvdb: 90867
|
5
|
-
url: http://osvdb.org/show/osvdb/90867
|
6
|
-
title: PDFKit Gem for Ruby PDF File Generation Parameter Handling Remote Code Execution
|
7
|
-
date: 2013-02-21
|
8
|
-
description: PDFKit Gem for Ruby contains a flaw that is due to the program failing to properly validate input during the handling of parameters when generating PDF files. This may allow a remote attacker to potentially execute arbitrary code via the pdfkit generation options.
|
9
|
-
cvss_v2:
|
10
|
-
patched_versions:
|
11
|
-
- ">= 0.5.3"
|
@@ -1,18 +0,0 @@
|
|
1
|
-
---
|
2
|
-
gem: rack-cache
|
3
|
-
cve: 2012-2671
|
4
|
-
osvdb: 83077
|
5
|
-
url: http://osvdb.org/83077
|
6
|
-
title: rack-cache Rubygem Sensitive HTTP Header Caching Weakness
|
7
|
-
date: 2012-06-06
|
8
|
-
|
9
|
-
description: |
|
10
|
-
Rack::Cache (rack-cache) contains a flaw related to the rubygem caching
|
11
|
-
sensitive HTTP headers. This will result in a weakness that may make it
|
12
|
-
easier for an attacker to gain access to a user's session via a specially
|
13
|
-
crafted header.
|
14
|
-
|
15
|
-
cvss_v2: 7.5
|
16
|
-
|
17
|
-
patched_versions:
|
18
|
-
- ">= 1.2"
|
@@ -1,23 +0,0 @@
|
|
1
|
-
---
|
2
|
-
gem: rack
|
3
|
-
cve: 2013-0263
|
4
|
-
osvdb: 89939
|
5
|
-
url: http://osvdb.org/show/osvdb/89939
|
6
|
-
title: |
|
7
|
-
Rack Rack::Session::Cookie Function Timing Attack Remote Code Execution
|
8
|
-
date: 2009-12-01
|
9
|
-
|
10
|
-
description: |
|
11
|
-
Rack contains a flaw that is due to an error in the Rack::Session::Cookie
|
12
|
-
function. Users of the Marshal session cookie encoding (the default), are
|
13
|
-
subject to a timing attack that may lead an attacker to execute arbitrary
|
14
|
-
code. This attack is more practical against 'cloud' users as intra-cloud
|
15
|
-
latencies are sufficiently low to make the attack viable.
|
16
|
-
|
17
|
-
cvss_v2: 5.1
|
18
|
-
patched_versions:
|
19
|
-
- ~> 1.1.6
|
20
|
-
- ~> 1.2.8
|
21
|
-
- ~> 1.3.10
|
22
|
-
- ~> 1.4.5
|
23
|
-
- ">= 1.5.2"
|
@@ -1,20 +0,0 @@
|
|
1
|
-
---
|
2
|
-
gem: rbovirt
|
3
|
-
cve: 2014-0036
|
4
|
-
osvdb: 104080
|
5
|
-
url: http://osvdb.org/show/osvdb/104080
|
6
|
-
title: rbovirt Gem for Ruby contains a flaw
|
7
|
-
date: 2014-03-05
|
8
|
-
|
9
|
-
description: |
|
10
|
-
rbovirt Gem for Ruby contains a flaw related to certificate validation.
|
11
|
-
The issue is due to the program failing to validate SSL certificates. This may
|
12
|
-
allow an attacker with access to network traffic (e.g. MiTM, DNS cache
|
13
|
-
poisoning) to spoof the SSL server via an arbitrary certificate that appears
|
14
|
-
valid. Such an attack would allow for the interception of sensitive traffic,
|
15
|
-
and potentially allow for the injection of content into the SSL stream.
|
16
|
-
|
17
|
-
cvss_v2:
|
18
|
-
|
19
|
-
patched_versions:
|
20
|
-
- '>= 0.0.24'
|
@@ -1,27 +0,0 @@
|
|
1
|
-
---
|
2
|
-
gem: rdoc
|
3
|
-
cve: 2013-0256
|
4
|
-
osvdb: 90004
|
5
|
-
url: http://www.osvdb.org/show/osvdb/90004
|
6
|
-
title: RDoc 2.3.0 through 3.12 XSS Exploit
|
7
|
-
date: 2013-02-06
|
8
|
-
|
9
|
-
description: |
|
10
|
-
Doc documentation generated by rdoc 2.3.0 through rdoc 3.12 and prereleases
|
11
|
-
up to rdoc 4.0.0.preview2.1 are vulnerable to an XSS exploit. This exploit
|
12
|
-
may lead to cookie disclosure to third parties.
|
13
|
-
|
14
|
-
The exploit exists in darkfish.js which is copied from the RDoc install
|
15
|
-
location to the generated documentation.
|
16
|
-
|
17
|
-
RDoc is a static documentation generation tool. Patching the library itself
|
18
|
-
is insufficient to correct this exploit.
|
19
|
-
|
20
|
-
This exploit was discovered by Evgeny Ermakov <corwmh@gmail.com>.
|
21
|
-
|
22
|
-
cvss_v2: 4.3
|
23
|
-
|
24
|
-
patched_versions:
|
25
|
-
- ~> 3.9.5
|
26
|
-
- ~> 3.12.1
|
27
|
-
- ">= 4.0"
|
@@ -1,16 +0,0 @@
|
|
1
|
-
---
|
2
|
-
gem: redis-namespace
|
3
|
-
osvdb: 96425
|
4
|
-
url: http://www.osvdb.org/show/osvdb/96425
|
5
|
-
title: redis-namespace Gem for Ruby contains a flaw in the method_missing implementation
|
6
|
-
date: 2013-08-03
|
7
|
-
description: |
|
8
|
-
redis-namespace Gem for Ruby contains a flaw in the method_missing implementation.
|
9
|
-
The issue is triggered when handling exec commands called via send(). This may allow a
|
10
|
-
remote attacker to execute arbitrary commands.
|
11
|
-
cvss_v2:
|
12
|
-
patched_versions:
|
13
|
-
- ">= 1.3.1"
|
14
|
-
- ">= 1.2.2"
|
15
|
-
- ">= 1.1.1"
|
16
|
-
- ">= 1.0.4"
|
@@ -1,14 +0,0 @@
|
|
1
|
-
---
|
2
|
-
gem: rgpg
|
3
|
-
osvdb: 95948
|
4
|
-
cve: 2013-4203
|
5
|
-
url: http://www.osvdb.org/show/osvdb/95948
|
6
|
-
title: Ruby rgpg Gem Shell Command Injection Vulnerabilities
|
7
|
-
date: 2013-08-02
|
8
|
-
description: |
|
9
|
-
rgpg Gem for Ruby contains a flaw in the GpgHelper module (lib/rgpg/gpg_helper.rb).
|
10
|
-
The issue is due to the program failing to properly sanitize user-supplied input before being used in the system() function for execution.
|
11
|
-
This may allow a remote attacker to execute arbitrary commands.
|
12
|
-
cvss_v2: 7.5
|
13
|
-
patched_versions:
|
14
|
-
- ">= 0.2.3"
|
@@ -1,11 +0,0 @@
|
|
1
|
-
---
|
2
|
-
gem: ruby_parser
|
3
|
-
cve: 2013-0162
|
4
|
-
osvdb: 90561
|
5
|
-
url: http://osvdb.org/show/osvdb/90561
|
6
|
-
title: RubyGems ruby_parser (RP) Temporary File Symlink Arbitrary File Overwrite
|
7
|
-
date: 2013-02-21
|
8
|
-
description: RubyGems ruby_parser (RP) contains a flaw as rubygem-ruby_parser creates temporary files insecurely. It is possible for a local attacker to use a symlink attack to cause the program to unexpectedly overwrite an arbitrary file.
|
9
|
-
cvss_v2: 2.1
|
10
|
-
patched_versions:
|
11
|
-
- ">= 3.1.2"
|
@@ -1,13 +0,0 @@
|
|
1
|
-
---
|
2
|
-
gem: sfpagent
|
3
|
-
cve:
|
4
|
-
osvdb: 105971
|
5
|
-
url: http://www.osvdb.org/show/osvdb/105971
|
6
|
-
title: sfpagent Gem for Ruby Remote Command Injection
|
7
|
-
date: 2014-04-16
|
8
|
-
description: sfpagent Gem for Ruby contains a flaw that is triggered as JSON[body]
|
9
|
-
input is not properly sanitized when handling module names with shell metacharacters.
|
10
|
-
This may allow a context-dependent attacker to execute arbitrary commands.
|
11
|
-
cvss_v2:
|
12
|
-
patched_versions:
|
13
|
-
- ">= 0.4.15"
|
@@ -1,13 +0,0 @@
|
|
1
|
-
---
|
2
|
-
gem: sounder
|
3
|
-
cve: 2013-5647
|
4
|
-
osvdb: 96278
|
5
|
-
url: http://www.osvdb.org/show/osvdb/96278
|
6
|
-
title: Sounder Gem for Ruby File Name Handling Arbitrary Command Execution
|
7
|
-
date: 2013-08-14
|
8
|
-
description: Sounder Gem for Ruby contains a flaw that is triggered during the handling
|
9
|
-
of file names. This may allow a context-dependent attacker to execute arbitrary
|
10
|
-
commands.
|
11
|
-
cvss_v2: 7.5
|
12
|
-
patched_versions:
|
13
|
-
- '>= 1.0.2'
|
@@ -1,11 +0,0 @@
|
|
1
|
-
---
|
2
|
-
gem: spree
|
3
|
-
cve: 2013-1656
|
4
|
-
osvdb: 91216
|
5
|
-
url: http://osvdb.org/show/osvdb/91216
|
6
|
-
title: Spree promotion_actions_controller.rb promotion_action Parameter Arbitrary Ruby Object Instantiation Command Execution
|
7
|
-
date: 2013-02-21
|
8
|
-
description: Spree contains a flaw that is triggered when handling input passed via the 'promotion_action' parameter to promotion_actions_controller.rb. This may allow a remote authenticated attacker to instantiate arbitrary Ruby objects and potentially execute arbitrary commands.
|
9
|
-
cvss_v2: 4.3
|
10
|
-
patched_versions:
|
11
|
-
- ">= 2.0.0"
|
@@ -1,11 +0,0 @@
|
|
1
|
-
---
|
2
|
-
gem: spree
|
3
|
-
cve: 2013-1656
|
4
|
-
osvdb: 91217
|
5
|
-
url: http://osvdb.org/show/osvdb/91217
|
6
|
-
title: Spree payment_methods_controller.rb payment_method Parameter Arbitrary Ruby Object Instantiation Command Execution
|
7
|
-
date: 2013-02-21
|
8
|
-
description: Spree contains a flaw that is triggered when handling input passed via the 'payment_method' parameter to payment_methods_controller.rb. This may allow a remote authenticated attacker to instantiate arbitrary Ruby objects and potentially execute arbitrary commands.
|
9
|
-
cvss_v2: 4.3
|
10
|
-
patched_versions:
|
11
|
-
- ">= 2.0.0"
|
@@ -1,11 +0,0 @@
|
|
1
|
-
---
|
2
|
-
gem: spree
|
3
|
-
cve: 2013-1656
|
4
|
-
osvdb: 91218
|
5
|
-
url: http://osvdb.org/show/osvdb/91218
|
6
|
-
title: Spree promotions_controller.rb calculator_type Parameter Arbitrary Ruby Object Instantiation Command Execution
|
7
|
-
date: 2013-02-21
|
8
|
-
description: Spree contains a flaw that is triggered when handling input passed via the 'calculator_type' parameter to promotions_controller.rb. This may allow a remote authenticated attacker to instantiate arbitrary Ruby objects and potentially execute arbitrary commands.
|
9
|
-
cvss_v2: 4.3
|
10
|
-
patched_versions:
|
11
|
-
- ">= 2.0.0"
|
@@ -1,11 +0,0 @@
|
|
1
|
-
---
|
2
|
-
gem: spree
|
3
|
-
cve: 2013-1656
|
4
|
-
osvdb: 91219
|
5
|
-
url: http://osvdb.org/show/osvdb/91219
|
6
|
-
title: Spree promotion_rules_controller.rb promotion_rule Parameter Arbitrary Ruby Object Instantiation Command Execution
|
7
|
-
date: 2013-02-21
|
8
|
-
description: Spree contains a flaw that is triggered when handling input passed via the 'promotion_rule' parameter to promotion_rules_controller.rb. This may allow a remote authenticated attacker to instantiate arbitrary Ruby objects and potentially execute arbitrary commands.
|
9
|
-
cvss_v2: 4.3
|
10
|
-
patched_versions:
|
11
|
-
- ">= 2.0.0"
|
@@ -1,14 +0,0 @@
|
|
1
|
-
---
|
2
|
-
gem: sprout
|
3
|
-
cve: 2013-6421
|
4
|
-
osvdb: 100598
|
5
|
-
url: http://www.osvdb.org/show/osvdb/100598
|
6
|
-
title: Sprout Gem for Ruby contains a flaw
|
7
|
-
date: 2013-12-02
|
8
|
-
description: sprout Gem for Ruby contains a flaw in the unpack_zip() function in archive_unpacker.rb.
|
9
|
-
The issue is due to the program failing to properly sanitize input passed via the 'zip_file', 'dir',
|
10
|
-
'zip_name', and 'output' parameters. This may allow a context-dependent attacker to execute arbitrary code.
|
11
|
-
cvss_v2: 7.5
|
12
|
-
patched_versions:
|
13
|
-
unaffected_versions:
|
14
|
-
- '< 0.7.246'
|
@@ -1,10 +0,0 @@
|
|
1
|
-
---
|
2
|
-
gem: thumbshooter
|
3
|
-
cve: 2013-1898
|
4
|
-
osvdb: 91839
|
5
|
-
url: http://osvdb.org/show/osvdb/91839
|
6
|
-
title: Thumbshooter Gem for Ruby thumbshooter.rb URL Shell Metacharacter Injection Arbitrary Command Execution
|
7
|
-
date: 2013-03-26
|
8
|
-
description: Thumbshooter Gem for Ruby contains a flaw that is due to the program failing to properly sanitize input passed to thumbshooter.rb. With a specially crafted URL that contains shell metacharacters, a context-dependent attacker can execute arbitrary commands.
|
9
|
-
cvss_v2: 7.5
|
10
|
-
patched_versions:
|
@@ -1,11 +0,0 @@
|
|
1
|
-
---
|
2
|
-
gem: webbynode
|
3
|
-
osvdb: 100920
|
4
|
-
url: http://osvdb.org/show/osvdb/100920
|
5
|
-
title: Webbynode Gem for Ruby contains a flaw
|
6
|
-
date: 2013-12-12
|
7
|
-
description: Webbynode Gem for Ruby contains a flaw in notify.rb that is triggered
|
8
|
-
when handling a specially crafted growlnotify message. This may allow a
|
9
|
-
context-dependent attacker to execute arbitrary commands.
|
10
|
-
cvss_v2: 7.5
|
11
|
-
patched_versions:
|
@@ -1,14 +0,0 @@
|
|
1
|
-
---
|
2
|
-
gem: wicked
|
3
|
-
cve: 2013-4413
|
4
|
-
osvdb: 98270
|
5
|
-
url: http://www.osvdb.org/show/osvdb/98270
|
6
|
-
title: Wicked Gem for Ruby contains a flaw
|
7
|
-
date: 2013-10-08
|
8
|
-
description: Wicked Gem for Ruby contains a flaw that is due to the program
|
9
|
-
failing to properly sanitize input passed via the 'the_step' parameter
|
10
|
-
upon submission to the render_redirect.rb script.
|
11
|
-
This may allow a remote attacker to gain access to arbitrary files.
|
12
|
-
cvss_v2:
|
13
|
-
patched_versions:
|
14
|
-
- '>= 1.0.1'
|
@@ -1,15 +0,0 @@
|
|
1
|
-
---
|
2
|
-
gem: will_paginate
|
3
|
-
osvdb: 101138
|
4
|
-
cve: 2013-6459
|
5
|
-
url: http://osvdb.org/show/osvdb/101138
|
6
|
-
title: will_paginate Gem for Ruby Generated Pagination Link Unspecified XSS
|
7
|
-
date: 2013-09-19
|
8
|
-
description: will_paginate Gem for Ruby contains a flaw that allows a cross-site scripting (XSS) attack.
|
9
|
-
This flaw exists because the application does not validate certain unspecified input related to
|
10
|
-
generated pagination links before returning it to the user. This may allow an attacker to create
|
11
|
-
a specially crafted request that would execute arbitrary script code in a users browser within the
|
12
|
-
trust relationship between their browser and the server.
|
13
|
-
cvss_v2: 4.3
|
14
|
-
patched_versions:
|
15
|
-
- ">= 3.0.5"
|
@@ -1,87 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'bundler/setup'
|
3
|
-
|
4
|
-
require 'pry'
|
5
|
-
require 'mechanize'
|
6
|
-
require 'yaml'
|
7
|
-
require 'date'
|
8
|
-
|
9
|
-
class OSVDB
|
10
|
-
attr_accessor :osvdb, :cve, :title, :description, :date, :cvss_v2, :gem, :url, :patched_versions, :page
|
11
|
-
def initialize(url)
|
12
|
-
self.url = url
|
13
|
-
parse!
|
14
|
-
end
|
15
|
-
|
16
|
-
def parse!
|
17
|
-
mech = Mechanize.new
|
18
|
-
self.page = mech.get(url)
|
19
|
-
|
20
|
-
page.search(".show_vuln_table").search("td ul li").each do |li|
|
21
|
-
case li.children[0].text.strip
|
22
|
-
when "CVE ID:"
|
23
|
-
self.cve = li.children[1].text
|
24
|
-
when "Vendor URL:"
|
25
|
-
self.set_gem(li.children[1].text)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
self.description = page.search(".show_vuln_table").search("tr td tr .white_content p")[0].text
|
30
|
-
self.date = page.search(".show_vuln_table").search("tr td tr .white_content tr td")[0].text
|
31
|
-
self.title = page.search("title").text.gsub(/\d+: /, "")
|
32
|
-
self.osvdb = page.search("title").text.match(/\d+/)[0]
|
33
|
-
if cvss_p = page.search(".show_vuln_table").search("tr td tr .white_content div p")[0]
|
34
|
-
self.set_cvss(cvss_p.children[0].text)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
def set_gem(vendortext)
|
39
|
-
["https://rubygems.org/gems/", "http://rubygems.org/gems/"].each do |str|
|
40
|
-
if vendortext.match(str)
|
41
|
-
self.gem = vendortext.gsub(str,"")
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def set_cvss(text)
|
47
|
-
self.cvss_v2 = text.strip.gsub("CVSSv2 Base Score = ", "")
|
48
|
-
end
|
49
|
-
|
50
|
-
def date
|
51
|
-
Date.parse(@date)
|
52
|
-
end
|
53
|
-
|
54
|
-
def cvss_v2
|
55
|
-
@cvss_v2.nil? ? nil : @cvss_v2.to_f
|
56
|
-
end
|
57
|
-
|
58
|
-
def gem
|
59
|
-
@gem.nil? ? "unknown" : @gem
|
60
|
-
end
|
61
|
-
|
62
|
-
def to_yaml
|
63
|
-
{ 'gem' => gem,
|
64
|
-
'cve' => cve,
|
65
|
-
'osvdb' => osvdb.to_i,
|
66
|
-
'url' => url,
|
67
|
-
'title' => title,
|
68
|
-
'date' => date,
|
69
|
-
'description' => description,
|
70
|
-
'cvss_v2' => cvss_v2,
|
71
|
-
'patched_versions' => patched_versions }.to_yaml
|
72
|
-
end
|
73
|
-
|
74
|
-
def filename
|
75
|
-
"OSVDB-#{osvdb}.yml"
|
76
|
-
end
|
77
|
-
|
78
|
-
def to_advisory!
|
79
|
-
gems_path = File.join(File.dirname(__FILE__), "..", "gems")
|
80
|
-
adv_path = File.absolute_path(File.join(gems_path, self.gem))
|
81
|
-
|
82
|
-
FileUtils.mkdir(adv_path) unless File.exists?(adv_path)
|
83
|
-
File.open(File.join(adv_path, filename), "w") do |io|
|
84
|
-
io.puts self.to_yaml
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|
@@ -1,165 +0,0 @@
|
|
1
|
-
load File.join(File.dirname(__FILE__), 'spec_helper.rb')
|
2
|
-
require 'yaml'
|
3
|
-
|
4
|
-
shared_examples_for 'Advisory' do |path|
|
5
|
-
advisory = YAML.load_file(path)
|
6
|
-
|
7
|
-
describe path do
|
8
|
-
let(:gem) { File.basename(File.dirname(path)) }
|
9
|
-
let(:filename_cve) do
|
10
|
-
if File.basename(path).start_with?('CVE-')
|
11
|
-
File.basename(path).gsub('CVE-','').chomp('.yml')
|
12
|
-
else
|
13
|
-
nil
|
14
|
-
end
|
15
|
-
end
|
16
|
-
let(:filename_osvdb) do
|
17
|
-
if File.basename(path).start_with?('OSVDB-')
|
18
|
-
File.basename(path).gsub('OSVDB-','').chomp('.yml')
|
19
|
-
else
|
20
|
-
nil
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
it "should have CVE or OSVDB" do
|
25
|
-
(advisory['cve'] || advisory['osvdb']).should_not be_nil
|
26
|
-
end
|
27
|
-
|
28
|
-
describe "gem" do
|
29
|
-
subject { advisory['gem'] }
|
30
|
-
|
31
|
-
it { should be_kind_of(String) }
|
32
|
-
it { should == gem }
|
33
|
-
end
|
34
|
-
|
35
|
-
describe "framework" do
|
36
|
-
subject { advisory['framework'] }
|
37
|
-
|
38
|
-
it "may be nil or a String" do
|
39
|
-
[NilClass, String].should include(subject.class)
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
describe "platform" do
|
44
|
-
subject { advisory['platform'] }
|
45
|
-
|
46
|
-
it "may be nil or a String" do
|
47
|
-
[NilClass, String].should include(subject.class)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
describe "cve" do
|
52
|
-
subject { advisory['cve'] }
|
53
|
-
|
54
|
-
it "may be nil or a String" do
|
55
|
-
[NilClass, String].should include(subject.class)
|
56
|
-
end
|
57
|
-
it "should be id in filename if filename is CVE-XXX" do
|
58
|
-
if filename_cve
|
59
|
-
should == filename_cve
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
describe "osvdb" do
|
65
|
-
subject { advisory['osvdb'] }
|
66
|
-
it "may be nil or a Fixnum" do
|
67
|
-
[NilClass, Fixnum].should include(subject.class)
|
68
|
-
end
|
69
|
-
it "should be id in filename if filename is OSVDB-XXX" do
|
70
|
-
if filename_osvdb
|
71
|
-
should == filename_osvdb.to_i
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
describe "url" do
|
77
|
-
subject { advisory['url'] }
|
78
|
-
|
79
|
-
it { should be_kind_of(String) }
|
80
|
-
it { should_not be_empty }
|
81
|
-
end
|
82
|
-
|
83
|
-
describe "title" do
|
84
|
-
subject { advisory['title'] }
|
85
|
-
|
86
|
-
it { should be_kind_of(String) }
|
87
|
-
it { should_not be_empty }
|
88
|
-
end
|
89
|
-
|
90
|
-
describe "date" do
|
91
|
-
subject { advisory['date'] }
|
92
|
-
|
93
|
-
it { should be_kind_of(Date) }
|
94
|
-
end
|
95
|
-
|
96
|
-
describe "description" do
|
97
|
-
subject { advisory['description'] }
|
98
|
-
|
99
|
-
it { should be_kind_of(String) }
|
100
|
-
it { should_not be_empty }
|
101
|
-
end
|
102
|
-
|
103
|
-
describe "cvss_v2" do
|
104
|
-
subject { advisory['cvss_v2'] }
|
105
|
-
|
106
|
-
it "may be nil or a Float" do
|
107
|
-
[NilClass, Float].should include(subject.class)
|
108
|
-
end
|
109
|
-
|
110
|
-
case advisory['cvss_v2']
|
111
|
-
when Float
|
112
|
-
context "when a Float" do
|
113
|
-
it { ((0.0)..(10.0)).should include(subject) }
|
114
|
-
end
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
describe "patched_versions" do
|
119
|
-
subject { advisory['patched_versions'] }
|
120
|
-
|
121
|
-
it "may be nil or an Array" do
|
122
|
-
[NilClass, Array].should include(subject.class)
|
123
|
-
end
|
124
|
-
|
125
|
-
describe "each patched version" do
|
126
|
-
if advisory['patched_versions']
|
127
|
-
advisory['patched_versions'].each do |version|
|
128
|
-
describe version do
|
129
|
-
subject { version.split(', ') }
|
130
|
-
|
131
|
-
it "should contain valid RubyGem version requirements" do
|
132
|
-
lambda {
|
133
|
-
Gem::Requirement.new(*subject)
|
134
|
-
}.should_not raise_error
|
135
|
-
end
|
136
|
-
end
|
137
|
-
end
|
138
|
-
end
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
|
-
describe "unaffected_versions" do
|
143
|
-
subject { advisory['unaffected_versions'] }
|
144
|
-
|
145
|
-
it "may be nil or an Array" do
|
146
|
-
[NilClass, Array].should include(subject.class)
|
147
|
-
end
|
148
|
-
|
149
|
-
case advisory['unaffected_versions']
|
150
|
-
when Array
|
151
|
-
advisory['unaffected_versions'].each do |version|
|
152
|
-
describe version do
|
153
|
-
subject { version.split(', ') }
|
154
|
-
|
155
|
-
it "should contain valid RubyGem version requirements" do
|
156
|
-
lambda {
|
157
|
-
Gem::Requirement.new(*subject)
|
158
|
-
}.should_not raise_error
|
159
|
-
end
|
160
|
-
end
|
161
|
-
end
|
162
|
-
end
|
163
|
-
end
|
164
|
-
end
|
165
|
-
end
|