Skip to content

Commit e8ed27e

Browse files
fix(dependency-track): store matrix as unique_id_from_tool, uuid as vuln_id_from_tool
- Initialize unique_id_from_tool from the top-level matrix field (backward compat) - Override with vulnerability.matrix if present (newer DT export formats) - Initialize vuln_id_from_tool to None before conditional assignment - Remove duplicate unique_id_from_tool kwarg that caused a syntax error - Update test assertion to expect the full composite matrix string
1 parent cb001d6 commit e8ed27e

2 files changed

Lines changed: 5 additions & 3 deletions

File tree

dojo/tools/dependency_track/parser.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,9 +196,12 @@ def _convert_dependency_track_finding_to_dojo_finding(self, dependency_track_fin
196196
vulnerability_description += "\nVulnerability Subtitle: {subtitle}".format(subtitle=dependency_track_finding["vulnerability"]["subtitle"])
197197
if "description" in dependency_track_finding["vulnerability"] and dependency_track_finding["vulnerability"]["description"] is not None:
198198
vulnerability_description += "\nVulnerability Description: {description}".format(description=dependency_track_finding["vulnerability"]["description"])
199+
vuln_id_from_tool = None
200+
unique_id_from_tool = dependency_track_finding.get("matrix")
199201
if "uuid" in dependency_track_finding["vulnerability"] and dependency_track_finding["vulnerability"]["uuid"] is not None:
200-
unique_id_from_tool = dependency_track_finding["vulnerability"]["uuid"]
201202
vuln_id_from_tool = dependency_track_finding["vulnerability"]["uuid"]
203+
if "matrix" in dependency_track_finding["vulnerability"] and dependency_track_finding["vulnerability"]["matrix"] is not None:
204+
unique_id_from_tool = dependency_track_finding["vulnerability"]["matrix"]
202205

203206
# Get severity according to Dependency Track and convert it to a severity DefectDojo understands
204207
dependency_track_severity = dependency_track_finding["vulnerability"]["severity"]
@@ -232,7 +235,6 @@ def _convert_dependency_track_finding_to_dojo_finding(self, dependency_track_fin
232235
file_path=file_path,
233236
unique_id_from_tool=unique_id_from_tool,
234237
vuln_id_from_tool=vuln_id_from_tool,
235-
unique_id_from_tool=dependency_track_finding.get("matrix"),
236238
static_finding=True,
237239
dynamic_finding=False)
238240

unittests/tools/test_dependency_track_parser.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def test_dependency_track_parser_has_many_findings(self):
4141
self.assertIsNone(findings[1].unsaved_vulnerability_ids)
4242
self.assertEqual(1, len(findings[2].unsaved_vulnerability_ids))
4343
self.assertEqual("CVE-2016-2097", findings[2].unsaved_vulnerability_ids[0])
44-
self.assertEqual("900991f6-335a-49cb-9bf6-87b545f960ce", findings[2].unique_id_from_tool)
44+
self.assertEqual("8d7f5fcd-210b-491d-a29e-904c2e01b281:3e52f829-3317-48c3-bde1-342c610bd223:900991f6-335a-49cb-9bf6-87b545f960ce", findings[2].unique_id_from_tool)
4545
self.assertEqual("900991f6-335a-49cb-9bf6-87b545f960ce", findings[2].vuln_id_from_tool)
4646
self.assertTrue(findings[2].false_p)
4747
self.assertTrue(findings[2].is_mitigated)

0 commit comments

Comments
 (0)