Skip to content

Commit bbce565

Browse files
committed
Extract CVE references from markdown data
Signed-off-by: Hritik Vijay <hritikxx8@gmail.com>
1 parent 923197d commit bbce565

2 files changed

Lines changed: 12 additions & 7 deletions

File tree

vulnerabilities/importers/mozilla.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

vulnerabilities/tests/test_mozilla.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def test_import(self, _):
5656
# pdb.set_trace()
5757

5858
assert models.Vulnerability.objects.count() == 9
59-
assert models.VulnerabilityReference.objects.count() == 9
59+
assert models.VulnerabilityReference.objects.count() == 10
6060
assert models.VulnerabilitySeverity.objects.count() == 9
6161
assert models.PackageRelatedVulnerability.objects.filter(is_vulnerable=False).count() == 16
6262

0 commit comments

Comments
 (0)