Skip to content

Commit 6d45730

Browse files
committed
Review all V2 pipelines
Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com>
1 parent b8f3936 commit 6d45730

17 files changed

+59
-6
lines changed

vulnerabilities/importers/fireeye.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ def matcher_url(ref) -> str:
112112
"""
113113
Returns URL of the reference markup from reference url in Markdown format
114114
"""
115-
markup_regex = "\[([^\[]+)]\(\s*(http[s]?://.+)\s*\)"
115+
markup_regex = r"\[([^\[]+)]\(\s*(http[s]?://.+)\s*\)"
116116
matched_markup = re.findall(markup_regex, ref)
117117
if matched_markup:
118118
return matched_markup[0][1]

vulnerabilities/pipelines/v2_importers/alpine_linux_importer.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
# See https://aboutcode.org for more information about nexB OSS projects.
88
#
99

10+
import json
1011
import logging
1112
from pathlib import Path
1213
from typing import Any
@@ -244,4 +245,5 @@ def load_advisories(
244245
references=references,
245246
affected_packages=affected_packages,
246247
url=url,
248+
original_advisory_text=json.dumps(pkg_infos, indent=2, ensure_ascii=False),
247249
)

vulnerabilities/pipelines/v2_importers/apache_tomcat_importer.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ def collect_advisories(self) -> Iterable[AdvisoryDataV2]:
111111
summary=advisory_list[0].summary,
112112
affected_packages=affected_packages,
113113
url=page_url,
114+
original_advisory_text=str(content),
114115
)
115116

116117
except Exception as e:

vulnerabilities/pipelines/v2_importers/archlinux_importer.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,13 @@
1414
from packageurl import PackageURL
1515
from univers.version_range import ArchLinuxVersionRange
1616

17+
from vulnerabilities import severity_systems
1718
from vulnerabilities.importer import AdvisoryDataV2
1819
from vulnerabilities.importer import AffectedPackageV2
1920
from vulnerabilities.importer import ReferenceV2
21+
from vulnerabilities.importer import VulnerabilitySeverity
2022
from vulnerabilities.pipelines import VulnerableCodeBaseImporterPipelineV2
23+
from vulnerabilities.severity_systems import SCORING_SYSTEMS
2124
from vulnerabilities.utils import fetch_response
2225

2326

@@ -53,7 +56,9 @@ def collect_advisories(self) -> Iterable[AdvisoryDataV2]:
5356
def parse_advisory(self, record) -> AdvisoryDataV2:
5457
affected_packages = []
5558
references = []
59+
severities = []
5660
avg_name = record.get("name")
61+
severity = record.get("severity")
5762
aliases = record.get("issues", [])
5863
aliases.extend(record.get("advisories", []))
5964
summary = record.get("type", "")
@@ -92,13 +97,26 @@ def parse_advisory(self, record) -> AdvisoryDataV2:
9297
)
9398
)
9499

100+
if severity not in severity_systems.ARCHLINUX.choices:
101+
self.log(f"Unknown severity {severity} for {avg_name}")
102+
severity = None
103+
if severity:
104+
severities = [
105+
VulnerabilitySeverity(
106+
system=severity_systems.ARCHLINUX,
107+
value=severity,
108+
url="https://security.archlinux.org/{avg_name}.json",
109+
)
110+
]
111+
95112
return AdvisoryDataV2(
96113
advisory_id=avg_name,
97114
aliases=aliases,
98115
summary=summary,
99116
references=references,
100117
affected_packages=affected_packages,
118+
severities=severities,
101119
weaknesses=[],
102120
url=f"https://security.archlinux.org/{avg_name}.json",
103-
original_advisory_text=json.dumps(record),
121+
original_advisory_text=json.dumps(record, indent=2, ensure_ascii=False),
104122
)

vulnerabilities/pipelines/v2_importers/debian_importer.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
# See https://aboutcode.org for more information about nexB OSS projects.
88
#
99

10+
import json
1011
import re
1112
from typing import Any
1213
from typing import Iterable
@@ -171,6 +172,7 @@ def parse(self, pkg_name: str, records: Mapping[str, Any]) -> Iterable[AdvisoryD
171172
references=references,
172173
weaknesses=weaknesses,
173174
url=f"https://security-tracker.debian.org/tracker/{record_identifier}",
175+
original_advisory_text=json.dumps(record, indent=2, ensure_ascii=False),
174176
)
175177

176178

vulnerabilities/pipelines/v2_importers/epss_importer_v2.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,4 +83,5 @@ def collect_advisories(self) -> Iterable[AdvisoryDataV2]:
8383
severities=[severity],
8484
references=[references],
8585
url=self.advisory_url,
86+
original_advisory_text=",".join(epss_row),
8687
)

vulnerabilities/pipelines/v2_importers/fireeye_importer_v2.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ def matcher_url(ref) -> str:
154154
"""
155155
Returns URL of the reference markup from reference url in Markdown format
156156
"""
157-
markup_regex = "\[([^\[]+)]\(\s*(http[s]?://.+)\s*\)"
157+
markup_regex = r"\[([^\[]+)]\(\s*(http[s]?://.+)\s*\)"
158158
matched_markup = re.findall(markup_regex, ref)
159159
if matched_markup:
160160
return matched_markup[0][1]

vulnerabilities/pipelines/v2_importers/istio_importer.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ class IstioImporterPipeline(VulnerableCodeBaseImporterPipelineV2):
4242
spdx_license_expression = "Apache-2.0"
4343
license_url = "https://github.com/istio/istio.io/blob/master/LICENSE"
4444
repo_url = "git+https://github.com/istio/istio.io"
45+
run_once = True
4546

4647
precedence = 200
4748

vulnerabilities/pipelines/v2_importers/mattermost_importer.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
# See https://aboutcode.org for more information about nexB OSS projects.
88
#
99

10+
import json
1011
from typing import Iterable
1112

1213
from packageurl import PackageURL
@@ -122,5 +123,7 @@ def collect_advisories(self) -> Iterable[AdvisoryDataV2]:
122123
summary=details,
123124
references=[reference],
124125
affected_packages=affected_packages,
126+
severities=severities,
125127
url=self.url,
128+
original_advisory_text=json.dumps(advisory, indent=2, ensure_ascii=False),
126129
)

vulnerabilities/pipelines/v2_importers/nginx_importer.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def collect_advisories(self):
6262
vulnerability_list = soup.select("li p")
6363
for vulnerability_info in vulnerability_list:
6464
ngnix_advisory = parse_advisory_data_from_paragraph(vulnerability_info)
65-
yield to_advisory_data(ngnix_advisory)
65+
yield to_advisory_data(ngnix_advisory, vulnerability_info)
6666

6767

6868
class NginxAdvisory(NamedTuple):
@@ -79,7 +79,7 @@ def to_dict(self):
7979
return self._asdict()
8080

8181

82-
def to_advisory_data(nginx_adv: NginxAdvisory) -> AdvisoryDataV2:
82+
def to_advisory_data(nginx_adv: NginxAdvisory, vulnerability_info) -> AdvisoryDataV2:
8383
"""
8484
Return AdvisoryDataV2 from an NginxAdvisory tuple.
8585
"""
@@ -150,6 +150,7 @@ def to_advisory_data(nginx_adv: NginxAdvisory) -> AdvisoryDataV2:
150150
references=nginx_adv.references,
151151
patches=nginx_adv.patches,
152152
url="https://nginx.org/en/security_advisories.html",
153+
original_advisory_text=str(vulnerability_info),
153154
)
154155

155156

0 commit comments

Comments
 (0)