[Bugcrowd] JSM customers can override "JSM public comments enabled" setting and get comments
Description
Jira users can configure an approval when they start a new approval, this allows to override JSM public comments enabled setting. However, although JSM customers do not have this option on UI, the server allow them to use the endpoint and use this feature. This allows them to override JSM public comments enabled setting.
Steps to reproduce:
Part 1. Configuration
-
Log in as admin, enable Jira Service Management if it is not enabled
-
On the left-side panel click
Apps->Approval Path -
Go to
Settings->Generaland enableAllow manual initiation of approvals -
Go to
Settings->JSM, enableEnable Jira Service Management Customer accessand disablePublic comment visibility -
Go to
Definitions -
Click
Create -
Set any name
-
Select the JSM project in
Space -
Enable
Available for JSM customersandCan be started by JSM customers, disableJSM public comments enabled -
Click
Add step-> and theUserstep, select the current user in the step settings -
Click
Save definition
Part 2. The vulnerability
-
Go to
https://<INSTANCE>.atlassian.net/servicedeskin an incognito browser window and sign up -
Confirm email to complete sign up
-
Create any request and open it
-
Ensure that you have only
StartandView definitionbuttons in theActionscolumn -
Go to Burp Suite -> Proxy -> Proxy settings and add 2 match and replace rules:
-
replace
Allowed":falsebyAllowed":truein response body -
replace
Enabled":falsebyEnabled":truein response body
-
-
Reload the page
-
Click
Parametrize-> enableJSM public comments enabledand clickStart -
Open the ticket as admin
-
On the right-side panel expand
Approval Path -
Enable
Add commentand approve with comment -
The app will add a public comment with the provided comment. If you start the approval with
Startbutton (the only available for JSM customers), the comment will be added as internal note not available for JSM customers (you can repeat the steps but use theStartbutton to ensure). So, the customer was able to override the setting
@Piotr Haraburda Okay, then this is Ready to Merge
@Adam Lipiński I talked with @Kamil Zarychta and we can ignore that as long as it is checked on backend. There is no easy solution to prevent user from getting access to parametrize view when he changes response body.
QA pass completed. Even if the user “hacks” access to parametrize settings and change anything, the approval will still start with the default settings.
I’ve also confirm that JSM admin can still parametrize the approval without issues.
One thing that I am not sure of if it is okay that we still allow enabling parametrize UI to be seen by JSM customers with the “match and replace” tool (the below steps)
@Kamil Zarychta should I create a new ticket for this or is this okay as long as the app does not accept the parametrization performed by the JSM customer?
The issue has been successfully reproduced by QA with provided steps.