@@ -62,7 +62,7 @@ def get_advisories_from_yml(self, mfsa_id, lines) -> List[Advisory]:
6262 data ["mfsa_id" ] = mfsa_id
6363
6464 fixed_package_urls = self .get_package_urls (data .get ("fixed_in" ))
65- references = self .get_references (data )
65+ references = self .get_yml_references (data )
6666
6767 if not data .get ("advisories" ):
6868 return []
@@ -86,16 +86,21 @@ def get_advisories_from_md(self, mfsa_id, lines) -> List[Advisory]:
8686 data ["mfsa_id" ] = mfsa_id
8787
8888 fixed_package_urls = self .get_package_urls (data .get ("fixed_in" ))
89- references = self .get_references (data )
89+ references = self .get_yml_references (data )
90+ cves = re .findall (r"CVE-\d+-\d+" , yamltext + mdtext , re .IGNORECASE )
91+ for cve in cves :
92+ references .append (
93+ Reference (
94+ reference_id = cve , url = f"https://cve.mitre.org/cgi-bin/cvename.cgi?name={ cve } "
95+ )
96+ )
9097
9198 description = self .html_get_p_under_h3 (markdown (mdtext ), "description" )
9299
93- # FIXME: add references from md ? They lack a proper reference id and are mostly bug reports
94-
95100 return [
96101 Advisory (
97102 summary = description ,
98- vulnerability_id = "" , # FIXME: Scrape the entire page for CVE regex ?
103+ vulnerability_id = "" ,
99104 impacted_package_urls = [],
100105 resolved_package_urls = fixed_package_urls ,
101106 references = references ,
@@ -134,7 +139,7 @@ def get_package_urls(self, pkgs: List[str]) -> List[PackageURL]:
134139 ]
135140 return package_urls
136141
137- def get_references (self , data : any ) -> List [Reference ]:
142+ def get_yml_references (self , data : any ) -> List [Reference ]:
138143 """
139144 Returns a list of references
140145 Currently only considers the given mfsa as a reference
0 commit comments