Skip to content

Conversation

Jino-T
Copy link
Contributor

@Jino-T Jino-T commented Sep 26, 2025

[sc-11825]

Copy link

DryRun Security

🔴 Risk threshold exceeded.

This pull request modifies dojo/jira_link/helper.py and includes sensitive-path edits and a potential stored XSS: user-controlled fields (engagement.name and engagement.branch_tag) are directly concatenated into a Jira issue description and sent without explicit sanitization, which could allow stored cross-site scripting in Jira. The scanner flags the file for sensitive edits (configurable via .dryrunsecurity.yaml) and warns about the XSS risk.

🔴 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.
Stored XSS in Jira Description in dojo/jira_link/helper.py
Vulnerability Stored XSS in Jira Description
Description The engagement.name and engagement.branch_tag fields, which are likely user-controlled, are directly concatenated to form the description field of a Jira issue. This description is then sent to the Jira API without explicit sanitization or encoding in the application code. If Jira's rendering engine for issue descriptions does not adequately sanitize or escape malicious input (e.g., HTML or specific Jira markup that can execute client-side scripts), an attacker could inject and store malicious scripts. These scripts would then execute in the browsers of other users viewing the affected Jira issue, leading to Stored Cross-Site Scripting (XSS).

description += "\nBranch: " + branch_tag
jira_issue_update_kwargs = {
"summary": epic_name,

We've notified @mtesauro.


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

Copy link

dryrunsecurity bot commented Sep 26, 2025

DryRun Security

🔴 Risk threshold exceeded.

This pull request modifies dojo/jira_link/helper.py and contains sensitive edits to that file, and it also introduces or leaves unchanged code that concatenates user-controlled engagement.name and engagement.branch_tag into Jira issue descriptions without sanitization, creating a stored XSS risk when those descriptions are rendered in Jira.

🔴 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.
Stored XSS in Jira Description in dojo/jira_link/helper.py
Vulnerability Stored XSS in Jira Description
Description The engagement.name and engagement.branch_tag fields, which are assumed to be user-controlled, are directly concatenated to form the description field of a Jira issue. This description is then sent to the Jira API via the jira-python library without explicit sanitization or encoding in the application code. Research into Jira vulnerabilities confirms that Jira's rendering engine for issue descriptions has been susceptible to XSS if malicious input (e.g., HTML or specific Jira markup that can execute client-side scripts) is not adequately sanitized or escaped. Without application-level sanitization or explicit sanitization by the jira-python library, an attacker could inject and store malicious scripts in these fields. These scripts would then execute in the browsers of other users viewing the affected Jira issue, leading to Stored Cross-Site Scripting (XSS).

description += "\nBranch: " + branch_tag
jira_issue_update_kwargs = {
"summary": epic_name,
"description": description,

Stored XSS in Jira Description in dojo/jira_link/helper.py
Vulnerability Stored XSS in Jira Description
Description The engagement.name and engagement.branch_tag fields, which are likely user-controlled, are directly concatenated to form the description field of a Jira issue. This description is then sent to the Jira API without explicit sanitization or encoding in the application code. Research indicates that Jira's rendering engines (Wiki Markup/Markdown) have been vulnerable to XSS, and the jira-python library does not perform input sanitization. This allows an attacker to inject and store malicious scripts that execute in the browsers of other users viewing the affected Jira issue.

description += "\nBranch: " + branch_tag
issue_dict = {
"project": {
"key": jira_project.project_key,

We've notified @mtesauro.


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

Copy link
Contributor

@mtesauro mtesauro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved

@rossops rossops merged commit df70797 into DefectDojo:bugfix Sep 29, 2025
84 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants