dawnscanner 1.3.1 → 1.3.5
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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/BUGS.md +14 -0
- data/Changelog.md +27 -1
- data/KnowledgeBase.md +19 -2
- data/LICENSE.txt +2 -2
- data/README.md +2 -2
- data/Rakefile +100 -0
- data/Roadmap.md +25 -11
- data/VERSION +16 -0
- data/bin/dawn +9 -5
- data/checksum/dawnscanner-1.3.1.gem.sha1 +1 -0
- data/dawnscanner.gemspec +5 -6
- data/lib/dawn/kb/basic_check.rb +25 -10
- data/lib/dawn/kb/cve_2004_0755.rb +3 -0
- data/lib/dawn/kb/cve_2004_0983.rb +3 -0
- data/lib/dawn/kb/cve_2005_1992.rb +3 -0
- data/lib/dawn/kb/cve_2005_2337.rb +3 -0
- data/lib/dawn/kb/cve_2006_3694.rb +2 -0
- data/lib/dawn/kb/cve_2007_0469.rb +2 -0
- data/lib/dawn/kb/cve_2007_5380.rb +2 -0
- data/lib/dawn/kb/cve_2007_6077.rb +2 -0
- data/lib/dawn/kb/cve_2007_6612.rb +2 -0
- data/lib/dawn/kb/cve_2013_6416.rb +1 -1
- data/lib/dawn/kb/cve_2015_1840/cve_2015_1840_a.rb +28 -0
- data/lib/dawn/kb/cve_2015_1840/cve_2015_1840_b.rb +28 -0
- data/lib/dawn/kb/cve_2015_2963.rb +27 -0
- data/lib/dawn/kb/cve_2015_3224.rb +26 -0
- data/lib/dawn/kb/cve_2015_3225.rb +28 -0
- data/lib/dawn/kb/cve_2015_3226.rb +27 -0
- data/lib/dawn/kb/cve_2015_3227.rb +27 -0
- data/lib/dawn/kb/osvdb_118579.rb +31 -0
- data/lib/dawn/kb/osvdb_118830.rb +32 -0
- data/lib/dawn/kb/osvdb_118954.rb +31 -0
- data/lib/dawn/kb/osvdb_119878.rb +32 -0
- data/lib/dawn/kb/osvdb_119927.rb +33 -0
- data/lib/dawn/kb/owasp_ror_cheatsheet/session_stored_in_database.rb +1 -1
- data/lib/dawn/knowledge_base.rb +34 -0
- data/lib/dawn/logger.rb +16 -0
- data/lib/dawn/reporter.rb +19 -19
- data/lib/dawn/utils.rb +2 -2
- data/lib/dawn/version.rb +5 -24
- data/lib/dawnscanner.rb +2 -1
- data/spec/lib/dawn/codesake_knowledgebase_spec.rb +66 -15
- data/spec/lib/kb/cve_2015_1840_spec.rb +35 -0
- data/spec/lib/kb/cve_2015_2963_spec.rb +17 -0
- data/spec/lib/kb/cve_2015_3224_spec.rb +16 -0
- data/spec/lib/kb/cve_2015_3225_spec.rb +23 -0
- data/spec/lib/kb/cve_2015_3226_spec.rb +29 -0
- data/spec/lib/kb/cve_2015_3227_spec.rb +23 -0
- data/spec/lib/kb/osvdb_118579_spec.rb +8 -0
- data/spec/lib/kb/osvdb_118830_spec.rb +16 -0
- data/spec/lib/kb/osvdb_118954_spec.rb +8 -0
- data/spec/lib/kb/osvdb_119878_spec.rb +17 -0
- data/spec/lib/kb/osvdb_119927_spec.rb +16 -0
- data/spec/spec_helper.rb +3 -2
- metadata +63 -21
- metadata.gz.sig +0 -0
@@ -20,7 +20,7 @@
|
|
20
20
|
:avoid_comments=>true,
|
21
21
|
:check_family=>:owasp_ror_cheatsheet,
|
22
22
|
:severity=>:info,
|
23
|
-
:evidences=>["In your session_store.rb file you are not using
|
23
|
+
:evidences=>["In your session_store.rb file you are not using ActiveRecord to store session data. This will let rails to use a cookie based session and it can expose your web application to a session replay attack."],
|
24
24
|
:mitigation=>"Use ActiveRecord or the ORM you love most to handle your code session_store. Add \"Application.config.session_store :active_record_store\" to your session_store.rb file."
|
25
25
|
})
|
26
26
|
# @debug = true
|
data/lib/dawn/knowledge_base.rb
CHANGED
@@ -221,6 +221,21 @@ require "dawn/kb/cve_2014_2538"
|
|
221
221
|
require "dawn/kb/cve_2014_3482"
|
222
222
|
require "dawn/kb/cve_2014_3483"
|
223
223
|
|
224
|
+
# CVE - 2015
|
225
|
+
|
226
|
+
|
227
|
+
# CVE-2015-1840 is spread in two classes because a single CVE is assigned to a
|
228
|
+
# vulnerability affecting two differents but related gems. An idiot hack to
|
229
|
+
# mitigate an idiot decision.
|
230
|
+
require "dawn/kb/cve_2015_1840/cve_2015_1840_a"
|
231
|
+
require "dawn/kb/cve_2015_1840/cve_2015_1840_b"
|
232
|
+
require "dawn/kb/cve_2015_2963"
|
233
|
+
require "dawn/kb/cve_2015_3224"
|
234
|
+
require "dawn/kb/cve_2015_3225"
|
235
|
+
require "dawn/kb/cve_2015_3226"
|
236
|
+
require "dawn/kb/cve_2015_3227"
|
237
|
+
|
238
|
+
|
224
239
|
# OSVDB
|
225
240
|
|
226
241
|
require "dawn/kb/osvdb_105971"
|
@@ -228,6 +243,12 @@ require "dawn/kb/osvdb_108569"
|
|
228
243
|
require "dawn/kb/osvdb_108570"
|
229
244
|
require "dawn/kb/osvdb_108530"
|
230
245
|
require "dawn/kb/osvdb_108563"
|
246
|
+
require "dawn/kb/osvdb_118579"
|
247
|
+
require "dawn/kb/osvdb_118830"
|
248
|
+
require "dawn/kb/osvdb_118954"
|
249
|
+
require "dawn/kb/osvdb_119878"
|
250
|
+
require "dawn/kb/osvdb_119927"
|
251
|
+
|
231
252
|
|
232
253
|
|
233
254
|
module Dawn
|
@@ -470,6 +491,14 @@ module Dawn
|
|
470
491
|
Dawn::Kb::CVE_2014_2538.new,
|
471
492
|
Dawn::Kb::CVE_2014_3482.new,
|
472
493
|
Dawn::Kb::CVE_2014_3483.new,
|
494
|
+
Dawn::Kb::CVE_2015_1840_a.new,
|
495
|
+
Dawn::Kb::CVE_2015_1840_b.new,
|
496
|
+
Dawn::Kb::CVE_2015_2963.new,
|
497
|
+
Dawn::Kb::CVE_2015_3224.new,
|
498
|
+
Dawn::Kb::CVE_2015_3225.new,
|
499
|
+
Dawn::Kb::CVE_2015_3226.new,
|
500
|
+
Dawn::Kb::CVE_2015_3227.new,
|
501
|
+
|
473
502
|
|
474
503
|
# OSVDB Checks are still here since are all about dependencies
|
475
504
|
Dawn::Kb::OSVDB_105971.new,
|
@@ -477,6 +506,11 @@ module Dawn
|
|
477
506
|
Dawn::Kb::OSVDB_108570.new,
|
478
507
|
Dawn::Kb::OSVDB_108530.new,
|
479
508
|
Dawn::Kb::OSVDB_108563.new,
|
509
|
+
Dawn::Kb::OSVDB_118579.new,
|
510
|
+
Dawn::Kb::OSVDB_118830.new,
|
511
|
+
Dawn::Kb::OSVDB_118954.new,
|
512
|
+
Dawn::Kb::OSVDB_119878.new,
|
513
|
+
Dawn::Kb::OSVDB_119927.new,
|
480
514
|
]
|
481
515
|
# END @cve_security_checks array
|
482
516
|
# START @owasp_ror_cheatsheet_checks array
|
data/lib/dawn/logger.rb
ADDED
data/lib/dawn/reporter.rb
CHANGED
@@ -227,34 +227,34 @@ module Dawn
|
|
227
227
|
|
228
228
|
def ascii_plain_report
|
229
229
|
|
230
|
-
$logger.
|
231
|
-
$logger.
|
232
|
-
$logger.
|
233
|
-
$logger.
|
230
|
+
$logger.info "scanning #{@engine.target}"
|
231
|
+
$logger.info "#{@engine.name} v#{@engine.get_mvc_version} detected" unless @engine.name == "Gemfile.lock"
|
232
|
+
$logger.info "#{@engine.force} v#{@engine.get_mvc_version} detected" if @engine.name == "Gemfile.lock"
|
233
|
+
$logger.info "applying all security checks"
|
234
234
|
if @ret
|
235
|
-
$logger.
|
235
|
+
$logger.info "#{@engine.applied_checks} security checks applied - #{@engine.skipped_checks} security checks skipped"
|
236
236
|
else
|
237
|
-
$logger.
|
237
|
+
$logger.error "no security checks in the knowledge base"
|
238
238
|
end
|
239
239
|
|
240
240
|
if @engine.count_vulnerabilities != 0
|
241
|
-
$logger.
|
241
|
+
$logger.info "#{@engine.count_vulnerabilities} vulnerabilities found"
|
242
242
|
@engine.vulnerabilities.each do |vuln|
|
243
|
-
$logger.
|
244
|
-
$logger.
|
245
|
-
$logger.
|
246
|
-
$logger.
|
247
|
-
$logger.
|
248
|
-
$logger.
|
243
|
+
$logger.error "#{vuln[:name]} check failed"
|
244
|
+
$logger.info "Severity: #{vuln[:severity]}"
|
245
|
+
$logger.info "Priority: #{vuln[:priority]}"
|
246
|
+
$logger.info "Description: #{vuln[:message]}"
|
247
|
+
$logger.info "Solution: #{vuln[:remediation]}"
|
248
|
+
$logger.info "Evidence:"
|
249
249
|
vuln[:evidences].each do |evidence|
|
250
|
-
$logger.
|
250
|
+
$logger.info "\t#{evidence}"
|
251
251
|
end
|
252
252
|
end
|
253
253
|
if @engine.has_reflected_xss?
|
254
|
-
$logger.
|
254
|
+
$logger.info "#{@engine.reflected_xss.count} reflected XSS found"
|
255
255
|
@engine.reflected_xss.each do |vuln|
|
256
|
-
$logger.
|
257
|
-
$logger.
|
256
|
+
$logger.info "request parameter \"#{vuln[:sink_source]}\" is used without escaping in #{vuln[:sink_view]}. It was read here: #{vuln[:sink_file]}@#{vuln[:sink_line]}"
|
257
|
+
$logger.error "evidence: #{vuln[:sink_evidence]}"
|
258
258
|
end
|
259
259
|
end
|
260
260
|
|
@@ -263,11 +263,11 @@ module Dawn
|
|
263
263
|
end
|
264
264
|
|
265
265
|
if @engine.mitigated_issues.count != 0
|
266
|
-
$logger.
|
266
|
+
$logger.info "#{@engine.mitigated_issues.count} mitigated vulnerabilities found"
|
267
267
|
@engine.mitigated_issues.each do |vuln|
|
268
268
|
$logger.ok "#{vuln[:name]} mitigated"
|
269
269
|
vuln[:evidences].each do |evidence|
|
270
|
-
$logger.
|
270
|
+
$logger.error evidence
|
271
271
|
end
|
272
272
|
end
|
273
273
|
end
|
data/lib/dawn/utils.rb
CHANGED
@@ -8,11 +8,11 @@ module Dawn
|
|
8
8
|
__debug_me_and_return(msg, false)
|
9
9
|
end
|
10
10
|
def debug_me(msg)
|
11
|
-
$logger.
|
11
|
+
$logger.debug(msg) if @debug
|
12
12
|
end
|
13
13
|
|
14
14
|
def __debug_me_and_return(msg, status)
|
15
|
-
$logger.
|
15
|
+
$logger.debug(msg) if @debug
|
16
16
|
return status
|
17
17
|
end
|
18
18
|
end
|
data/lib/dawn/version.rb
CHANGED
@@ -1,26 +1,7 @@
|
|
1
1
|
module Dawn
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
# him too, # this is a kinda sort of tribute of my son's passion.
|
8
|
-
#
|
9
|
-
# Future releases
|
10
|
-
#
|
11
|
-
# | Character | Release |
|
12
|
-
# |-----------------|---------|
|
13
|
-
# | "Tow Mater" | 2.0.0 |
|
14
|
-
# | "Finn McMissile"| 3.0.0 |
|
15
|
-
# | "Fillmore" | 4.0.0 |
|
16
|
-
# |"Holly Shiftwell"| 5.0.0 |
|
17
|
-
# | "Guido" | 6.0.0 |
|
18
|
-
# | "Luigi" | 7.0.0 |
|
19
|
-
# | "Doc Hudson" | 8.0.0 |
|
20
|
-
|
21
|
-
VERSION = "1.3.1"
|
22
|
-
CODENAME = "Lightning McQueen"
|
23
|
-
# RELEASE = "(development)"
|
24
|
-
RELEASE = "20150219"
|
25
|
-
|
2
|
+
VERSION = "1.3.5"
|
3
|
+
CODENAME = "Lightning McQueen"
|
4
|
+
RELEASE = "20150729"
|
5
|
+
BUILD = "31"
|
6
|
+
COMMIT = "ge32c804"
|
26
7
|
end
|
data/lib/dawnscanner.rb
CHANGED
@@ -910,31 +910,82 @@ describe "The Codesake Dawn knowledge base" do
|
|
910
910
|
end
|
911
911
|
|
912
912
|
it "must have test for OSVDB-108570" do
|
913
|
-
|
914
|
-
|
915
|
-
|
913
|
+
sc = kb.find("OSVDB-108570")
|
914
|
+
sc.should_not be_nil
|
915
|
+
sc.class.should == Dawn::Kb::OSVDB_108570
|
916
916
|
end
|
917
917
|
|
918
918
|
it "must have test for OSVDB-108530" do
|
919
|
-
|
920
|
-
|
921
|
-
|
919
|
+
sc = kb.find("OSVDB-108530")
|
920
|
+
sc.should_not be_nil
|
921
|
+
sc.class.should == Dawn::Kb::OSVDB_108530
|
922
922
|
end
|
923
923
|
it "must have test for OSVDB-108563" do
|
924
|
-
|
925
|
-
|
926
|
-
|
924
|
+
sc = kb.find("OSVDB-108563")
|
925
|
+
sc.should_not be_nil
|
926
|
+
sc.class.should == Dawn::Kb::OSVDB_108563
|
927
927
|
end
|
928
928
|
|
929
929
|
it "must have test for CVE-2014-3482" do
|
930
|
-
|
931
|
-
|
932
|
-
|
930
|
+
sc = kb.find("CVE-2014-3482")
|
931
|
+
sc.should_not be_nil
|
932
|
+
sc.class.should == Dawn::Kb::CVE_2014_3482
|
933
933
|
end
|
934
934
|
|
935
935
|
it "must have test for CVE-2014-3483" do
|
936
|
-
|
937
|
-
|
938
|
-
|
936
|
+
sc = kb.find("CVE-2014-3483")
|
937
|
+
sc.should_not be_nil
|
938
|
+
sc.class.should == Dawn::Kb::CVE_2014_3483
|
939
|
+
end
|
940
|
+
it "must have test for OSVDB_119927" do
|
941
|
+
sc = kb.find("OSVDB_119927")
|
942
|
+
sc.should_not be_nil
|
943
|
+
sc.class.should == Dawn::Kb::OSVDB_119927
|
944
|
+
end
|
945
|
+
it "must have test for OSVDB_119878" do
|
946
|
+
sc = kb.find("OSVDB_119878")
|
947
|
+
sc.should_not be_nil
|
948
|
+
sc.class.should == Dawn::Kb::OSVDB_119878
|
949
|
+
end
|
950
|
+
it "must have test for OSVDB_118954" do
|
951
|
+
sc = kb.find("OSVDB_118954")
|
952
|
+
sc.should_not be_nil
|
953
|
+
sc.class.should == Dawn::Kb::OSVDB_118954
|
954
|
+
end
|
955
|
+
it "must have test for OSVDB_118579" do
|
956
|
+
sc = kb.find("OSVDB_118579")
|
957
|
+
sc.should_not be_nil
|
958
|
+
sc.class.should == Dawn::Kb::OSVDB_118579
|
959
|
+
end
|
960
|
+
it "must have test for OSVDB_118830" do
|
961
|
+
sc = kb.find("OSVDB_118830")
|
962
|
+
sc.should_not be_nil
|
963
|
+
sc.class.should == Dawn::Kb::OSVDB_118830
|
964
|
+
end
|
965
|
+
it "must have test for CVE-2015-3224" do
|
966
|
+
sc = kb.find("CVE-2015-3224")
|
967
|
+
sc.should_not be_nil
|
968
|
+
sc.class.should == Dawn::Kb::CVE_2015_3224
|
969
|
+
end
|
970
|
+
it "must have test for CVE-2015-3225" do
|
971
|
+
sc = kb.find("CVE-2015-3225")
|
972
|
+
sc.should_not be_nil
|
973
|
+
sc.class.should == Dawn::Kb::CVE_2015_3225
|
974
|
+
end
|
975
|
+
it "must have test for CVE-2015-3227" do
|
976
|
+
sc = kb.find("CVE-2015-3227")
|
977
|
+
sc.should_not be_nil
|
978
|
+
sc.class.should == Dawn::Kb::CVE_2015_3227
|
979
|
+
end
|
980
|
+
it "must have test for CVE-2015-3226" do
|
981
|
+
sc = kb.find("CVE-2015-3226")
|
982
|
+
sc.should_not be_nil
|
983
|
+
sc.class.should == Dawn::Kb::CVE_2015_3226
|
984
|
+
end
|
985
|
+
it "must have test for CVE-2015-2963" do
|
986
|
+
sc = kb.find("CVE-2015-2963")
|
987
|
+
sc.should_not be_nil
|
988
|
+
sc.class.should == Dawn::Kb::CVE_2015_2963
|
939
989
|
end
|
990
|
+
it "CVE-2015-1840 can't be tested. Trust me. It works"
|
940
991
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
describe "The CVE-2015-1840 vulnerability" do
|
3
|
+
before(:all) do
|
4
|
+
@check_a = Dawn::Kb::CVE_2015_1840_a.new
|
5
|
+
@check_b = Dawn::Kb::CVE_2015_1840_b.new
|
6
|
+
end
|
7
|
+
it "is reported when vulnerable jquery-rails gem is used (3.1.2)" do
|
8
|
+
@check_a.dependencies = [{:name=>"jquery-rails", :version=>'3.1.2'}]
|
9
|
+
@check_a.vuln?.should == true
|
10
|
+
end
|
11
|
+
it "is reported when vulnerable jquery-rails gem is used 4.0.1)" do
|
12
|
+
@check_a.dependencies = [{:name=>"jquery-rails", :version=>'4.0.1'}]
|
13
|
+
@check_a.vuln?.should == true
|
14
|
+
end
|
15
|
+
it "is reported when vulnerable jquery-ujs gem is used 1.0.3)" do
|
16
|
+
@check_b.dependencies = [{:name=>"jquery-ujs", :version=>'1.0.3'}]
|
17
|
+
@check_b.vuln?.should == true
|
18
|
+
end
|
19
|
+
|
20
|
+
it "is reported when vulnerable jquery-rails gem is used (3.1.3)" do
|
21
|
+
@check_a.dependencies = [{:name=>"jquery-rails", :version=>'3.1.3'}]
|
22
|
+
@check_a.vuln?.should == false
|
23
|
+
end
|
24
|
+
it "is reported when vulnerable jquery-rails gem is used 4.0.2)" do
|
25
|
+
@check_a.dependencies = [{:name=>"jquery-rails", :version=>'4.0.2'}]
|
26
|
+
@check_a.vuln?.should == false
|
27
|
+
end
|
28
|
+
it "is reported when vulnerable jquery-ujs gem is used 1.0.4)" do
|
29
|
+
@check_b.dependencies = [{:name=>"jquery-ujs", :version=>'1.0.4'}]
|
30
|
+
@check_b.vuln?.should == false
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
describe "The CVE-2015-2963 vulnerability" do
|
3
|
+
before(:all) do
|
4
|
+
@check = Dawn::Kb::CVE_2015_2963.new
|
5
|
+
# @check.debug = true
|
6
|
+
end
|
7
|
+
it "is reported when vulnerable paperclip gem is used 4.2.1)" do
|
8
|
+
@check.dependencies = [{:name=>"paperclip", :version=>'4.2.1'}]
|
9
|
+
@check.vuln?.should == true
|
10
|
+
end
|
11
|
+
|
12
|
+
it "is reported when not vulnerable paperclip gem is used (4.2.2)" do
|
13
|
+
@check.dependencies = [{:name=>"paperclip", :version=>'4.2.2'}]
|
14
|
+
@check.vuln?.should == false
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
describe "The CVE-2015-3224 vulnerability" do
|
3
|
+
before(:all) do
|
4
|
+
@check = Dawn::Kb::CVE_2015_3224.new
|
5
|
+
# @check.debug = true
|
6
|
+
end
|
7
|
+
it "is reported when vulnerable web-console gem is used (2.1.2)" do
|
8
|
+
@check.dependencies = [{:name=>"web-console", :version=>'2.1.2'}]
|
9
|
+
@check.vuln?.should == true
|
10
|
+
end
|
11
|
+
it "is not reported when safe rack gem is used (2.1.3)" do
|
12
|
+
@check.dependencies = [{:name=>"web-console", :version=>'2.1.3'}]
|
13
|
+
@check.vuln?.should == false
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
describe "The CVE-2015-3225 vulnerability" do
|
3
|
+
before(:all) do
|
4
|
+
@check = Dawn::Kb::CVE_2015_3225.new
|
5
|
+
# @check.debug = true
|
6
|
+
end
|
7
|
+
it "is reported when vulnerable rack gem is used (1.5.3)" do
|
8
|
+
@check.dependencies = [{:name=>"rack", :version=>'1.5.3'}]
|
9
|
+
@check.vuln?.should == true
|
10
|
+
end
|
11
|
+
it "is reported when vulnerable rack gem is used (1.6.1)" do
|
12
|
+
@check.dependencies = [{:name=>"rack", :version=>'1.6.1'}]
|
13
|
+
@check.vuln?.should == true
|
14
|
+
end
|
15
|
+
it "is not reported when safe rack gem is used (1.5.4)" do
|
16
|
+
@check.dependencies = [{:name=>"rack", :version=>'1.5.4'}]
|
17
|
+
@check.vuln?.should == false
|
18
|
+
end
|
19
|
+
it "is not reported when safe rack gem is used (1.6.3)" do
|
20
|
+
@check.dependencies = [{:name=>"rack", :version=>'1.6.3'}]
|
21
|
+
@check.vuln?.should == false
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
describe "The CVE-2015-3226 vulnerability" do
|
3
|
+
before(:all) do
|
4
|
+
@check = Dawn::Kb::CVE_2015_3226.new
|
5
|
+
# @check.debug = true
|
6
|
+
end
|
7
|
+
|
8
|
+
it "is reported when vulnerable active_support gem is used (3.x.x)" do
|
9
|
+
@check.dependencies = [{:name=>"activesupport", :version=>'3.2.11'}]
|
10
|
+
@check.vuln?.should == true
|
11
|
+
end
|
12
|
+
it "is reported when vulnerable active_support gem is used (4.1.11)" do
|
13
|
+
@check.dependencies = [{:name=>"activesupport", :version=>'4.1.11'}]
|
14
|
+
@check.vuln?.should == true
|
15
|
+
end
|
16
|
+
it "is reported when vulnerable active_support gem is used (4.2.2)" do
|
17
|
+
@check.dependencies = [{:name=>"activesupport", :version=>'4.2.2'}]
|
18
|
+
@check.vuln?.should == true
|
19
|
+
end
|
20
|
+
it "is not reported when safe active_support gem is used (4.1.12)" do
|
21
|
+
@check.dependencies = [{:name=>"activesupport", :version=>'4.1.12'}]
|
22
|
+
@check.vuln?.should == false
|
23
|
+
end
|
24
|
+
it "is not reported when safe active_support gem is used (4.2.3)" do
|
25
|
+
@check.dependencies = [{:name=>"activesupport", :version=>'4.2.3'}]
|
26
|
+
@check.vuln?.should == false
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
describe "The CVE-2015-3227 vulnerability" do
|
3
|
+
before(:all) do
|
4
|
+
@check = Dawn::Kb::CVE_2015_3227.new
|
5
|
+
@check.debug = true
|
6
|
+
end
|
7
|
+
it "is reported when vulnerable active_support gem is used (4.1.11)" do
|
8
|
+
@check.dependencies = [{:name=>"activesupport", :version=>'4.1.11'}]
|
9
|
+
@check.vuln?.should == true
|
10
|
+
end
|
11
|
+
it "is reported when vulnerable active_support gem is used (4.2.2)" do
|
12
|
+
@check.dependencies = [{:name=>"activesupport", :version=>'4.2.2'}]
|
13
|
+
@check.vuln?.should == true
|
14
|
+
end
|
15
|
+
it "is not reported when safe active_support gem is used (4.1.12)" do
|
16
|
+
@check.dependencies = [{:name=>"activesupport", :version=>'4.1.12'}]
|
17
|
+
@check.vuln?.should == false
|
18
|
+
end
|
19
|
+
it "is not reported when safe active_support gem is used (4.2.3)" do
|
20
|
+
@check.dependencies = [{:name=>"activesupport", :version=>'4.2.3'}]
|
21
|
+
@check.vuln?.should == false
|
22
|
+
end
|
23
|
+
end
|