class SecurityReport::UnpatchedGemResult

Attributes

advisory[R]
identifier[R]
target[R]

Public Class Methods

matches?(obj) click to toggle source
# File lib/security_report/unpatched_gem_result.rb, line 31
def self.matches?(obj)
  obj.instance_of? ::Bundler::Audit::Results::UnpatchedGem
end
new(scan_result, target) click to toggle source
# File lib/security_report/unpatched_gem_result.rb, line 13
def initialize(scan_result, target)
  @identifier = scan_result.gem.to_s
  @advisory = scan_result.advisory
  @target = target
end

Public Instance Methods

problem() click to toggle source
# File lib/security_report/unpatched_gem_result.rb, line 19
def problem
  Problem.new(problem_id, advisory.title, advisory.url)
end
solution() click to toggle source
# File lib/security_report/unpatched_gem_result.rb, line 23
def solution
  if advisory.patched_versions.empty?
    "Remove or disable this gem until a patch is available!"
  else
    "Upgrade to a new version"
  end
end

Private Instance Methods

problem_id() click to toggle source
# File lib/security_report/unpatched_gem_result.rb, line 39
def problem_id
  if advisory.cve
    #"CVE-#{advisory.cve}"
    "https://cve.circl.lu/cve/CVE-#{advisory.cve}"
  elsif advisory.osvdb
    advisory.osvdb
  end
end