Skip to content

Commit 04bf3c9

Browse files
committed
enabled typed check
1 parent a9c4965 commit 04bf3c9

File tree

2 files changed

+25
-14
lines changed

2 files changed

+25
-14
lines changed

check_cve.py

+24-14
Original file line numberDiff line numberDiff line change
@@ -21,21 +21,31 @@
2121
cve_data = json.load(open("%s/%s" % (dir, cve_file)))
2222
cve = cve_file.replace(".json","")
2323
cve_name = cve_data['name']
24-
try:
25-
cve_info = cve_data['os'][osname]['info_url']
26-
cve_query = cve_data['os'][osname]['query_command']
27-
cve_package_name = cve_data['os'][osname]['package_name']
28-
cve_fixed_version = cve_data['os'][osname]['versions'][osreleasemajor]['fixed_version']
29-
current_version = os.popen(cve_query % cve_package_name).read().replace("\n","")
24+
cve_type = cve_data['type']
25+
26+
if cve_type == 'script':
27+
cve_script = cve_data['script']
3028
known += 1
31-
if current_version:
32-
if LooseVersion(current_version) < LooseVersion(cve_fixed_version):
33-
affected += 1
34-
msg_list.append("system is affected by %s (%s) - please patch %s (more info %s)" % (cve_name, cve, cve_package_name, cve_info))
35-
36-
except:
37-
unknown += 1
38-
msg_list.append("no definition found for %s and %s (%s)" % (osname, cve_name, cve))
29+
if int(os.popen(cve_script).read().replace("\n","")) != 0:
30+
affected += 1
31+
msg_list.append("system is affected by %s (%s)" % (cve_name, cve))
32+
33+
if cve_type == 'package':
34+
try:
35+
cve_info = cve_data['os'][osname]['info_url']
36+
cve_query = cve_data['os'][osname]['query_command']
37+
cve_package_name = cve_data['os'][osname]['package_name']
38+
cve_fixed_version = cve_data['os'][osname]['versions'][osreleasemajor]['fixed_version']
39+
current_version = os.popen(cve_query % cve_package_name).read().replace("\n","")
40+
known += 1
41+
if current_version:
42+
if LooseVersion(current_version) < LooseVersion(cve_fixed_version):
43+
affected += 1
44+
msg_list.append("system is affected by %s (%s) - please patch %s (more info %s)" % (cve_name, cve, cve_package_name, cve_info))
45+
except:
46+
unknown += 1
47+
msg_list.append("no definition found for %s and %s (%s)" % (osname, cve_name, cve))
48+
3949

4050
if affected > 0:
4151
exit_code = 2

cve/2017-5754.json

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"name": "meltdown",
3+
"type": "package",
34
"os": {
45
"Ubuntu": {
56
"info_url": "https://wiki.ubuntu.com/SecurityTeam/KnowledgeBase/SpectreAndMeltdown",

0 commit comments

Comments
 (0)