17
17
from jinja2 import Environment , FileSystemLoader
18
18
19
19
20
- VERSION = "0.10.3 "
20
+ VERSION = "0.10.4 "
21
21
22
22
BLUE = "\033 [94m"
23
23
GREEN = "\033 [92m"
@@ -216,8 +216,7 @@ def template(data):
216
216
cve_item = data ["containers" ]["cna" ]
217
217
published = data ["cveMetadata" ].get ("datePublished" , "" )
218
218
if published :
219
- published_date = datetime .datetime .fromisoformat (
220
- published .rstrip ("Z" ))
219
+ published_date = datetime .datetime .fromisoformat (published .rstrip ("Z" ))
221
220
published = published_date .strftime ("%Y-%m-%d" )
222
221
description = (
223
222
next (
@@ -234,8 +233,10 @@ def template(data):
234
233
wrapped_description = textwrap .fill (
235
234
description , width = 100 , subsequent_indent = " " * 15
236
235
)
236
+
237
237
metrics = cve_item .get ("metrics" , [])
238
238
baseScore , baseSeverity , vectorString = "N/A" , "N/A" , "N/A"
239
+
239
240
for metric in metrics :
240
241
cvss_data = metric .get ("cvssV3_1" ) or metric .get ("cvssV3" )
241
242
if cvss_data :
@@ -244,6 +245,21 @@ def template(data):
244
245
vectorString = cvss_data .get ("vectorString" , "N/A" )
245
246
if baseScore != "N/A" :
246
247
break
248
+
249
+ if baseScore == "N/A" :
250
+ adp = data ["containers" ].get ("adp" , [])
251
+ for adp_entry in adp :
252
+ for metric in adp_entry .get ("metrics" , []):
253
+ cvss_data = metric .get ("cvssV3_1" ) or metric .get ("cvssV3" )
254
+ if cvss_data :
255
+ baseScore = cvss_data .get ("baseScore" , "N/A" )
256
+ baseSeverity = cvss_data .get ("baseSeverity" , "N/A" )
257
+ vectorString = cvss_data .get ("vectorString" , "N/A" )
258
+ if baseScore != "N/A" :
259
+ break
260
+ if baseScore != "N/A" :
261
+ break
262
+
247
263
return [
248
264
f"├ Published: { published } " ,
249
265
f"├ Base Score: { baseScore } ({ baseSeverity } )" ,
0 commit comments