Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion dojo/settings/settings.dist.py
Original file line number Diff line number Diff line change
Expand Up @@ -1634,7 +1634,7 @@ def saml2_attrib_map_format(din):
"Coverity Scan JSON Report": DEDUPE_ALGO_HASH_CODE,
"Cobalt.io API": DEDUPE_ALGO_UNIQUE_ID_FROM_TOOL,
"Crunch42 Scan": DEDUPE_ALGO_UNIQUE_ID_FROM_TOOL,
"Dependency Track Finding Packaging Format (FPF) Export": DEDUPE_ALGO_HASH_CODE,
"Dependency Track Finding Packaging Format (FPF) Export": DEDUPE_ALGO_UNIQUE_ID_FROM_TOOL_OR_HASH_CODE,
"Horusec Scan": DEDUPE_ALGO_HASH_CODE,
"Mobsfscan Scan": DEDUPE_ALGO_HASH_CODE,
"SonarQube Scan detailed": DEDUPE_ALGO_UNIQUE_ID_FROM_TOOL,
Expand Down
4 changes: 2 additions & 2 deletions dojo/tools/dependency_track/parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ def _convert_dependency_track_finding_to_dojo_finding(self, dependency_track_fin
if "description" in dependency_track_finding["vulnerability"] and dependency_track_finding["vulnerability"]["description"] is not None:
vulnerability_description += "\nVulnerability Description: {description}".format(description=dependency_track_finding["vulnerability"]["description"])
if "uuid" in dependency_track_finding["vulnerability"] and dependency_track_finding["vulnerability"]["uuid"] is not None:
vuln_id_from_tool = dependency_track_finding["vulnerability"]["uuid"]
unique_id_from_tool = dependency_track_finding["vulnerability"]["uuid"]
Comment thread
AndreVirtimo marked this conversation as resolved.

# Get severity according to Dependency Track and convert it to a severity DefectDojo understands
dependency_track_severity = dependency_track_finding["vulnerability"]["severity"]
Expand Down Expand Up @@ -229,7 +229,7 @@ def _convert_dependency_track_finding_to_dojo_finding(self, dependency_track_fin
component_name=component_name,
component_version=component_version,
file_path=file_path,
vuln_id_from_tool=vuln_id_from_tool,
unique_id_from_tool=unique_id_from_tool,
Comment thread
AndreVirtimo marked this conversation as resolved.
static_finding=True,
dynamic_finding=False)

Expand Down
9 changes: 6 additions & 3 deletions unittests/tools/test_dependency_track_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ def test_dependency_track_parser_has_many_findings(self):
self.assertIsNone(findings[1].unsaved_vulnerability_ids)
self.assertEqual(1, len(findings[2].unsaved_vulnerability_ids))
self.assertEqual("CVE-2016-2097", findings[2].unsaved_vulnerability_ids[0])
self.assertEqual("900991f6-335a-49cb-9bf6-87b545f960ce", findings[2].unique_id_from_tool)
Comment thread
AndreVirtimo marked this conversation as resolved.
self.assertTrue(findings[2].false_p)
self.assertTrue(findings[2].is_mitigated)
self.assertFalse(findings[2].active)
Expand All @@ -63,7 +64,7 @@ def test_dependency_track_parser_v3_8_0(self):
findings = parser.get_findings(testfile, Test())
self.assertEqual(9, len(findings))
self.assertTrue(all(item.file_path is not None for item in findings))
self.assertTrue(all(item.vuln_id_from_tool is not None for item in findings))
self.assertTrue(all(item.unique_id_from_tool is not None for item in findings))

def test_dependency_track_parser_findings_with_alias(self):
with (
Expand All @@ -74,8 +75,10 @@ def test_dependency_track_parser_findings_with_alias(self):

self.assertEqual(12, len(findings))
self.assertTrue(all(item.file_path is not None for item in findings))
self.assertTrue(all(item.vuln_id_from_tool is not None for item in findings))
self.assertTrue(all(item.unique_id_from_tool is not None for item in findings))
Comment thread
AndreVirtimo marked this conversation as resolved.
self.assertIn("CVE-2022-42004", findings[0].unsaved_vulnerability_ids)
self.assertIn("DSA-5283-1", findings[0].unsaved_vulnerability_ids)
self.assertIn("GHSA-rgv9-q543-rqg4", findings[0].unsaved_vulnerability_ids)

def test_dependency_track_parser_findings_with_empty_alias(self):
with (
Expand All @@ -93,7 +96,7 @@ def test_dependency_track_parser_findings_with_cvssV3_score(self):
findings = parser.get_findings(testfile, Test())
self.assertEqual(12, len(findings))
self.assertTrue(all(item.file_path is not None for item in findings))
self.assertTrue(all(item.vuln_id_from_tool is not None for item in findings))
self.assertTrue(all(item.unique_id_from_tool is not None for item in findings))
Comment thread
AndreVirtimo marked this conversation as resolved.
self.assertIn("CVE-2022-42004", findings[0].unsaved_vulnerability_ids)
self.assertEqual(8.3, findings[0].cvssv3_score)

Expand Down