Skip to content

Commit ee60902

Browse files
authored
Fix issue #1302 (#1303)
Signed-off-by: Tushar Goel <[email protected]>
1 parent 4e46cc3 commit ee60902

File tree

3 files changed

+33
-17
lines changed

3 files changed

+33
-17
lines changed

CHANGELOG.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ Next Release
88
- We fixed a text-overflow issue in the Essentials tab of the Vulnerability details template.
99
- We added clickable links to the Essentials tab of the Vulnerability details template that enable
1010
the user to navigate to the Fixed by packages tab and the Affected packages tab.
11+
- We fixed severity range issue for handling unknown scores.
1112

1213

1314
Version v33.4.0

vulnerabilities/tests/test_utils.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from vulnerabilities.package_managers import PackageVersion
1616
from vulnerabilities.utils import AffectedPackage
1717
from vulnerabilities.utils import get_item
18+
from vulnerabilities.utils import get_severity_range
1819
from vulnerabilities.utils import nearest_patched_package
1920
from vulnerabilities.utils import resolve_version_range
2021
from vulnerabilities.utils import split_markdown_front_matter
@@ -145,3 +146,8 @@ def test_resolve_version_range_without_ignorable_versions():
145146
"10.0.0",
146147
],
147148
)
149+
150+
151+
def test_get_severity_range():
152+
assert get_severity_range({""}) is None
153+
assert get_severity_range({}) is None

vulnerabilities/utils.py

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -512,20 +512,29 @@ def get_severity_range(severity_list):
512512
'0.1 - 6.9'
513513
>>> get_severity_range({'9.5','critical'})
514514
'9.0 - 10.0'
515-
"""
516-
if len(severity_list) > 1:
517-
score_map = {
518-
"low": [0.1, 3],
519-
"moderate": [4.0, 6.9],
520-
"medium": [4.0, 6.9],
521-
"high": [7.0, 8.9],
522-
"critical": [9.0, 10.0],
523-
}
524-
525-
score_list = []
526-
for score in severity_list:
527-
try:
528-
score_list.append(float(score))
529-
except ValueError:
530-
score_list.extend(score_map[score.lower()])
531-
return f"{min(score_list)} - {max(score_list)}"
515+
>>> get_severity_range({'9.5','critical','unknown'})
516+
'9.0 - 10.0'
517+
>>> get_severity_range({})
518+
"""
519+
if len(severity_list) < 1:
520+
return
521+
score_map = {
522+
"low": [0.1, 3],
523+
"moderate": [4.0, 6.9],
524+
"medium": [4.0, 6.9],
525+
"high": [7.0, 8.9],
526+
"important": [7.0, 8.9],
527+
"critical": [9.0, 10.0],
528+
}
529+
530+
score_list = []
531+
for score in severity_list:
532+
try:
533+
score_list.append(float(score))
534+
except ValueError:
535+
score_range = score_map.get(score.lower()) or []
536+
if score_range:
537+
score_list.extend(score_range)
538+
if not score_list:
539+
return
540+
return f"{min(score_list)} - {max(score_list)}"

0 commit comments

Comments
 (0)