|
13 | 13 | import pytest |
14 | 14 |
|
15 | 15 | from vulnerabilities.pipelines.v2_importers.alpine_linux_importer import load_advisories |
| 16 | +from vulnerabilities.pipelines.v2_importers.alpine_linux_importer import parse_vuln_ids |
16 | 17 | from vulnerabilities.pipelines.v2_importers.alpine_linux_importer import process_record |
17 | 18 | from vulnerabilities.tests import util_tests |
18 | 19 | from vulnerabilities.tests.pipelines import TestLogger |
@@ -95,3 +96,82 @@ def test_load_advisories_package_with_invalid_alpine_version(test_case): |
95 | 96 | } |
96 | 97 | result = list(load_advisories(package, "v3.11", "main", archs=[], url="", logger=logger.write)) |
97 | 98 | assert result != [] |
| 99 | + |
| 100 | + |
| 101 | +@pytest.mark.parametrize( |
| 102 | + "raw_input, expected_advisory_id, expected_aliases", |
| 103 | + [ |
| 104 | + ("CVE-2022-42332 XSA-427", "CVE-2022-42332", ["CVE-2022-42332", "XSA-427"]), |
| 105 | + ( |
| 106 | + "CVE-2022-42333 CVE-2022-43334 XSA-428", |
| 107 | + "CVE-2022-42333", |
| 108 | + ["CVE-2022-42333", "CVE-2022-43334", "XSA-428"], |
| 109 | + ), |
| 110 | + ( |
| 111 | + "CVE-2020-11501 GNUTLS-SA-2020-03-31 CVE-2020-11501", |
| 112 | + "CVE-2020-11501", |
| 113 | + ["CVE-2020-11501", "GNUTLS-SA-2020-03-31", "CVE-2020-11501"], |
| 114 | + ), |
| 115 | + ("CVE_2019-2426", "CVE-2019-2426", ["CVE-2019-2426"]), |
| 116 | + ( |
| 117 | + "CVE-2024-22195 GHSA-h5c8-rqwp-cp95", |
| 118 | + "CVE-2024-22195", |
| 119 | + ["CVE-2024-22195", "GHSA-h5c8-rqwp-cp95"], |
| 120 | + ), |
| 121 | + ("CVE-2023-44441 ZDI-CAN-22093", "CVE-2023-44441", ["CVE-2023-44441", "ZDI-CAN-22093"]), |
| 122 | + ("CVE-2022-45059 VSV00010", "CVE-2022-45059", ["CVE-2022-45059", "VSV00010"]), |
| 123 | + ("CVE-2021-35940.patch", "CVE-2021-35940", ["CVE-2021-35940"]), |
| 124 | + ("XSA-207", "XSA-207", ["XSA-207"]), |
| 125 | + ("ALPINE-13661", "ALPINE-13661", ["ALPINE-13661"]), |
| 126 | + ("GHSA-vv2x-vrpj-qqpq", "GHSA-vv2x-vrpj-qqpq", ["GHSA-vv2x-vrpj-qqpq"]), |
| 127 | + ("CVE N/A ZBX-11023", "ZBX-11023", ["ZBX-11023"]), |
| 128 | + ("CVE-2017-2616 (+ regression fix)", "CVE-2017-2616", ["CVE-2017-2616"]), |
| 129 | + ( |
| 130 | + "CVE-2020-14342 (Not affected, requires --with-systemd)", |
| 131 | + "CVE-2020-14342", |
| 132 | + ["CVE-2020-14342"], |
| 133 | + ), |
| 134 | + ("CVE-2017-16808 (AoE)", "CVE-2017-16808", ["CVE-2017-16808"]), |
| 135 | + ("CVE-2018-14468 (FrameRelay)", "CVE-2018-14468", ["CVE-2018-14468"]), |
| 136 | + ("CVE-2018-14469 (IKEv1)", "CVE-2018-14469", ["CVE-2018-14469"]), |
| 137 | + ("CVE-2018-14470 (BABEL)", "CVE-2018-14470", ["CVE-2018-14470"]), |
| 138 | + ("CVE-2018-14466 (AFS/RX)", "CVE-2018-14466", ["CVE-2018-14466"]), |
| 139 | + ("CVE-2018-14461 (LDP)", "CVE-2018-14461", ["CVE-2018-14461"]), |
| 140 | + ("CVE-2018-14462 (ICMP)", "CVE-2018-14462", ["CVE-2018-14462"]), |
| 141 | + ("CVE-2018-14465 (RSVP)", "CVE-2018-14465", ["CVE-2018-14465"]), |
| 142 | + ("CVE-2018-14881 (BGP)", "CVE-2018-14881", ["CVE-2018-14881"]), |
| 143 | + ("CVE-2018-14464 (LMP)", "CVE-2018-14464", ["CVE-2018-14464"]), |
| 144 | + ("CVE-2018-14463 (VRRP)", "CVE-2018-14463", ["CVE-2018-14463"]), |
| 145 | + ("CVE-2018-14467 (BGP)", "CVE-2018-14467", ["CVE-2018-14467"]), |
| 146 | + ( |
| 147 | + "CVE-2018-10103 (SMB - partially fixed, but SMB printing disabled)", |
| 148 | + "CVE-2018-10103", |
| 149 | + ["CVE-2018-10103"], |
| 150 | + ), |
| 151 | + ( |
| 152 | + "CVE-2018-10105 (SMB - too unreliably reproduced, SMB printing disabled)", |
| 153 | + "CVE-2018-10105", |
| 154 | + ["CVE-2018-10105"], |
| 155 | + ), |
| 156 | + ("CVE-2018-14880 (OSPF6)", "CVE-2018-14880", ["CVE-2018-14880"]), |
| 157 | + ("CVE-2018-16451 (SMB)", "CVE-2018-16451", ["CVE-2018-16451"]), |
| 158 | + ("CVE-2018-14882 (RPL)", "CVE-2018-14882", ["CVE-2018-14882"]), |
| 159 | + ("CVE-2018-16227 (802.11)", "CVE-2018-16227", ["CVE-2018-16227"]), |
| 160 | + ("CVE-2018-16229 (DCCP)", "CVE-2018-16229", ["CVE-2018-16229"]), |
| 161 | + ("CVE-2018-16301 (was fixed in libpcap)", "CVE-2018-16301", ["CVE-2018-16301"]), |
| 162 | + ("CVE-2018-16230 (BGP)", "CVE-2018-16230", ["CVE-2018-16230"]), |
| 163 | + ("CVE-2018-16452 (SMB)", "CVE-2018-16452", ["CVE-2018-16452"]), |
| 164 | + ("CVE-2018-16300 (BGP)", "CVE-2018-16300", ["CVE-2018-16300"]), |
| 165 | + ("CVE-2018-16228 (HNCP)", "CVE-2018-16228", ["CVE-2018-16228"]), |
| 166 | + ("CVE-2019-15166 (LMP)", "CVE-2019-15166", ["CVE-2019-15166"]), |
| 167 | + ("CVE-2019-15167 (VRRP)", "CVE-2019-15167", ["CVE-2019-15167"]), |
| 168 | + ("CVE-????-????? TS-2024-005", "TS-2024-005", ["TS-2024-005"]), |
| 169 | + ("CVE-????-????? TS-2024-005", "TS-2024-005", ["TS-2024-005"]), |
| 170 | + ("CVE-2018-14879 (tcpdump -V)", "CVE-2018-14879", ["CVE-2018-14879"]), |
| 171 | + ("CVE-46838", None, []), # invalid CVE |
| 172 | + ], |
| 173 | +) |
| 174 | +def test_parse_vuln_ids(raw_input, expected_advisory_id, expected_aliases): |
| 175 | + advisory_id, aliases = parse_vuln_ids(raw_input) |
| 176 | + assert advisory_id == expected_advisory_id |
| 177 | + assert aliases == expected_aliases |
0 commit comments