@@ -255,26 +255,30 @@ def get_result_items(self, test, results, service_name=None, artifact_name=""):
255255 cvssclass = None
256256 cvssv3 = None
257257 cvssv3_score = None
258- # Iterate over the possible severity sources tom find the first match
259- for severity_source in [detected_severity_source , * CVSS_SEVERITY_SOURCES ]:
260- cvssclass = cvss .get (severity_source , None )
258+ # Use severity field if present, otherwise fallback to CVSS
259+ if vuln .get ("Severity" ):
260+ severity = TRIVY_SEVERITIES [vuln ["Severity" ]]
261+ else :
262+ # Iterate over the possible severity sources to find the first match
263+ for severity_source in [detected_severity_source , * CVSS_SEVERITY_SOURCES ]:
264+ cvssclass = cvss .get (severity_source , None )
265+ if cvssclass is not None :
266+ break
267+ # Parse the CVSS class if it is not None
261268 if cvssclass is not None :
262- break
263- # Parse the CVSS class if it is not None
264- if cvssclass is not None :
265- if cvss_data := parse_cvss_data (cvssclass .get ("V3Vector" , "" )):
266- cvssv3 = cvss_data .get ("cvssv3" )
267- cvssv3_score = cvss_data .get ("cvssv3_score" )
268- severity = cvss_data .get ("severity" )
269- elif (cvss_v3_score := cvssclass .get ("V3Score" )) is not None :
270- cvssv3_score = cvss_v3_score
271- severity = self .convert_cvss_score (cvss_v3_score )
272- elif (cvss_v2_score := cvssclass .get ("V2Score" )) is not None :
273- severity = self .convert_cvss_score (cvss_v2_score )
269+ if cvss_data := parse_cvss_data (cvssclass .get ("V3Vector" , "" )):
270+ cvssv3 = cvss_data .get ("cvssv3" )
271+ cvssv3_score = cvss_data .get ("cvssv3_score" )
272+ severity = cvss_data .get ("severity" )
273+ elif (cvss_v3_score := cvssclass .get ("V3Score" )) is not None :
274+ cvssv3_score = cvss_v3_score
275+ severity = self .convert_cvss_score (cvss_v3_score )
276+ elif (cvss_v2_score := cvssclass .get ("V2Score" )) is not None :
277+ severity = self .convert_cvss_score (cvss_v2_score )
278+ else :
279+ severity = self .convert_cvss_score (None )
274280 else :
275281 severity = self .convert_cvss_score (None )
276- else :
277- severity = TRIVY_SEVERITIES [vuln ["Severity" ]]
278282 if target_class in {"os-pkgs" , "lang-pkgs" }:
279283 file_path = vuln .get ("PkgPath" )
280284 if file_path is None :
0 commit comments