@@ -198,6 +198,7 @@ def load_advisories(
198198 continue
199199 # fixed_vulns is a list of strings and each string is a space-separated
200200 # list of aliases and CVES
201+ aliases = set ()
201202 for vuln_ids in fixed_vulns :
202203 if not isinstance (vuln_ids , str ):
203204 if logger :
@@ -214,26 +215,27 @@ def load_advisories(
214215 level = logging .DEBUG ,
215216 )
216217 continue
217- aliases = vuln_ids
218+ aliases . update ( vuln_ids )
218219
220+ for vuln_id in aliases :
219221 references = []
220- for reference_id in vuln_ids :
221- if reference_id .startswith ("XSA" ):
222- references .append (XsaReferenceV2 .from_id (xsa_id = reference_id ))
223222
224- elif reference_id .startswith ("ZBX " ):
225- references .append (ZbxReferenceV2 .from_id (zbx_id = reference_id ))
223+ if vuln_id .startswith ("XSA " ):
224+ references .append (XsaReferenceV2 .from_id (xsa_id = vuln_id ))
226225
227- elif reference_id .startswith ("wnpa-sec " ):
228- references .append (WireSharkReferenceV2 .from_id (wnpa_sec_id = reference_id ))
226+ elif vuln_id .startswith ("ZBX " ):
227+ references .append (ZbxReferenceV2 .from_id (zbx_id = vuln_id ))
229228
230- elif reference_id .startswith ("CVE" ):
231- references .append (
232- ReferenceV2 (
233- reference_id = reference_id ,
234- url = f"https://nvd.nist.gov/vuln/detail/{ reference_id } " ,
235- )
229+ elif vuln_id .startswith ("wnpa-sec" ):
230+ references .append (WireSharkReferenceV2 .from_id (wnpa_sec_id = vuln_id ))
231+
232+ elif vuln_id .startswith ("CVE" ):
233+ references .append (
234+ ReferenceV2 (
235+ reference_id = vuln_id ,
236+ url = f"https://nvd.nist.gov/vuln/detail/{ vuln_id } " ,
236237 )
238+ )
237239
238240 qualifiers = {
239241 "distroversion" : distroversion ,
@@ -290,12 +292,11 @@ def load_advisories(
290292 )
291293 )
292294
293- for cve in aliases :
294- advisory_id = f"{ pkg_infos ['name' ]} /{ qualifiers ['distroversion' ]} /{ cve } "
295- yield AdvisoryData (
296- advisory_id = advisory_id ,
297- aliases = [],
298- references_v2 = references ,
299- affected_packages = affected_packages ,
300- url = url ,
301- )
295+ advisory_id = f"{ pkg_infos ['name' ]} /{ qualifiers ['distroversion' ]} /{ version } /{ vuln_id } "
296+ yield AdvisoryData (
297+ advisory_id = advisory_id ,
298+ aliases = [vuln_id ],
299+ references_v2 = references ,
300+ affected_packages = affected_packages ,
301+ url = url ,
302+ )
0 commit comments