@@ -31,6 +31,10 @@ def get_item(self, finding: dict, test):
3131 references = []
3232 unsaved_vulnerability_ids = []
3333 epss_score = finding .get ("EpssScore" )
34+ cvssv3 = None
35+ cvssv3_score = None
36+ cvssv4 = None
37+ cvssv4_score = None
3438 description = f"This is an Inspector Finding\n { finding .get ('Description' , '' )} " + "\n "
3539 description += f"**AWS Finding ARN:** { finding_id } \n "
3640 description += f"**AwsAccountId:** { finding .get ('AwsAccountId' , '' )} \n "
@@ -52,6 +56,15 @@ def get_item(self, finding: dict, test):
5256 references .append (vendor_url )
5357 if vulnerability .get ("EpssScore" ) is not None :
5458 epss_score = vulnerability .get ("EpssScore" )
59+ # Extract CVSS v3/v4 scores from the Cvss array
60+ for cvss_entry in vulnerability .get ("Cvss" , []):
61+ version = cvss_entry .get ("Version" , "" )
62+ if version .startswith ("3" ) and cvssv3 is None :
63+ cvssv3 = cvss_entry .get ("BaseVector" )
64+ cvssv3_score = cvss_entry .get ("BaseScore" )
65+ elif version .startswith ("4" ) and cvssv4 is None :
66+ cvssv4 = cvss_entry .get ("BaseVector" )
67+ cvssv4_score = cvss_entry .get ("BaseScore" )
5568 if finding .get ("ProductFields" , {}).get ("aws/inspector/FindingStatus" , "ACTIVE" ) == "ACTIVE" :
5669 mitigated = None
5770 is_Mitigated = False
@@ -120,6 +133,25 @@ def get_item(self, finding: dict, test):
120133 result .unsaved_endpoints = locations
121134 if epss_score is not None :
122135 result .epss_score = epss_score
136+ if cvssv3 is not None :
137+ result .cvssv3 = cvssv3
138+ if cvssv3_score is not None :
139+ result .cvssv3_score = cvssv3_score
140+ if cvssv4 is not None :
141+ result .cvssv4 = cvssv4
142+ if cvssv4_score is not None :
143+ result .cvssv4_score = cvssv4_score
144+ # Build severity justification from available CVSS data
145+ severity_parts = []
146+ if cvssv3 is not None :
147+ severity_parts .append (f"CVSS v3 vector: { cvssv3 } (base score: { cvssv3_score } )" )
148+ if cvssv4 is not None :
149+ severity_parts .append (f"CVSS v4 vector: { cvssv4 } (base score: { cvssv4_score } )" )
150+ severity_label = finding .get ("Severity" , {}).get ("Label" , "" )
151+ if severity_label :
152+ severity_parts .append (f"AWS severity: { severity_label } " )
153+ if severity_parts :
154+ result .severity_justification = "\n " .join (severity_parts )
123155 # Add the unsaved vulnerability ids
124156 result .unsaved_vulnerability_ids = unsaved_vulnerability_ids
125157 return result
0 commit comments