Skip to content

Commit 0197647

Browse files
authored
Include CVSS score in finding when using OpenVAS csv parser (#12472)
* add cvss score to findings (#12447) * renamed variable for better clarity * reordered strategy processing
1 parent 01d7295 commit 0197647

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

dojo/tools/openvas/csv_parser.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,18 @@ def map_column_value(self, finding, column_value):
151151
finding.severity = "Info"
152152

153153

154+
class CvssColumnMappingStrategy(ColumnMappingStrategy):
155+
def __init__(self):
156+
self.mapped_column = "cvss"
157+
super().__init__()
158+
159+
def map_column_value(self, finding, column_value):
160+
# skip empty values
161+
if not column_value:
162+
return
163+
finding.cvssv3_score = float(column_value)
164+
165+
154166
class DescriptionColumnMappingStrategy(ColumnMappingStrategy):
155167
def __init__(self):
156168
self.mapped_column = "summary"
@@ -231,6 +243,7 @@ def create_chain(self):
231243
ip_column_strategy = IpColumnMappingStrategy()
232244
hostname_column_strategy = HostnameColumnMappingStrategy()
233245
severity_column_strategy = SeverityColumnMappingStrategy()
246+
cvss_score_column_strategy = CvssColumnMappingStrategy()
234247
description_column_strategy = DescriptionColumnMappingStrategy()
235248
mitigation_column_strategy = MitigationColumnMappingStrategy()
236249
impact_column_strategy = ImpactColumnMappingStrategy()
@@ -252,7 +265,8 @@ def create_chain(self):
252265
impact_column_strategy.successor = references_column_strategy
253266
mitigation_column_strategy.successor = impact_column_strategy
254267
description_column_strategy.successor = mitigation_column_strategy
255-
severity_column_strategy.successor = description_column_strategy
268+
cvss_score_column_strategy.successor = description_column_strategy
269+
severity_column_strategy.successor = cvss_score_column_strategy
256270
ip_column_strategy.successor = severity_column_strategy
257271
hostname_column_strategy.successor = ip_column_strategy
258272
cwe_column_strategy.successor = hostname_column_strategy

unittests/tools/test_openvas_parser.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ def test_openvas_csv_report_usingCVE(self):
6464
finding = findings[4]
6565
self.assertEqual("CVE-2014-0117", finding.title)
6666
self.assertEqual("Medium", finding.severity)
67+
self.assertEqual(4.3, finding.cvssv3_score)
6768
self.assertEqual(finding.unsaved_vulnerability_ids[0], "CVE-2014-0117")
6869

6970
def test_openvas_csv_report_usingOpenVAS(self):

0 commit comments

Comments
 (0)