dawnscanner 2.1.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b54d897767ce4e5a5e565205cafb15af72ae9bf92079718dfa416d8fcc4900cb
4
- data.tar.gz: 17d4cba48fb33fb04c473b0cb9e9f85c1aa40c84f16a39c1df34332695e0435b
3
+ metadata.gz: 94b039813bed12f92d3312623d3b2168c91a71689b285a49941285b8e3715221
4
+ data.tar.gz: 7170bc49eeb84ae09c71577b9a79b147dc4fb4e1ba820375f83095e889fa1dea
5
5
  SHA512:
6
- metadata.gz: c689915e7a17e4db223a9ef587a3c70ab1e6f748d54dec0463da7cf728770a77f9a298995959befbe77f322771de1c1eefb5bdd9e6c27352c389e2789d4d05e9
7
- data.tar.gz: be77801fb48251c860b2b07341927dbc704eb34f28951f082d0971aa23c96cdf90d70bff219b946e67facea7022948ac9aa3353e0a87a4441ab6f7ea5f7fa19f
6
+ metadata.gz: db223e25eb6e0cb0330f4e31113858b8b584dc6ccc0bde728c7024e206c80fe811608a2dc256601f143b436941ff7bc4e0331f6901086eccb55aeaea0226e2ad
7
+ data.tar.gz: 77b67d5bcccb8b610ecc2b123fa707ea7e52d1509db89d05eb249956398b9cec12e7e75a65a4427bce06b5339b3fe53c09d75a9d277f20660990aeb704539ddb
data/Changelog.md CHANGED
@@ -5,7 +5,18 @@ It supports [Sinatra](http://www.sinatrarb.com),
5
5
  [Padrino](http://www.padrinorb.com) and [Ruby on Rails](http://rubyonrails.org)
6
6
  frameworks.
7
7
 
8
- _latest update: thu 13 apr 2023, 16:54:52, CEST_
8
+ _latest update: Mon 17 Apr 2023, 18:07:04, CEST_
9
+
10
+ ## Version 2.2.0 (2023-04-17)
11
+
12
+ * DepedencyCheck: marked as deprecated
13
+ * UnsafeDependencyCheck: added support for new kb keywords:
14
+ - versionEndIncluding
15
+ - versionEndExcluding
16
+
17
+ ## Version 2.1.1 (2023-04-14)
18
+
19
+ * Issue #252 fix was uncomplete.
9
20
 
10
21
  ## Version 2.1.0 (2023-04-13)
11
22
 
data/Rakefile CHANGED
@@ -160,35 +160,35 @@ namespace :rubysec do
160
160
  end
161
161
 
162
162
  def __kb_pack
163
- if Dir.exists? "#{YAML_KB}/bulletin"
163
+ if Dir.exist? "#{YAML_KB}/bulletin"
164
164
  system "tar cfvz #{YAML_KB}/bulletin.tar.gz -C #{YAML_KB} bulletin"
165
165
  system "rm -rf #{YAML_KB}/bulletin"
166
166
  system "shasum -a 256 #{YAML_KB}/bulletin.tar.gz > #{YAML_KB}/bulletin.tar.gz.sig"
167
167
  end
168
168
 
169
- if Dir.exists? "#{YAML_KB}/generic_check"
169
+ if Dir.exist? "#{YAML_KB}/generic_check"
170
170
  system "tar cfvz #{YAML_KB}/generic_check.tar.gz -C #{YAML_KB} generic_check"
171
171
  system "rm -rf #{YAML_KB}/generic_check"
172
172
  system "shasum -a 256 #{YAML_KB}/generic_check.tar.gz > #{YAML_KB}/generic_check.tar.gz.sig"
173
173
  end
174
174
 
175
- if Dir.exists? "#{YAML_KB}/owasp_ror_cheatsheet"
175
+ if Dir.exist? "#{YAML_KB}/owasp_ror_cheatsheet"
176
176
  system "tar cfvz #{YAML_KB}/owasp_ror_cheatsheet.tar.gz -C #{YAML_KB} owasp_ror_cheatsheet"
177
177
  system "rm -rf #{YAML_KB}/owasp_ror_cheatsheet"
178
178
  system "shasum -a 256 #{YAML_KB}/owasp_ror_cheatsheet.tar.gz > #{YAML_KB}/owasp_ror_cheatsheet.tar.gz.sig"
179
179
  end
180
180
 
181
- if Dir.exists? "#{YAML_KB}/code_style"
181
+ if Dir.exist? "#{YAML_KB}/code_style"
182
182
  system "tar cfvz #{YAML_KB}/code_style.tar.gz -C #{YAML_KB} code_style"
183
183
  system "rm -rf #{YAML_KB}/code_style"
184
184
  system "shasum -a 256 #{YAML_KB}/code_style.tar.gz > #{YAML_KB}/code_style.tar.gz.sig"
185
185
  end
186
- if Dir.exists? "#{YAML_KB}/code_quality"
186
+ if Dir.exist? "#{YAML_KB}/code_quality"
187
187
  system "tar cfvz #{YAML_KB}/code_quality.tar.gz -C #{YAML_KB} code_quality"
188
188
  system "rm -rf #{YAML_KB}/code_quality"
189
189
  system "shasum -a 256 #{YAML_KB}/code_quality.tar.gz > #{YAML_KB}/code_quality.tar.gz.sig"
190
190
  end
191
- if Dir.exists? "#{YAML_KB}/owasp_top_10"
191
+ if Dir.exist? "#{YAML_KB}/owasp_top_10"
192
192
  system "tar cfvz #{YAML_KB}/owasp_top_10.tar.gz -C #{YAML_KB} owasp_top_10"
193
193
  system "rm -rf #{YAML_KB}/owasp_top_10"
194
194
  system "shasum -a 256 #{YAML_KB}/owasp_top_10.tar.gz > #{YAML_KB}/owasp_top_10.tar.gz.sig"
data/VERSION CHANGED
@@ -1,3 +1,3 @@
1
1
  # I removed codenames :-)
2
2
  # Code review is fun
3
- 2.1.0
3
+ 2.2.0
@@ -0,0 +1 @@
1
+ e463c7c3f54c900752f3b9be47da3f311cddd941
@@ -0,0 +1 @@
1
+ 140e3b04589881711a85100bc9b93959382f9b39
@@ -1,19 +1,18 @@
1
1
  Given /^the generic project "(.*?)" doesn't exist$/ do |file|
2
- FileUtils.rm(file) if File.exists?(file)
2
+ FileUtils.rm(file) if File.exist?(file)
3
3
  end
4
4
 
5
5
  Given /^the hello world rails project does exist$/ do
6
6
  system("rm -rf /tmp/hello_world_3.2.13")
7
- system("cp -a ./spec/support/hello_world_3.2.13 /tmp")
7
+ system("cp -a ./spec/support/hello_world_3.2.13 /tmp")
8
8
  end
9
9
 
10
10
  Given /^a safe sinatra application exists$/ do
11
11
  system("rm -rf /tmp/sinatra-safe")
12
- system("cp -a ./spec/support/sinatra-safe /tmp")
12
+ system("cp -a ./spec/support/sinatra-safe /tmp")
13
13
  end
14
14
 
15
15
  Given /^a vulnerable sinatra application exists$/ do
16
16
  system("rm -rf /tmp/sinatra-vulnerable")
17
- system("cp -a ./spec/support/sinatra-vulnerable /tmp")
17
+ system("cp -a ./spec/support/sinatra-vulnerable /tmp")
18
18
  end
19
-
@@ -25,10 +25,14 @@ module Dawn
25
25
  attr_accessor :save_minor
26
26
  attr_accessor :save_major
27
27
 
28
+ # @deprecated Please use UnsafeDependencyCheck instead. This class is no
29
+ # longer supperted and it will be removed really soon.
28
30
  def initialize(options)
29
31
  super(options)
30
32
  @save_minor ||= options[:save_minor]
31
33
  @save_major ||= options[:save_major]
34
+
35
+ warn "This class is deprecated. Please use UnsafeDependencyCheck instead"
32
36
  end
33
37
 
34
38
  def vuln?
@@ -31,6 +31,22 @@ module Dawn
31
31
  @dependencies.each do |dep|
32
32
  unless @vulnerable_version_array.nil? or @vulnerable_version_array.empty?
33
33
  if dep[:name] == @vulnerable_version_array[0][:name]
34
+
35
+ unless @vulnerable_version_array[0][:versionEndIncluding].nil?
36
+ if (Gem::Version.new(dep[:version]) > Gem::Version.new(@vulnerable_version_array[0][:versionEndIncluding]))
37
+ return false
38
+ else
39
+ return true
40
+ end
41
+ end
42
+
43
+ unless @vulnerable_version_array[0][:versionEndExcluding].nil?
44
+ if (Gem::Version.new(dep[:version]) >= Gem::Version.new(@vulnerable_version_array[0][:versionEndExcluding]))
45
+ return false
46
+ else
47
+ return true
48
+ end
49
+ end
34
50
  return true if @please_ignore_dep_version
35
51
  return false if @vulnerable_version_array[0][:version].nil? or @vulnerable_version_array[0][:version].empty?
36
52
  return true if @vulnerable_version_array[0][:version].include? dep[:version]
@@ -244,7 +244,7 @@ module Dawn
244
244
  # Please note that if we enter in this branch, it means someone
245
245
  # tampered the KB between the previous __valid? check and this point.
246
246
  # Of course this is a very rare situation, but we must handle it.
247
- unless Dir.exists?(dir)
247
+ unless Dir.exist?(dir)
248
248
  $logger.warn "Missing check directory #{dir}"
249
249
  else
250
250
  Dir.glob(dir+"/**/*.yml").each do |f|
@@ -311,12 +311,12 @@ module Dawn
311
311
 
312
312
  lines = ""
313
313
 
314
- unless File.exists?(File.join(@path, "kb.yaml"))
314
+ unless File.exist?(File.join(@path, "kb.yaml"))
315
315
  $logger.error "Missing kb.yaml in #{path}. Giving up"
316
316
  return false
317
317
  end
318
318
 
319
- unless File.exists?(File.join(@path, "kb.yaml.sig"))
319
+ unless File.exist?(File.join(@path, "kb.yaml.sig"))
320
320
  $logger.error "Missing kb.yaml signature in #{path}. Giving up"
321
321
  return false
322
322
  end
@@ -343,7 +343,7 @@ module Dawn
343
343
  # local DB path
344
344
  def __packed?
345
345
  FILES.each do |fn|
346
- return true if fn.end_with? 'tar.gz' and File.exists?(File.join(@path, fn))
346
+ return true if fn.end_with? 'tar.gz' and File.exist?(File.join(@path, fn))
347
347
  end
348
348
  return false
349
349
  end
data/lib/dawn/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Dawn
2
- VERSION = "2.1.0"
3
- RELEASE = "20230413"
4
- BUILD = "3"
5
- COMMIT = "gc8a1ac6"
2
+ VERSION = "2.2.0"
3
+ RELEASE = "20230417"
4
+ BUILD = "4"
5
+ COMMIT = "gbd023a5"
6
6
  end
@@ -2,29 +2,28 @@ require 'spec_helper'
2
2
 
3
3
  describe "The security check for Ruby interpreter version" do
4
4
  before(:all) do
5
- @check = Dawn::Kb::RubyVersionCheck.new
6
- @check.message = "This is a mock"
7
- @check.kind=Dawn::KnowledgeBase::RUBY_VERSION_CHECK
8
- @check.applies=['sinatra', 'padrino', 'rails']
9
- @check.safe_rubies = [{:version=>"1.9.3", :patchlevel=>"p392"}, {:version=>"2.0.0", :patchlevel=>"p0"}]
5
+ @check = Dawn::Kb::RubyVersionCheck.new(:name=>"Mocked",
6
+ :kind=>Dawn::KnowledgeBase::RUBY_VERSION_CHECK,
7
+ :applies=>['sinatra', 'padrino', 'rails'])
8
+ @check.safe_rubies=[{:version=>"1.9.3", :patchlevel=>"p392"}, {:version=>"2.0.0", :patchlevel=>"p0"}]
10
9
  end
11
10
 
12
11
  it "fires if ruby version is vulnerable" do
13
- check.detected_ruby = {:version=>"1.9.2", :patchlevel=>"p10000"}
14
- expect(check.vuln?).to eq(true)
12
+ @check.detected_ruby = {:version=>"1.9.2", :patchlevel=>"p10000"}
13
+ expect(@check.vuln?).to eq(true)
15
14
  end
16
15
  it "doesn't fire if ruby version is not vulnerable and patchlevel is not vulnerable" do
17
- check.detected_ruby = {:version=>"1.9.4", :patchlevel=>"p10000"}
18
- expect(check.vuln?).to eq(false)
16
+ @check.detected_ruby = {:version=>"1.9.4", :patchlevel=>"p10000"}
17
+ expect(@check.vuln?).to eq(false)
19
18
  end
20
19
 
21
20
  it "doesn't fire if ruby version is vulnerable and patchlevel is not vulnerable" do
22
- check.detected_ruby = {:version=>"1.9.3", :patchlevel=>"p10000"}
23
- expect(check.vuln?).to eq(false)
21
+ @check.detected_ruby = {:version=>"1.9.3", :patchlevel=>"p10000"}
22
+ expect(@check.vuln?).to eq(false)
24
23
  end
25
24
 
26
25
  it "fires if ruby version is vulnerable and patchlevel is vulnerable" do
27
- check.detected_ruby = {:version=>"1.9.3", :patchlevel=>"p391"}
28
- expect(check.vuln?).to eq(true)
26
+ @check.detected_ruby = {:version=>"1.9.3", :patchlevel=>"p391"}
27
+ expect(@check.vuln?).to eq(true)
29
28
  end
30
29
  end
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+
3
+
4
+ describe "The security check for gem unsafe dependency should" do
5
+ before(:all) do
6
+ f = "./spec/lib/kb/dependency_check.yml"
7
+ @check = YAML.load_file(f, permitted_classes: [Dawn::Kb::UnsafeDependencyCheck,
8
+ Dawn::Kb::BasicCheck,
9
+ Dawn::Kb::ComboCheck,
10
+ Dawn::Kb::DependencyCheck,
11
+ Dawn::Kb::DeprecationCheck,
12
+ Dawn::Kb::OperatingSystemCheck,
13
+ Dawn::Kb::PatternMatchCheck,
14
+ Dawn::Kb::RubygemCheck,
15
+ Dawn::Kb::RubyVersionCheck,
16
+ Dawn::Kb::VersionCheck,
17
+ Date,
18
+ Symbol])
19
+ end
20
+
21
+ it "fires if vulnerable 0.5.0 version is detected" do
22
+ @check.dependencies = [{:name=>"acme-gem", :version=>'0.5.0'}]
23
+ expect(@check.vuln?).to eq(true)
24
+ end
25
+ it "fires if vulnerable 1.3.2 version is found" do
26
+ @check.dependencies = [{:name=>"acme-gem", :version=>'1.3.2'}]
27
+ expect(@check.vuln?).to eq(true)
28
+ end
29
+
30
+ it "fires if vulnerable 3.4.0 version is found" do
31
+ @check.dependencies = [{:name=>"acme-gem", :version=>'3.4.0'}]
32
+ expect(@check.vuln?).to eq(true)
33
+ end
34
+
35
+ it "doesn't fire if not vulnerable 3.0.0 version is found" do
36
+ @check.dependencies = [{:name=>"acme-gem", :version=>'3.0.0'}]
37
+ expect(@check.vuln?).to eq(false)
38
+ end
39
+ end
@@ -0,0 +1,43 @@
1
+ require 'spec_helper'
2
+
3
+
4
+ describe "The security check for gem unsafe dependency, when versionEndExcluding is set, should" do
5
+ before(:all) do
6
+ f = "./spec/lib/kb/dependency_check_with_version_end_excluding.yml"
7
+ @check = YAML.load_file(f, permitted_classes: [Dawn::Kb::UnsafeDependencyCheck,
8
+ Dawn::Kb::BasicCheck,
9
+ Dawn::Kb::ComboCheck,
10
+ Dawn::Kb::DependencyCheck,
11
+ Dawn::Kb::DeprecationCheck,
12
+ Dawn::Kb::OperatingSystemCheck,
13
+ Dawn::Kb::PatternMatchCheck,
14
+ Dawn::Kb::RubygemCheck,
15
+ Dawn::Kb::RubyVersionCheck,
16
+ Dawn::Kb::VersionCheck,
17
+ Date,
18
+ Symbol])
19
+ end
20
+
21
+ it "fires if vulnerable 0.5.0 version is detected" do
22
+ @check.dependencies = [{:name=>"acme-gem", :version=>'0.5.0'}]
23
+ expect(@check.vuln?).to eq(true)
24
+ end
25
+ it "fires if vulnerable 1.3.2 version is found" do
26
+ @check.dependencies = [{:name=>"acme-gem", :version=>'1.3.2'}]
27
+ expect(@check.vuln?).to eq(true)
28
+ end
29
+
30
+ it "fires if vulnerable 2.7.2.1 version is found" do
31
+ @check.dependencies = [{:name=>"acme-gem", :version=>'2.7.2.1'}]
32
+ expect(@check.vuln?).to eq(true)
33
+ end
34
+ it "fires if vulnerable 2.7.2.2 version is found" do
35
+ @check.dependencies = [{:name=>"acme-gem", :version=>'2.7.2.2'}]
36
+ expect(@check.vuln?).to eq(false)
37
+ end
38
+
39
+ it "doesn't fire if not vulnerable 3.0 version is found" do
40
+ @check.dependencies = [{:name=>"acme-gem", :version=>'3.0'}]
41
+ expect(@check.vuln?).to eq(false)
42
+ end
43
+ end
@@ -0,0 +1,44 @@
1
+ require 'spec_helper'
2
+
3
+
4
+ describe "The security check for gem unsafe dependency, when versionEndIncluding is set, should" do
5
+ before(:all) do
6
+ f = "./spec/lib/kb/dependency_check_with_version_end_including.yml"
7
+ @check = YAML.load_file(f, permitted_classes: [Dawn::Kb::UnsafeDependencyCheck,
8
+ Dawn::Kb::BasicCheck,
9
+ Dawn::Kb::ComboCheck,
10
+ Dawn::Kb::DependencyCheck,
11
+ Dawn::Kb::DeprecationCheck,
12
+ Dawn::Kb::OperatingSystemCheck,
13
+ Dawn::Kb::PatternMatchCheck,
14
+ Dawn::Kb::RubygemCheck,
15
+ Dawn::Kb::RubyVersionCheck,
16
+ Dawn::Kb::VersionCheck,
17
+ Date,
18
+ Symbol])
19
+ @check.debug=true
20
+ end
21
+
22
+ it "fires if vulnerable 0.5.0 version is detected" do
23
+ @check.dependencies = [{:name=>"acme-gem", :version=>'0.5.0'}]
24
+ expect(@check.vuln?).to eq(true)
25
+ end
26
+ it "fires if vulnerable 1.3.2 version is found" do
27
+ @check.dependencies = [{:name=>"acme-gem", :version=>'1.3.2'}]
28
+ expect(@check.vuln?).to eq(true)
29
+ end
30
+
31
+ it "fires if vulnerable 2.7.2.1 version is found" do
32
+ @check.dependencies = [{:name=>"acme-gem", :version=>'2.7.2.1'}]
33
+ expect(@check.vuln?).to eq(true)
34
+ end
35
+ it "fires if vulnerable 2.7.2.2 version is found" do
36
+ @check.dependencies = [{:name=>"acme-gem", :version=>'2.7.2.2'}]
37
+ expect(@check.vuln?).to eq(true)
38
+ end
39
+
40
+ it "doesn't fire if not vulnerable 3.0 version is found" do
41
+ @check.dependencies = [{:name=>"acme-gem", :version=>'3.0'}]
42
+ expect(@check.vuln?).to eq(false)
43
+ end
44
+ end
@@ -0,0 +1,23 @@
1
+ --- !ruby/object:Dawn::Kb::UnsafeDependencyCheck
2
+ applies:
3
+ - rails
4
+ - sinatra
5
+ - padrino
6
+ title: A test here
7
+ cvss: '(AV:L/AC:L/Au:S/C:N/I:C/A:C)'
8
+ cve: 'CVE-2023-99999'
9
+ owasp: A9
10
+ release_date: '25/03/2023'
11
+ kind: :unsafe_dependency_check
12
+ message: |-
13
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur nisi turpis, tincidunt rhoncus leo sed, euismod sollicitudin nisl. In a arcu accumsan, fermentum quam vel, auctor risus. Nulla non sollicitudin libero. Cras hendrerit consectetur pulvinar. Vivamus ligula quam, vulputate eget justo in, varius rhoncus lorem. Nulla vel volutpat enim. Nulla hendrerit posuere tempor. Nulla in metus eget lacus tempor sollicitudin sed et dolor. Ut interdum volutpat felis, ac bibendum mauris volutpat ut. Etiam posuere justo ex, nec faucibus orci suscipit sit amet. Vivamus rutrum massa fermentum mi pellentesque vehicula. Nullam elementum urna mauris, nec cursus risus convallis vel. Nulla consectetur enim ut magna rutrum, et mollis ante auctor. Etiam accumsan in lacus et ultricies. Morbi ullamcorper velit a ipsum egestas, quis laoreet lectus placerat. Maecenas nunc augue, pulvinar non ligula ac, maximus venenatis mi.
14
+
15
+ remediation: |-
16
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse et metus blandit, viverra ante a, auctor urna. Integer eget est ac nisl bibendum pharetra. Vivamus rhoncus neque vitae felis congue luctus. Praesent vitae lobortis mi. Nulla malesuada elit dictum tincidunt volutpat. Quisque tincidunt lorem nec eros ullamcorper lobortis. Nunc in felis sit amet purus sollicitudin tincidunt. Sed semper sapien nisi, non rutrum orci ultricies eget. Integer neque mauris, gravida ac varius nec, tincidunt consequat turpis. Fusce nisi metus, iaculis a eros eget, interdum sodales lectus. Pellentesque purus nisi, venenatis ut quam vitae, lacinia tristique turpis. Morbi sed maximus odio, et interdum risus. Duis nec congue lacus. Nunc sed elit a leo fermentum feugiat a aliquam arcu.
17
+
18
+ severity: :critical
19
+ priority: :high
20
+ check_family: :bulletin
21
+ vulnerable_version_array:
22
+ - :name: 'acme-gem'
23
+ :versionEndExcluding: '2.7.2.2'
@@ -0,0 +1,23 @@
1
+ --- !ruby/object:Dawn::Kb::UnsafeDependencyCheck
2
+ applies:
3
+ - rails
4
+ - sinatra
5
+ - padrino
6
+ title: A test here
7
+ cvss: '(AV:L/AC:L/Au:S/C:N/I:C/A:C)'
8
+ cve: 'CVE-2023-99999'
9
+ owasp: A9
10
+ release_date: '25/03/2023'
11
+ kind: :unsafe_dependency_check
12
+ message: |-
13
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur nisi turpis, tincidunt rhoncus leo sed, euismod sollicitudin nisl. In a arcu accumsan, fermentum quam vel, auctor risus. Nulla non sollicitudin libero. Cras hendrerit consectetur pulvinar. Vivamus ligula quam, vulputate eget justo in, varius rhoncus lorem. Nulla vel volutpat enim. Nulla hendrerit posuere tempor. Nulla in metus eget lacus tempor sollicitudin sed et dolor. Ut interdum volutpat felis, ac bibendum mauris volutpat ut. Etiam posuere justo ex, nec faucibus orci suscipit sit amet. Vivamus rutrum massa fermentum mi pellentesque vehicula. Nullam elementum urna mauris, nec cursus risus convallis vel. Nulla consectetur enim ut magna rutrum, et mollis ante auctor. Etiam accumsan in lacus et ultricies. Morbi ullamcorper velit a ipsum egestas, quis laoreet lectus placerat. Maecenas nunc augue, pulvinar non ligula ac, maximus venenatis mi.
14
+
15
+ remediation: |-
16
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse et metus blandit, viverra ante a, auctor urna. Integer eget est ac nisl bibendum pharetra. Vivamus rhoncus neque vitae felis congue luctus. Praesent vitae lobortis mi. Nulla malesuada elit dictum tincidunt volutpat. Quisque tincidunt lorem nec eros ullamcorper lobortis. Nunc in felis sit amet purus sollicitudin tincidunt. Sed semper sapien nisi, non rutrum orci ultricies eget. Integer neque mauris, gravida ac varius nec, tincidunt consequat turpis. Fusce nisi metus, iaculis a eros eget, interdum sodales lectus. Pellentesque purus nisi, venenatis ut quam vitae, lacinia tristique turpis. Morbi sed maximus odio, et interdum risus. Duis nec congue lacus. Nunc sed elit a leo fermentum feugiat a aliquam arcu.
17
+
18
+ severity: :critical
19
+ priority: :high
20
+ check_family: :bulletin
21
+ vulnerable_version_array:
22
+ - :name: 'acme-gem'
23
+ :versionEndIncluding: '2.7.2.2'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dawnscanner
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paolo Perego
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-13 00:00:00.000000000 Z
11
+ date: 2023-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cvss
@@ -277,6 +277,8 @@ files:
277
277
  - checksum/dawnscanner-2.0.0.rc2.gem.sha1
278
278
  - checksum/dawnscanner-2.0.0.rc3.gem.sha1
279
279
  - checksum/dawnscanner-2.0.0.rc5.gem.sha1
280
+ - checksum/dawnscanner-2.1.0.gem.sha1
281
+ - checksum/dawnscanner-2.1.1.gem.sha1
280
282
  - code_of_conduct.md
281
283
  - dawnscanner.gemspec
282
284
  - doc/change.sh
@@ -324,18 +326,18 @@ files:
324
326
  - lib/dawnscanner.rb
325
327
  - lib/tasks/dawn_tasks.rake
326
328
  - spec/lib/dawn/codesake_core_spec.rb
327
- - spec/lib/dawn/codesake_knowledgebase_spec.rb
328
329
  - spec/lib/dawn/codesake_padrino_engine_disabled.rb
329
330
  - spec/lib/dawn/codesake_rails_engine_disabled.rb
330
331
  - spec/lib/dawn/codesake_sinatra_engine_disabled.rb
331
- - spec/lib/kb/codesake_cve_2013_0175_spec.rb
332
- - spec/lib/kb/codesake_cve_2013_4457_spec.rb
333
- - spec/lib/kb/codesake_dependency_version_check_spec.rb
334
332
  - spec/lib/kb/codesake_deprecation_check_spec.rb
335
333
  - spec/lib/kb/codesake_ruby_version_check_spec.rb
336
- - spec/lib/kb/codesake_unsafe_dependency_check_spec.rb
334
+ - spec/lib/kb/codesake_unsafe_dependency_check_normal_spec.rb
335
+ - spec/lib/kb/codesake_unsafe_dependency_check_version_end_excluding_spec.rb
336
+ - spec/lib/kb/codesake_unsafe_dependency_check_version_end_including_spec.rb
337
337
  - spec/lib/kb/codesake_version_check_spec.rb
338
338
  - spec/lib/kb/dependency_check.yml
339
+ - spec/lib/kb/dependency_check_with_version_end_excluding.yml
340
+ - spec/lib/kb/dependency_check_with_version_end_including.yml
339
341
  - spec/lib/kb/owasp_ror_cheatsheet_disabled.rb
340
342
  - spec/lib/kb/yamilize_kb_spec.rb
341
343
  - spec/spec_helper.rb
@@ -373,18 +375,18 @@ test_files:
373
375
  - features/step_definition/dawn_steps.rb
374
376
  - features/support/env.rb
375
377
  - spec/lib/dawn/codesake_core_spec.rb
376
- - spec/lib/dawn/codesake_knowledgebase_spec.rb
377
378
  - spec/lib/dawn/codesake_padrino_engine_disabled.rb
378
379
  - spec/lib/dawn/codesake_rails_engine_disabled.rb
379
380
  - spec/lib/dawn/codesake_sinatra_engine_disabled.rb
380
- - spec/lib/kb/codesake_cve_2013_0175_spec.rb
381
- - spec/lib/kb/codesake_cve_2013_4457_spec.rb
382
- - spec/lib/kb/codesake_dependency_version_check_spec.rb
383
381
  - spec/lib/kb/codesake_deprecation_check_spec.rb
384
382
  - spec/lib/kb/codesake_ruby_version_check_spec.rb
385
- - spec/lib/kb/codesake_unsafe_dependency_check_spec.rb
383
+ - spec/lib/kb/codesake_unsafe_dependency_check_normal_spec.rb
384
+ - spec/lib/kb/codesake_unsafe_dependency_check_version_end_excluding_spec.rb
385
+ - spec/lib/kb/codesake_unsafe_dependency_check_version_end_including_spec.rb
386
386
  - spec/lib/kb/codesake_version_check_spec.rb
387
387
  - spec/lib/kb/dependency_check.yml
388
+ - spec/lib/kb/dependency_check_with_version_end_excluding.yml
389
+ - spec/lib/kb/dependency_check_with_version_end_including.yml
388
390
  - spec/lib/kb/owasp_ror_cheatsheet_disabled.rb
389
391
  - spec/lib/kb/yamilize_kb_spec.rb
390
392
  - spec/spec_helper.rb