28 lines
941 B
Ruby
28 lines
941 B
Ruby
module Jekyll
|
|
module CVEBadge
|
|
module APIHelper
|
|
|
|
def get_cvss_severity_score(cve_id)
|
|
uri = URI.parse("https://services.nvd.nist.gov/rest/json/cve/1.0/#{cve_id}")
|
|
|
|
http = Net::HTTP.new(uri.host, uri.port)
|
|
http.use_ssl = true
|
|
request = Net::HTTP::Get.new(uri.request_uri)
|
|
response = http.request(request)
|
|
|
|
if response.code != "200"
|
|
["", ""]
|
|
end
|
|
|
|
result = JSON.parse(response.body)
|
|
|
|
if result["result"]["CVE_Items"][0]["impact"]["baseMetricV3"] != nil
|
|
[result["result"]["CVE_Items"][0]["impact"]["baseMetricV3"]["cvssV3"]["baseSeverity"], result["result"]["CVE_Items"][0]["impact"]["baseMetricV3"]["cvssV3"]["baseScore"]]
|
|
else
|
|
[result["result"]["CVE_Items"][0]["impact"]["baseMetricV2"]["severity"], result["result"]["CVE_Items"][0]["impact"]["baseMetricV2"]["cvssV2"]["baseScore"]]
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|