Skip to content

Commit d73249f

Browse files
committed
Update gentoo to support rgt,rge,rle version ranges
Update the pipeline to use the new AdvisoryDataV2 Signed-off-by: ziad hany <ziadhany2016@gmail.com>
1 parent 6a54c60 commit d73249f

File tree

4 files changed

+18
-11
lines changed

4 files changed

+18
-11
lines changed

vulnerabilities/pipelines/v2_importers/gentoo_importer.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
from univers.versions import GentooVersion
2121
from univers.versions import InvalidVersion
2222

23-
from vulnerabilities.importer import AdvisoryData
23+
from vulnerabilities.importer import AdvisoryDataV2
2424
from vulnerabilities.importer import AffectedPackageV2
2525
from vulnerabilities.importer import ReferenceV2
2626
from vulnerabilities.importer import VulnerabilitySeverity
@@ -53,7 +53,7 @@ def advisories_count(self):
5353
advisory_dir = Path(self.vcs_response.dest_dir)
5454
return sum(1 for _ in advisory_dir.rglob("*.xml"))
5555

56-
def collect_advisories(self) -> Iterable[AdvisoryData]:
56+
def collect_advisories(self) -> Iterable[AdvisoryDataV2]:
5757
base_path = Path(self.vcs_response.dest_dir)
5858
for file_path in base_path.glob("**/*.xml"):
5959
yield from self.process_file(file_path)
@@ -105,11 +105,11 @@ def process_file(self, file):
105105
if severity_value:
106106
severities.append(VulnerabilitySeverity(system=GENERIC, value=severity_value))
107107

108-
yield AdvisoryData(
108+
yield AdvisoryDataV2(
109109
advisory_id=glsa,
110110
aliases=cves,
111111
summary=summary,
112-
references_v2=vuln_references,
112+
references=vuln_references,
113113
severities=severities,
114114
affected_packages=affected_packages,
115115
url=f"https://security.gentoo.org/glsa/{id}",
@@ -176,9 +176,9 @@ def get_affected_and_fixed_purls(affected_elem, logger):
176176
"ge": ">=",
177177
"le": "<=",
178178
"eq": "=",
179-
# "rle": "<=",
180-
# "rge": ">=",
181-
# "rgt": ">",
179+
"rle": "<=",
180+
"rge": ">=",
181+
"rgt": ">",
182182
}
183183
comparator = comparator_dict.get(range_value)
184184
if not comparator:
@@ -195,6 +195,13 @@ def get_affected_and_fixed_purls(affected_elem, logger):
195195
(comparator, info.text)
196196
)
197197

198+
if range_value in ["rgt", "rge", "rle"]:
199+
next_minor_version = GentooVersion(info.text).bump()
200+
invert_comp = "<" if range_value in ["rgt", "rge"] else ">"
201+
purl_ranges_map[(pkg_name, pkg_ns, slot_value)]["fixed_ranges"].add(
202+
(invert_comp, next_minor_version)
203+
)
204+
198205
for (pkg_name, pkg_ns, slot_value), data in purl_ranges_map.items():
199206
qualifiers = {"slot": slot_value} if slot_value else {}
200207
purl = PackageURL(type="ebuild", name=pkg_name, namespace=pkg_ns, qualifiers=qualifiers)

vulnerabilities/tests/test_data/gentoo_v2/glsa-201709-09-expected.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@
1616
"subpath": ""
1717
},
1818
"affected_version_range": "vers:ebuild/0.1.1|<1.9.7",
19-
"fixed_version_range": "vers:ebuild/>=1.9.7",
19+
"fixed_version_range": "vers:ebuild/>1.8.18|<1.9|>=1.9.7",
2020
"introduced_by_commit_patches": [],
2121
"fixed_by_commit_patches": []
2222
}
2323
],
24-
"references_v2": [
24+
"references": [
2525
{
2626
"reference_id": "GLSA-201709-09",
2727
"reference_type": "",

vulnerabilities/tests/test_data/gentoo_v2/glsa-202511-02-expected.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
"fixed_by_commit_patches": []
6060
}
6161
],
62-
"references_v2": [
62+
"references": [
6363
{
6464
"reference_id": "GLSA-202511-02",
6565
"reference_type": "",

vulnerabilities/tests/test_data/gentoo_v2/glsa-202512-01-expected.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"fixed_by_commit_patches": []
2020
}
2121
],
22-
"references_v2": [
22+
"references": [
2323
{
2424
"reference_id": "GLSA-202512-01",
2525
"reference_type": "",

0 commit comments

Comments
 (0)