|
34 | 34 |
|
35 | 35 | from vulnerabilities.data_source import Advisory |
36 | 36 | from vulnerabilities.data_source import GitDataSource |
| 37 | +from vulnerabilities.data_source import VulnerabilityReferenceUnit |
37 | 38 |
|
38 | 39 |
|
39 | 40 | def validate_schema(advisory_dict): |
@@ -136,12 +137,34 @@ def _load_advisories( |
136 | 137 |
|
137 | 138 | for vuln_ids in fixed_vulns: |
138 | 139 | vuln_ids = vuln_ids.split() |
| 140 | + references = [] |
| 141 | + for reference_id in vuln_ids[1:]: |
| 142 | + |
| 143 | + if reference_id.startswith('XSA'): |
| 144 | + xsa_id = reference_id.split('-')[-1] |
| 145 | + references.append(VulnerabilityReferenceUnit( |
| 146 | + reference_id=reference_id, |
| 147 | + url='https://xenbits.xen.org/xsa/advisory-{}.html'.format(xsa_id) |
| 148 | + )) |
| 149 | + |
| 150 | + elif reference_id.startswith('ZBX'): |
| 151 | + references.append(VulnerabilityReferenceUnit( |
| 152 | + reference_id=reference_id, |
| 153 | + url='https://support.zabbix.com/browse/{}'.format(reference_id) |
| 154 | + )) |
| 155 | + |
| 156 | + elif reference_id.startswith('wnpa-sec'): |
| 157 | + references.append(VulnerabilityReferenceUnit( |
| 158 | + reference_id=reference_id, |
| 159 | + url='https://www.wireshark.org/security/{}.html'.format(reference_id) |
| 160 | + )) |
| 161 | + |
139 | 162 |
|
140 | 163 | advisories.append(Advisory( |
141 | 164 | summary='', |
142 | 165 | impacted_package_urls=[], |
143 | 166 | resolved_package_urls=resolved_purls, |
144 | | - reference_ids=vuln_ids[1:], |
| 167 | + vuln_references=references, |
145 | 168 | cve_id=vuln_ids[0] if vuln_ids[0] != 'CVE-????-?????' else None, |
146 | 169 | )) |
147 | 170 |
|
|
0 commit comments