Skip to content

Commit c1a2688

Browse files
committed
Refactor per review
Signed-off-by: Sampurna Pyne <sampurnapyne1710@gmail.com>
1 parent 9dbdf69 commit c1a2688

File tree

2 files changed

+23
-17
lines changed

2 files changed

+23
-17
lines changed

vulnerabilities/pipelines/v2_importers/vmware_photon_importer_v2.py

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,15 @@
1212
from typing import Iterable
1313

1414
from packageurl import PackageURL
15-
from univers.version_range import RANGE_CLASS_BY_SCHEMES
15+
from univers.version_constraint import VersionConstraint
16+
from univers.version_range import RpmVersionRange
17+
from univers.versions import RpmVersion
1618

1719
from vulnerabilities.importer import AdvisoryDataV2
1820
from vulnerabilities.importer import AffectedPackageV2
1921
from vulnerabilities.importer import VulnerabilitySeverity
2022
from vulnerabilities.pipelines import VulnerableCodeBaseImporterPipelineV2
21-
from vulnerabilities.severity_systems import CVSSV3
23+
from vulnerabilities.severity_systems import GENERIC
2224
from vulnerabilities.utils import fetch_response
2325

2426

@@ -62,7 +64,9 @@ def fetch(self):
6264
self.log(f"Fetching `{url}`")
6365
response = fetch_response(url)
6466
if response:
65-
self.records.extend(response.json())
67+
for record in response.json():
68+
record["source_url"] = url
69+
self.records.append(record)
6670
self.log(f"Fetched {len(self.records):,d} total records from {len(photon_files)} sources")
6771

6872
def group_records_by_cve(self):
@@ -91,8 +95,6 @@ def advisories_count(self) -> int:
9195
return len(self.cve_to_records)
9296

9397
def collect_advisories(self) -> Iterable[AdvisoryDataV2]:
94-
rpm_range_cls = RANGE_CLASS_BY_SCHEMES["rpm"]
95-
9698
for cve_id, records in self.cve_to_records.items():
9799
affected_packages = []
98100

@@ -110,12 +112,17 @@ def collect_advisories(self) -> Iterable[AdvisoryDataV2]:
110112
)
111113

112114
ver_match = re.match(r"all versions before (.+) are vulnerable", aff_ver)
113-
if ver_match:
114-
affected_version_range = rpm_range_cls.from_string(
115-
f"vers:{rpm_range_cls.scheme}/<{ver_match.group(1)}"
116-
)
117115

118-
fixed_version_range = rpm_range_cls.from_versions([res_ver])
116+
affected_version_range = RpmVersionRange(
117+
constraints=[
118+
VersionConstraint(
119+
comparator="<",
120+
version=RpmVersion(ver_match.group(1)),
121+
)
122+
]
123+
)
124+
125+
fixed_version_range = RpmVersionRange.from_versions([res_ver])
119126

120127
affected_packages.append(
121128
AffectedPackageV2(
@@ -129,16 +136,15 @@ def collect_advisories(self) -> Iterable[AdvisoryDataV2]:
129136
cve_score = records[0].get("cve_score")
130137
severities.append(
131138
VulnerabilitySeverity(
132-
system=CVSSV3,
139+
system=GENERIC,
133140
value=str(cve_score),
134-
scoring_elements="",
135141
)
136142
)
137143

138144
yield AdvisoryDataV2(
139145
advisory_id=cve_id,
140146
affected_packages=affected_packages,
141147
severities=severities,
142-
url=f"https://nvd.nist.gov/vuln/detail/{cve_id}",
148+
url=records[0].get("source_url", self.repo_url),
143149
original_advisory_text=json.dumps(records, indent=2, ensure_ascii=False),
144150
)

vulnerabilities/tests/test_data/vmware_photon/expected.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -163,14 +163,14 @@
163163
"patches": [],
164164
"severities": [
165165
{
166-
"system": "cvssv3",
166+
"system": "generic_textual",
167167
"value": "5.5",
168168
"scoring_elements": ""
169169
}
170170
],
171171
"date_published": null,
172172
"weaknesses": [],
173-
"url": "https://nvd.nist.gov/vuln/detail/CVE-2024-43853"
173+
"url": "https://packages.vmware.com/photon/photon_cve_metadata/cve_data_photon4.0.json"
174174
},
175175
{
176176
"advisory_id": "CVE-2021-45417",
@@ -196,13 +196,13 @@
196196
"patches": [],
197197
"severities": [
198198
{
199-
"system": "cvssv3",
199+
"system": "generic_textual",
200200
"value": "7.8",
201201
"scoring_elements": ""
202202
}
203203
],
204204
"date_published": null,
205205
"weaknesses": [],
206-
"url": "https://nvd.nist.gov/vuln/detail/CVE-2021-45417"
206+
"url": "https://packages.vmware.com/photon/photon_cve_metadata/cve_data_photon4.0.json"
207207
}
208208
]

0 commit comments

Comments
 (0)