Skip to content

Make Finding Group Push to Jira Push Push to Duplicate Issues#13573

Merged
valentijnscholten merged 5 commits intoDefectDojo:devfrom
Jino-T:finding-group-push-individual-jira
Nov 5, 2025
Merged

Make Finding Group Push to Jira Push Push to Duplicate Issues#13573
valentijnscholten merged 5 commits intoDefectDojo:devfrom
Jino-T:finding-group-push-individual-jira

Conversation

@Jino-T
Copy link
Copy Markdown
Contributor

@Jino-T Jino-T commented Oct 30, 2025

[sc-11942]

Potential future work:

  • Have vui ui / OS ui display multiple Jira Issues for applicable findings
  • API (Ex: /api/v2/finding_groups/{id}/) doesn't show all Jirra Issues. The results only show the Jira Issues associated with the Finding Group

@dryrunsecurity
Copy link
Copy Markdown

dryrunsecurity Bot commented Oct 30, 2025

DryRun Security

🔴 Risk threshold exceeded.

This pull request modifies dojo/jira_link/helper.py and includes sensitive edits to that file (configurable via .dryrunsecurity.yaml), and introduces a potential resource exhaustion/DoS risk by synchronously iterating over findings and calling update_jira_issue for each, which can trigger many Jira API calls and hit rate limits.

🔴 Configured Codepaths Edit in dojo/jira_link/helper.py
Vulnerability Configured Codepaths Edit
Description Sensitive edits detected for this file. Sensitive file paths and allowed authors can be configured in .dryrunsecurity.yaml.
🔴 Configured Codepaths Edit in dojo/jira_link/helper.py
Vulnerability Configured Codepaths Edit
Description Sensitive edits detected for this file. Sensitive file paths and allowed authors can be configured in .dryrunsecurity.yaml.
Resource Exhaustion / Denial of Service in dojo/jira_link/helper.py
Vulnerability Resource Exhaustion / Denial of Service
Description The push_finding_group_to_jira function iterates over all findings within a finding_group that have an associated Jira issue. For each finding, it calls update_jira_issue. Assuming update_jira_issue makes an external API call to Jira, this creates a synchronous loop that can trigger a high volume of individual API calls. If a finding_group contains a large number of findings, this can lead to exceeding Jira's API rate limits, causing significant performance degradation for the task, and potentially leading to a denial of service for the Jira integration or the application's worker processes.

for finding in finding_group.findings.filter(jira_issue__isnull=False):
update_jira_issue(finding, *args, **kwargs)

We've notified @mtesauro.


All finding details can be found in the DryRun Security Dashboard.

Comment thread dojo/jira_link/helper.py Outdated
Comment thread dojo/jira_link/helper.py
@valentijnscholten valentijnscholten modified the milestones: 2.52.0, 2.53.0 Nov 1, 2025
@valentijnscholten valentijnscholten merged commit f689f84 into DefectDojo:dev Nov 5, 2025
150 checks passed
Maffooch added a commit to valentijnscholten/django-DefectDojo that referenced this pull request Feb 16, 2026
…Dojo#13573)

* Made file changes to test in dojo pro

* Changed logic so that individual findings are pushed to jira only after the groups association is confirmed

* Apply suggestion from @Maffooch

* Rerecord tests

---------

Co-authored-by: Cody Maffucci <46459665+Maffooch@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants