SonarQube Jenkins Plugin - Plain Text Password

EDB-ID:

30409




Platform:

PHP

Date:

2013-12-18


###################################################

1. ###  Advisory Information ###

Title: SonarQube Jenkins Plugin - Plain Text Password
Date published: 2013-12-05
Date of last update: 2013-12-05
Vendors contacted: SonarQube and Jenkins CI
Discovered by: Christian Catalano
Severity: High


2. ###  Vulnerability Information ###

CVE reference     : CVE-2013-5676
CVSS v2 Base Score: 9.0
CVSS v2 Vector    : (AV:N/AC:L/Au:S/C:C/I:C/A:C)
Component/s       : Jenkins SonarQube Plugin
Class             : plain text password


3. ### Introduction ###

Jenkins CI is an extendable open source continuous integration server
http://jenkins-ci.org.

Jenkins SonarQube Plugin  allows you to trigger SonarQube analysis
from Jenkins CI using either a:

- Build step to trigger the analysis with the SonarQube Runner
- Post-build action to trigger the analysis with Maven

http://docs.codehaus.org/display/SONAR/Jenkins+Plugin


4. ### Vulnerability Description ###

The default installation and configuration of Jenkins SonarQube Plugin
in Jenkins CI is prone to a security vulnerability.

This vulnerability could be exploited by a remote attacker (a jenkins
malicious user with Manage Jenkins enabled) to obtain the SonarQube's
credentials.


5. ### Technical Description / Proof of Concept Code ###

Below is a harmless test that can be executed to check if a Jenkins
SonarQube Plugin installation is vulnerable.

Using a browser with a web proxy go to the following URL:

https://jenkinsserver:9444/jenkins/configure

check the parameter "sonar.sonarPassword" in Sonar installations section.

A vulnerable installation will show the password in plain text.


6. ### Business Impact ###

An attacker (a jenkins malicious user with Manage Jenkins enabled) can
obtain the SonarQube's credentials.


7. ### Systems Affected ###

This vulnerability was tested against:
Jenkins CI v1.523 and SonarQube Plugin v3.7
Older versions are probably affected too, but they were not checked.


8. ### Vendor Information, Solutions and Workarounds ###

There is the ability to encrypt the "sonar.password" property with the
SonarQube encryption mechanism:

http://docs.codehaus.org/display/SONAR/Settings+Encryption

The sonar.password property is only encryptable since SonarQube v3.7


9. ### Credits ###

This vulnerability has been discovered by:
Christian Catalano aka wastasy ch(dot)catalano(at)gmail(dot)com


10. ### Vulnerability History ###

August   21th, 2013: Vulnerability identification
September 4th, 2013: Vendor notification [Jenkins CI]
November 19th, 2013: Vulnerability confirmation [Jenkins CI]
November 29th, 2013: Vendor notification [SonarQube]
December  2nd, 2013: Vendor solution [SonarQube]
December  6th, 2013: Vulnerability disclosure


11. ### Disclaimer ###

The information contained within this advisory is supplied "as-is"
with no warranties or guarantees of fitness of use or otherwise.
I accept no responsibility for any damage caused by the use or misuse
of this information.

###################################################