Skip to content

Commit e7ef7a8

Browse files
authored
Merge branch 'main' into pr-3150
2 parents 215d1a6 + 8108645 commit e7ef7a8

File tree

3 files changed

+69
-81
lines changed

3 files changed

+69
-81
lines changed

.github/workflows/codeql-analysis.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ jobs:
5151

5252
# Initializes the CodeQL tools for scanning.
5353
- name: Initialize CodeQL
54-
uses: github/codeql-action/init@004c5de30b6423267685b897a3d595e944f7fed5 # v2.20.2
54+
uses: github/codeql-action/init@46ed16ded91731b2df79a2893d3aea8e9f03b5c4 # v2.20.3
5555
with:
5656
languages: ${{ matrix.language }}
5757
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -62,7 +62,7 @@ jobs:
6262
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
6363
# If this step fails, then you should remove it and run the build manually (see below)
6464
- name: Autobuild
65-
uses: github/codeql-action/autobuild@004c5de30b6423267685b897a3d595e944f7fed5 # v2.20.2
65+
uses: github/codeql-action/autobuild@46ed16ded91731b2df79a2893d3aea8e9f03b5c4 # v2.20.3
6666

6767
# ℹ️ Command-line programs to run using the OS shell.
6868
# 📚 https://git.io/JvXDl
@@ -76,4 +76,4 @@ jobs:
7676
# make release
7777

7878
- name: Perform CodeQL Analysis
79-
uses: github/codeql-action/analyze@004c5de30b6423267685b897a3d595e944f7fed5 # v2.20.2
79+
uses: github/codeql-action/analyze@46ed16ded91731b2df79a2893d3aea8e9f03b5c4 # v2.20.3

cve_bin_tool/cvedb.py

Lines changed: 64 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,60 @@ class CVEDB:
5959
gad_source.GAD_Source,
6060
]
6161

62+
INSERT_QUERIES = {
63+
"insert_severity": """
64+
INSERT or REPLACE INTO cve_severity(
65+
CVE_number,
66+
severity,
67+
description,
68+
score,
69+
cvss_version,
70+
cvss_vector,
71+
data_source,
72+
last_modified
73+
)
74+
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
75+
""",
76+
"insert_cve_range": """
77+
INSERT or REPLACE INTO cve_range(
78+
cve_number,
79+
vendor,
80+
product,
81+
version,
82+
versionStartIncluding,
83+
versionStartExcluding,
84+
versionEndIncluding,
85+
versionEndExcluding,
86+
data_source
87+
)
88+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
89+
""",
90+
"insert_exploit": """
91+
INSERT or REPLACE INTO cve_exploited (
92+
cve_number,
93+
product,
94+
description
95+
)
96+
VALUES (?,?,?)
97+
""",
98+
"insert_cve_metrics": """
99+
INSERT or REPLACE INTO cve_metrics (
100+
cve_number,
101+
metric_id,
102+
metric_score,
103+
metric_field
104+
)
105+
VALUES (?, ?, ?, ?)
106+
""",
107+
"insert_metrics": """
108+
INSERT or REPLACE INTO metrics (
109+
metrics_id,
110+
metrics_name
111+
)
112+
VALUES (?, ?)
113+
""",
114+
}
115+
62116
def __init__(
63117
self,
64118
sources=None,
@@ -316,66 +370,6 @@ def table_schemas(self):
316370
metrics_table,
317371
)
318372

319-
def insert_queries(self):
320-
cve_severity = """
321-
cve_severity(
322-
CVE_number,
323-
severity,
324-
description,
325-
score,
326-
cvss_version,
327-
cvss_vector,
328-
data_source,
329-
last_modified
330-
)
331-
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
332-
"""
333-
insert_severity = f"INSERT or REPLACE INTO {cve_severity}"
334-
insert_cve_range = """
335-
INSERT or REPLACE INTO cve_range(
336-
cve_number,
337-
vendor,
338-
product,
339-
version,
340-
versionStartIncluding,
341-
versionStartExcluding,
342-
versionEndIncluding,
343-
versionEndExcluding,
344-
data_source
345-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
346-
"""
347-
insert_exploit = """
348-
INSERT or REPLACE INTO cve_exploited (
349-
cve_number,
350-
product,
351-
description
352-
)
353-
VALUES (?,?,?)
354-
"""
355-
insert_cve_metrics = """
356-
INSERT or REPLACE INTO cve_metrics (
357-
cve_number,
358-
metric_id,
359-
metric_score,
360-
metric_field
361-
)
362-
VALUES (?, ?, ?, ?)
363-
"""
364-
insert_metrics = """
365-
INSERT or REPLACE INTO metrics (
366-
metrics_id,
367-
metrics_name
368-
)
369-
VALUES (?, ?)
370-
"""
371-
return (
372-
insert_severity,
373-
insert_cve_range,
374-
insert_exploit,
375-
insert_cve_metrics,
376-
insert_metrics,
377-
)
378-
379373
def init_database(self) -> None:
380374
"""Initialize db tables used for storing cve/version data"""
381375

@@ -492,7 +486,7 @@ def populate_db(self) -> None:
492486
self.db_close()
493487

494488
def populate_severity(self, severity_data, cursor, data_source):
495-
(insert_severity, _, _, _, _) = self.insert_queries()
489+
insert_severity = self.INSERT_QUERIES["insert_severity"]
496490
del_cve_range = "DELETE from cve_range where CVE_number=? and data_source=?"
497491

498492
for cve in severity_data:
@@ -536,7 +530,7 @@ def populate_severity(self, severity_data, cursor, data_source):
536530
cursor.execute(del_cve_range, [cve["ID"], data_source])
537531

538532
def populate_affected(self, affected_data, cursor, data_source):
539-
(_, insert_cve_range, _, _, _) = self.insert_queries()
533+
insert_cve_range = self.INSERT_QUERIES["insert_cve_range"]
540534
try:
541535
cursor.executemany(
542536
insert_cve_range,
@@ -561,7 +555,7 @@ def populate_affected(self, affected_data, cursor, data_source):
561555
def populate_metrics(self):
562556
cursor = self.db_open_and_get_cursor()
563557
# Insert a row without specifying cve_metrics_id
564-
(_, _, _, _, insert_metrics) = self.insert_queries()
558+
insert_metrics = self.INSERT_QUERIES["insert_metrics"]
565559
data = [
566560
(1, "EPSS"),
567561
(2, "CVSS-2"),
@@ -764,14 +758,14 @@ def create_exploit_db(self):
764758
self.db_close()
765759

766760
def populate_exploit_db(self, exploits):
767-
(_, _, insert_exploit, _, _) = self.insert_queries()
761+
insert_exploit = self.INSERT_QUERIES["insert_exploit"]
768762
cursor = self.db_open_and_get_cursor()
769763
cursor.executemany(insert_exploit, exploits)
770764
self.connection.commit()
771765
self.db_close()
772766

773767
def store_epss_data(self):
774-
(_, _, _, insert_cve_metrics, _) = self.insert_queries()
768+
insert_cve_metrics = self.INSERT_QUERIES["insert_cve_metrics"]
775769
cursor = self.db_open_and_get_cursor()
776770
cursor.executemany(insert_cve_metrics, self.epss_data)
777771
self.connection.commit()
@@ -925,13 +919,6 @@ def db_to_json(self, path, private_key, passphrase):
925919
shutil.rmtree(temp_gnupg_home)
926920

927921
def json_to_db(self, cursor, db_column, json_data):
928-
(
929-
insert_severity,
930-
insert_cve_range,
931-
insert_exploit,
932-
insert_cve_metrics,
933-
insert_metrics,
934-
) = self.insert_queries()
935922
columns = []
936923
for data in json_data:
937924
column = list(data.keys())
@@ -947,15 +934,15 @@ def json_to_db(self, cursor, db_column, json_data):
947934
values.append(list(value))
948935

949936
if db_column == "cve_exploited":
950-
cursor.executemany(insert_exploit, values)
937+
cursor.executemany(self.INSERT_QUERIES["insert_exploit"], values)
951938
elif db_column == "cve_range":
952-
cursor.executemany(insert_cve_range, values)
939+
cursor.executemany(self.INSERT_QUERIES["insert_cve_range"], values)
953940
elif db_column == "cve_severity":
954-
cursor.executemany(insert_severity, values)
941+
cursor.executemany(self.INSERT_QUERIES["insert_severity"], values)
955942
elif db_column == "cve_metrics":
956-
cursor.executemany(insert_cve_metrics, values)
943+
cursor.executemany(self.INSERT_QUERIES["insert_cve_metrics"], values)
957944
elif db_column == "metrics":
958-
cursor.executemany(insert_metrics, values)
945+
cursor.executemany(self.INSERT_QUERIES["insert_metrics"], values)
959946

960947
def json_to_db_wrapper(self, path, pubkey, ignore_signature, log_signature_error):
961948
try:

cve_bin_tool/sbom_manager/spdx_parser.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ def parse_spdx_tag(self, sbom_file: str) -> list[list[str]]:
4545
package = line_elements[1].strip().rstrip("\n")
4646
version = None
4747
if line_elements[0] == "PackageVersion":
48-
version = line_elements[1].strip().rstrip("\n")
48+
# Version may contain :
49+
version = line[16:].strip().rstrip("\n")
4950
version = version.split("-")[0]
5051
version = version.split("+")[0]
5152
modules.append([package, version])

0 commit comments

Comments
 (0)