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)
| 104 | |
| 105 | |
| 106 | def 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 | |
| 143 | def get_description(cve) -> [str]: |