Skip to content

Commit 822bcfe

Browse files
committed
Replace reference with V2
Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com>
1 parent 1c67eb7 commit 822bcfe

File tree

11 files changed

+30
-26
lines changed

11 files changed

+30
-26
lines changed

vulnerabilities/importers/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@
4242
from vulnerabilities.pipelines import pypa_importer
4343
from vulnerabilities.pipelines import pysec_importer
4444
from vulnerabilities.pipelines.v2_importers import apache_httpd_importer as apache_httpd_v2
45+
from vulnerabilities.pipelines.v2_importers import (
46+
elixir_security_importer as elixir_security_importer_v2,
47+
)
4548
from vulnerabilities.pipelines.v2_importers import github_importer as github_importer_v2
4649
from vulnerabilities.pipelines.v2_importers import gitlab_importer as gitlab_importer_v2
4750
from vulnerabilities.pipelines.v2_importers import npm_importer as npm_importer_v2
@@ -54,6 +57,7 @@
5457
IMPORTERS_REGISTRY = create_registry(
5558
[
5659
nvd_importer_v2.NVDImporterPipeline,
60+
elixir_security_importer_v2.ElixirSecurityImporterPipeline,
5761
github_importer_v2.GitHubAPIImporterPipeline,
5862
npm_importer_v2.NpmImporterPipeline,
5963
vulnrichment_importer_v2.VulnrichImporterPipeline,

vulnerabilities/importers/osv.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
from vulnerabilities.importer import AdvisoryData
2424
from vulnerabilities.importer import AffectedPackage
2525
from vulnerabilities.importer import Reference
26+
from vulnerabilities.importer import ReferenceV2
2627
from vulnerabilities.importer import VulnerabilitySeverity
2728
from vulnerabilities.severity_systems import SCORING_SYSTEMS
2829
from vulnerabilities.utils import build_description
@@ -268,7 +269,7 @@ def get_references_v2(raw_data) -> List[Reference]:
268269
if not url:
269270
logger.error(f"Reference without URL : {ref!r} for OSV id: {raw_data['id']!r}")
270271
continue
271-
references.append(Reference(url=ref["url"]))
272+
references.append(ReferenceV2(url=ref["url"]))
272273
return references
273274

274275

vulnerabilities/pipelines/v2_importers/apache_httpd_importer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
from vulnerabilities.importer import AdvisoryData
2323
from vulnerabilities.importer import AffectedPackage
24-
from vulnerabilities.importer import Reference
24+
from vulnerabilities.importer import ReferenceV2
2525
from vulnerabilities.importer import VulnerabilitySeverity
2626
from vulnerabilities.pipelines import VulnerableCodeBaseImporterPipelineV2
2727
from vulnerabilities.severity_systems import APACHE_HTTPD
@@ -260,7 +260,7 @@ def to_advisory(self, data):
260260
)
261261
)
262262
break
263-
reference = Reference(
263+
reference = ReferenceV2(
264264
reference_id=alias,
265265
url=urllib.parse.urljoin(self.base_url, f"{alias}.json"),
266266
)

vulnerabilities/pipelines/v2_importers/elixir_security_importer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
from vulnerabilities.importer import AdvisoryData
2020
from vulnerabilities.importer import AffectedPackage
21-
from vulnerabilities.importer import Reference
21+
from vulnerabilities.importer import ReferenceV2
2222
from vulnerabilities.pipelines import VulnerableCodeBaseImporterPipelineV2
2323
from vulnerabilities.utils import is_cve
2424
from vulnerabilities.utils import load_yaml
@@ -83,7 +83,7 @@ def process_file(self, file, base_path) -> Iterable[AdvisoryData]:
8383
references = []
8484
link = yaml_file.get("link") or ""
8585
if link:
86-
references.append(Reference(url=link))
86+
references.append(ReferenceV2(url=link))
8787

8888
constraints = []
8989
vrc = HexVersionRange.version_class

vulnerabilities/pipelines/v2_importers/github_importer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
from vulnerabilities import utils
2525
from vulnerabilities.importer import AdvisoryData
2626
from vulnerabilities.importer import AffectedPackage
27-
from vulnerabilities.importer import Reference
27+
from vulnerabilities.importer import ReferenceV2
2828
from vulnerabilities.importer import VulnerabilitySeverity
2929
from vulnerabilities.pipelines import VulnerableCodeBaseImporterPipelineV2
3030
from vulnerabilities.utils import dedupe
@@ -271,7 +271,7 @@ def process_response(
271271
references = get_item(advisory, "references") or []
272272
if references:
273273
urls = (ref["url"] for ref in references)
274-
references = [Reference.from_url(u) for u in urls]
274+
references = [ReferenceV2.from_url(u) for u in urls]
275275

276276
date_published = get_item(advisory, "publishedAt")
277277
if date_published:

vulnerabilities/pipelines/v2_importers/gitlab_importer.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
from vulnerabilities.importer import AdvisoryData
2828
from vulnerabilities.importer import AffectedPackage
29-
from vulnerabilities.importer import Reference
29+
from vulnerabilities.importer import ReferenceV2
3030
from vulnerabilities.pipelines import VulnerableCodeBaseImporterPipelineV2
3131
from vulnerabilities.utils import build_description
3232
from vulnerabilities.utils import get_advisory_url
@@ -237,9 +237,7 @@ def parse_gitlab_advisory(
237237
aliases.remove(advisory_id)
238238
summary = build_description(gitlab_advisory.get("title"), gitlab_advisory.get("description"))
239239
urls = gitlab_advisory.get("urls")
240-
references = [Reference.from_url(u) for u in urls]
241-
242-
print(references)
240+
references = [ReferenceV2.from_url(u) for u in urls]
243241

244242
cwe_ids = gitlab_advisory.get("cwe_ids") or []
245243
cwe_list = list(map(get_cwe_id, cwe_ids))
@@ -264,7 +262,7 @@ def parse_gitlab_advisory(
264262
return AdvisoryData(
265263
aliases=aliases,
266264
summary=summary,
267-
references=references,
265+
references_v2=references,
268266
date_published=date_published,
269267
url=advisory_url,
270268
)

vulnerabilities/pipelines/v2_importers/npm_importer.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
from vulnerabilities.importer import AdvisoryData
2222
from vulnerabilities.importer import AffectedPackage
23-
from vulnerabilities.importer import Reference
23+
from vulnerabilities.importer import ReferenceV2
2424
from vulnerabilities.importer import VulnerabilitySeverity
2525
from vulnerabilities.pipelines import VulnerableCodeBaseImporterPipelineV2
2626
from vulnerabilities.severity_systems import CVSSV2
@@ -100,14 +100,14 @@ def to_advisory_data(self, file: Path) -> Iterable[AdvisoryData]:
100100
self.log(f"Advisory ID not found in {file}")
101101
return
102102

103-
advisory_reference = Reference(
103+
advisory_reference = ReferenceV2(
104104
url=f"https://github.com/nodejs/security-wg/blob/main/vuln/npm/{id}.json",
105105
reference_id=id,
106106
)
107107

108108
for ref in data.get("references") or []:
109109
references.append(
110-
Reference(
110+
ReferenceV2(
111111
url=ref,
112112
)
113113
)

vulnerabilities/pipelines/v2_importers/nvd_importer.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
from vulnerabilities import severity_systems
2222
from vulnerabilities.importer import AdvisoryData
23-
from vulnerabilities.importer import Reference
23+
from vulnerabilities.importer import ReferenceV2
2424
from vulnerabilities.importer import VulnerabilitySeverity
2525
from vulnerabilities.pipelines import VulnerableCodeBaseImporterPipelineV2
2626
from vulnerabilities.utils import get_cwe_id
@@ -267,11 +267,11 @@ def references(self):
267267
# we track each CPE as a reference for now
268268
for cpe in self.cpes:
269269
cpe_url = f"https://nvd.nist.gov/vuln/search/results?adv_search=true&isCpeNameSearch=true&query={cpe}"
270-
references.append(Reference(reference_id=cpe, url=cpe_url))
270+
references.append(ReferenceV2(reference_id=cpe, url=cpe_url))
271271

272272
# FIXME: we also add the CVE proper as a reference, but is this correct?
273273
references.append(
274-
Reference(
274+
ReferenceV2(
275275
url=f"https://nvd.nist.gov/vuln/detail/{self.cve_id}",
276276
reference_id=self.cve_id,
277277
)
@@ -283,7 +283,7 @@ def references(self):
283283
for ru in self.reference_urls
284284
if ru != f"https://nvd.nist.gov/vuln/detail/{self.cve_id}"
285285
]
286-
references.extend([Reference(url=url) for url in ref_urls])
286+
references.extend([ReferenceV2(url=url) for url in ref_urls])
287287

288288
return references
289289

vulnerabilities/pipelines/v2_importers/postgresql_importer.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from vulnerabilities import severity_systems
2020
from vulnerabilities.importer import AdvisoryData
2121
from vulnerabilities.importer import AffectedPackage
22-
from vulnerabilities.importer import Reference
22+
from vulnerabilities.importer import ReferenceV2
2323
from vulnerabilities.importer import VulnerabilitySeverity
2424
from vulnerabilities.pipelines import VulnerableCodeBaseImporterPipelineV2
2525

@@ -122,12 +122,12 @@ def to_advisories(self, data):
122122
pass
123123

124124
references = []
125+
severities = []
125126
vector_link_tag = severity_score_col.find("a")
126127
for a_tag in ref_col.select("a"):
127128
link = a_tag.attrs["href"]
128129
if link.startswith("/"):
129130
link = urlparse.urljoin("https://www.postgresql.org/", link)
130-
severities = []
131131
if "support/security/CVE" in link and vector_link_tag:
132132
parsed_link = urlparse.urlparse(vector_link_tag["href"])
133133
cvss3_vector = urlparse.parse_qs(parsed_link.query).get("vector", [""])[0]
@@ -139,7 +139,7 @@ def to_advisories(self, data):
139139
scoring_elements=cvss3_vector,
140140
)
141141
)
142-
references.append(Reference(url=link, severities=severities))
142+
references.append(ReferenceV2(url=link))
143143

144144
if cve_id:
145145
advisories.append(
@@ -148,6 +148,7 @@ def to_advisories(self, data):
148148
aliases=[],
149149
summary=summary,
150150
references_v2=references,
151+
severities=severities,
151152
affected_packages=affected_packages,
152153
url=f"https://www.postgresql.org/support/security/{cve_id}",
153154
)

vulnerabilities/pipelines/v2_importers/vulnrichment_importer.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from fetchcode.vcs import fetch_via_vcs
99

1010
from vulnerabilities.importer import AdvisoryData
11-
from vulnerabilities.importer import Reference
11+
from vulnerabilities.importer import ReferenceV2
1212
from vulnerabilities.importer import VulnerabilitySeverity
1313
from vulnerabilities.models import VulnerabilityReference
1414
from vulnerabilities.pipelines import VulnerableCodeBaseImporterPipelineV2
@@ -151,7 +151,7 @@ def parse_cve_advisory(self, raw_data, advisory_url):
151151
ref_type = vul_ref_types.get(tag_type)
152152

153153
url = ref.get("url")
154-
reference = Reference(
154+
reference = ReferenceV2(
155155
reference_id=get_reference_id(url),
156156
url=url,
157157
reference_type=ref_type,
@@ -160,7 +160,7 @@ def parse_cve_advisory(self, raw_data, advisory_url):
160160
references.append(reference)
161161

162162
cpes_ref = [
163-
Reference(
163+
ReferenceV2(
164164
reference_id=cpe,
165165
reference_type=VulnerabilityReference.OTHER,
166166
url=f"https://nvd.nist.gov/vuln/search/results?adv_search=true&isCpeNameSearch=true&query={cpe}",

0 commit comments

Comments
 (0)