Skip to content

Commit f113c70

Browse files
authored
Merge pull request #14936 from DefectDojo/bugfix
Release 2.59.0: Merge Bugfix into Dev
2 parents f69b0f2 + 8641c20 commit f113c70

2 files changed

Lines changed: 15 additions & 2 deletions

File tree

docs/content/releases/pro/changelog.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,18 @@ For Open Source release notes, please see the [Releases page on GitHub](https://
1919

2020
## May 2026: v2.58
2121

22+
### May 26, 2026: v2.58.4
23+
24+
* **(Pro UI)** Migrated the Pro UI select buttons to the new shared component for consistent behavior across forms.
25+
* **(Reports)** Lowered the minimum permission required to access reporting, so more roles can reach reports without elevated privileges.
26+
* **(Tools)** CycloneDX parser no longer drops the `vector` field on import.
27+
28+
### May 18, 2026: v2.58.3
29+
30+
* **(Licensing)** Pro features are now blocked at 130% license usage, with weekly finding-usage enforcement backed by a new auditable multi-enforcement License Policy. The capacity alert threshold was raised from 80% to 90%.
31+
* **(Pro UI)** Added UI support for relative location relationships.
32+
* **(Permissions)** Finding duplicate API actions now enforce object-level permission checks, report views are scoped to the requesting user's authorized products, and location finding references are anchored to the finding's own product.
33+
2234
### May 11, 2026: v2.58.2
2335

2436
* **(Connectors)** Connectors now support subtypes, so a single connector type can be configured against multiple flavors of the same upstream tool.

dojo/tools/sarif/parser.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -385,8 +385,9 @@ def customize_finding(self, finding, result, rule, location):
385385
def get_rules(run):
386386
rules = {}
387387
rules_array = run["tool"]["driver"].get("rules", [])
388-
if len(rules_array) == 0 and run["tool"].get("extensions") is not None:
389-
rules_array = run["tool"]["extensions"][0].get("rules", [])
388+
if not rules_array:
389+
for extension in run["tool"].get("extensions", []):
390+
rules_array.extend(extension.get("rules", []))
390391
for item in rules_array:
391392
rules[item["id"]] = item
392393
return rules

0 commit comments

Comments
 (0)