Skip to content

Commit ca39c44

Browse files
committed
Update the Ruby importer so the advisory ID is unique
Signed-off-by: ziad hany <ziadhany2016@gmail.com>
1 parent 0b437ae commit ca39c44

File tree

5 files changed

+30
-19
lines changed

5 files changed

+30
-19
lines changed

vulnerabilities/pipelines/v2_importers/ruby_importer.py

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ def collect_advisories(self) -> Iterable[AdvisoryData]:
8787
continue
8888

8989
raw_data = load_yaml(file_path)
90-
advisory_id = file_path.stem
90+
advisory_id = str(file_path.relative_to(base_path).with_suffix(""))
9191
advisory_url = get_advisory_url(
9292
file=file_path,
9393
base_path=base_path,
@@ -123,7 +123,7 @@ def parse_ruby_advisory(advisory_id, record, schema_type, advisory_url):
123123
aliases=get_aliases(record),
124124
summary=get_summary(record),
125125
affected_packages=get_affected_packages(record, purl),
126-
references=get_references(record),
126+
references_v2=get_references(record),
127127
severities=get_severities(record),
128128
date_published=get_publish_time(record),
129129
url=advisory_url,
@@ -158,35 +158,34 @@ def get_affected_packages(record, purl):
158158
for unaffected_version in record.get("unaffected_versions", []):
159159
try:
160160
affected_version_range = GemVersionRange.from_native(unaffected_version).invert()
161-
if not validate_comparators(affected_version_range.constraints):
162-
logger.error(
163-
f"Invalid VersionRange Constraints for unaffected_version: {unaffected_version}"
164-
)
165-
continue
161+
validate_comparators(affected_version_range.constraints)
166162
affected_packages.append(
167163
AffectedPackageV2(
168164
package=purl,
169165
affected_version_range=affected_version_range,
170166
fixed_version_range=None,
171167
)
172168
)
173-
except Exception as e:
174-
logger.error(f"Invalid VersionRange Constraints for unaffected_version: {e}")
169+
except ValueError as e:
170+
logger.error(
171+
f"Invalid VersionRange Constraints for unaffected_version: {unaffected_version} - error: {e}"
172+
)
175173

176174
for patched_version in record.get("patched_versions", []):
177175
try:
178176
fixed_version_range = GemVersionRange.from_native(patched_version)
179-
if not validate_comparators(fixed_version_range.constraints):
180-
continue
177+
validate_comparators(fixed_version_range.constraints)
181178
affected_packages.append(
182179
AffectedPackageV2(
183180
package=purl,
184181
affected_version_range=None,
185182
fixed_version_range=fixed_version_range,
186183
)
187184
)
188-
except Exception as e:
189-
logger.error(f"Invalid VersionRange Constraints for patched_versions: {e}")
185+
except ValueError as e:
186+
logger.error(
187+
f"Invalid VersionRange Constraints for patched_version: {patched_version} - error: {e}"
188+
)
190189

191190
return affected_packages
192191

vulnerabilities/tests/test_data/ruby-v2/gems/CVE-2020-5257-expected.json

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[
22
{
3-
"advisory_id": "CVE-2020-5257",
3+
"advisory_id": "gems/CVE-2020-5257",
44
"aliases": [
55
"CVE-2020-5257",
66
"GHSA-2p5p-m353-833w"
@@ -22,7 +22,13 @@
2222
"fixed_by_commit_patches": []
2323
}
2424
],
25-
"references_v2": [],
25+
"references_v2": [
26+
{
27+
"reference_id": "",
28+
"reference_type": "",
29+
"url": "https://github.com/advisories/GHSA-2p5p-m353-833w"
30+
}
31+
],
2632
"patches": [],
2733
"severities": [
2834
{

vulnerabilities/tests/test_data/ruby-v2/gems/CVE-2024-6531-expected.json

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[
22
{
3-
"advisory_id": "CVE-2024-6531",
3+
"advisory_id": "gems/CVE-2024-6531",
44
"aliases": [
55
"CVE-2024-6531",
66
"GHSA-vc8w-jr9v-vj7f"
@@ -36,7 +36,13 @@
3636
"fixed_by_commit_patches": []
3737
}
3838
],
39-
"references_v2": [],
39+
"references_v2": [
40+
{
41+
"reference_id": "",
42+
"reference_type": "",
43+
"url": "https://github.com/advisories/GHSA-vc8w-jr9v-vj7f"
44+
}
45+
],
4046
"patches": [],
4147
"severities": [
4248
{

vulnerabilities/tests/test_data/ruby-v2/rubies/CVE-2011-2686-expected.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[
22
{
3-
"advisory_id": "CVE-2011-2686",
3+
"advisory_id": "rubies/CVE-2011-2686",
44
"aliases": [
55
"CVE-2011-2686"
66
],

vulnerabilities/tests/test_data/ruby-v2/rubies/CVE-2022-25857-expected.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[
22
{
3-
"advisory_id": "CVE-2022-25857",
3+
"advisory_id": "rubies/CVE-2022-25857",
44
"aliases": [
55
"CVE-2022-25857"
66
],

0 commit comments

Comments
 (0)