MCPcopy Create free account
hub / github.com/aboutcode-org/vulnerablecode / get_severities

Function get_severities

vulnerabilities/importers/gsd.py:106–140  ·  view source on GitHub ↗

Return a list of CVSS vectorString >>> get_severities({"impact": {"cvss": {"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:N/A:H"}}}) ['CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:N/A:H']

(cve)

Source from the content-addressed store, hash-verified

104
105
106def get_severities(cve) -> List:
107 """
108 Return a list of CVSS vectorString
109 >>> get_severities({"impact": {"cvss": {"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:N/A:H"}}})
110 ['CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:N/A:H']
111 """
112 severities = []
113 impact = cve.get("impact") or {}
114
115 base_metric_2 = impact.get("baseMetricV2") or {}
116 if base_metric_2:
117 cvss_v2 = base_metric_2.get("cvssV2") or {}
118 cvss_vector = cvss_v2.get("vectorString")
119 if cvss_vector:
120 severities.append(cvss_vector)
121
122 base_metric_v3 = impact.get("baseMetricV3") or {}
123 if base_metric_v3:
124 cvss_v3 = base_metric_v3.get("cvssV3") or {}
125 cvss_vector = cvss_v3.get("vectorString")
126 if cvss_vector:
127 severities.append(cvss_vector)
128
129 cvss = impact.get("cvss") or {}
130 if isinstance(cvss, List):
131 for cvss_v in cvss:
132 if isinstance(cvss_v, dict):
133 cvss_vector = cvss_v.get("vectorString") or {}
134 if cvss_vector:
135 severities.append(cvss_vector)
136 else:
137 cvss_vector = cvss.get("vectorString")
138 if cvss_vector:
139 severities.append(cvss_vector)
140 return severities
141
142
143def get_description(cve) -> [str]:

Callers 2

test_get_severitiesMethod · 0.90
parse_advisory_dataFunction · 0.70

Calls 1

getMethod · 0.45

Tested by 1

test_get_severitiesMethod · 0.72