Release: Merge release into master from: release/2.50.4#13275
Release: Merge release into master from: release/2.50.4#13275
Conversation
….51.0-dev Release: Merge back 2.50.2 into bugfix from: master-into-bugfix/2.50.2-2.51.0-dev
* sonarqube hotspots sync implementation * params fix * ruff fixes * ruff fixes
Add an Engagement's branch_tag in Jira Epic's description
[docs] update changelog 2.50.3
Added Line Field for SonarQube Scan and SonarQube Scan Detailed Scan Types
🔴 Risk threshold exceeded.This pull request modifies multiple sensitive files (dojo/jira_link/helper.py, dojo/forms.py, dojo/utils.py) triggering configured codepath alerts, introduces a potential stored XSS by inserting unsanitized engagement.name and engagement.branch_tag into Jira issue descriptions (dojo/jira_link/helper.py, lines ~1401–1416), and contains complex SonarQube update logic that may produce incorrect or incomplete transition sequences for hotspots (dojo/tools/api_sonarqube/updater.py, lines ~185–240).
🔴 Configured Codepaths Edit in
|
| 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. |
🔴 Configured Codepaths Edit in dojo/forms.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/utils.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. |
🔴 Configured Codepaths Edit in dojo/forms.py
| Vulnerability | Configured Codepaths Edit |
|---|---|
| Description | Sensitive edits detected for this file. Sensitive file paths and allowed authors can be configured in .dryrunsecurity.yaml. |
🟡 Potential Cross-Site Scripting in dojo/jira_link/helper.py
| Vulnerability | Potential Cross-Site Scripting |
|---|---|
| Description | The patch assigns user-controllable values (engagement.name and engagement.branch_tag) into the Jira issue "description" field without any escaping or sanitization and then submits them to the Jira API. If either engagement.name or engagement.branch_tag can contain attacker-controlled input (for example, via fields a user can set), that input could include HTML or JavaScript payloads. When Jira renders the issue description in its web UI, those payloads may be interpreted as HTML/JS, leading to stored (persistent) XSS. The code paths of concern are the new concatenation into description and passing that description directly in jira_issue_update_kwargs, which sends the value to the server-side rendering context in Jira. |
django-DefectDojo/dojo/jira_link/helper.py
Lines 1401 to 1416 in 3480313
Potential for Inconsistent State due to Complex Logic in dojo/tools/api_sonarqube/updater.py
| Vulnerability | Potential for Inconsistent State due to Complex Logic |
|---|---|
| Description | The logic for updating SonarQube issues and hotspots is complex, involving separate state machines and transition mappings. While the code attempts to differentiate between regular issues and hotspots, the get_sonarqube_required_transitions_for function, particularly the else block for hotspots, does not fully implement a robust transition logic. It only considers the first transition in the transitions list, which might not be sufficient for multi-step transitions or when multiple paths exist to a target state. This could lead to situations where DefectDojo attempts to apply an incorrect or incomplete transition sequence, resulting in an inconsistent state between DefectDojo and SonarQube for hotspots. |
django-DefectDojo/dojo/tools/api_sonarqube/updater.py
Lines 185 to 240 in 3480313
We've notified @mtesauro.
All finding details can be found in the DryRun Security Dashboard.
Release: Merge release into master from: release/2.50.4
Release triggered by
rossops