Sonatype Nexus Repository Manager OSS/Pro 2.14.5 / 3.7.1 XSS

Type packetstorm
Reporter W. Schober
Modified 2018-02-08T00:00:00


                                            `SEC Consult Vulnerability Lab Security Advisory < 20180208-0 >  
title: Multiple Cross-Site Scripting Vulnerabilities  
product: Sonatype Nexus Repository Manager OSS/Pro  
vulnerable version: <=2.14.5, <=3.7.1  
fixed version: 2.14.6, 3.8.0  
CVE number: CVE-2018-5306, CVE-2018-5307  
impact: Medium  
found: 2017-12-12  
by: Werner Schober, Daniel Ostovary (Office Vienna)  
SEC Consult Vulnerability Lab  
An integrated part of SEC Consult  
Bangkok - Berlin - Linz - Luxembourg - Montreal - Moscow  
Kuala Lumpur - Singapore - Vienna (HQ) - Vilnius - Zurich  
Vendor description:  
"At Sonatype we have a long history of partnership with the world of open  
source software development. From our humble beginning as core contributors  
to Apache Maven, to supporting the worldas largest repository of open source  
components (Central), to distributing the world's most popular repository  
manager (Nexus), we exist for one simple reason; to help accelerate software  
Business recommendation:  
The Sonatype Nexus Repository Server is affected by multiple XSS vulnerabilities  
which could be used by an attacker to execute JavaScript code in the user's  
The vendor provides a patch for both version 2 and 3 of the product which should  
be installed immediately.  
It is recommended to conduct a thorough security review by IT security  
professionals in order to identify potential other security issues.  
Vulnerability overview/description:  
1) Reflected XSS vulnerability  
The parameters "repoId" and "format" of the "healthCheckFileDetail" function  
are vulnerable to reflected XSS. If the attacker can lure a user into  
clicking a crafted link he could execute arbitrary JavaScript code.  
In case the user has sufficient permissions, an attacker can create arbitrary  
(administrative) users or perform stored XSS attacks (see 2).  
2) Stored XSS vulnerabilities  
The application is vulnerable to multiple stored XSS vulnerabilities,  
which are described in the following list.  
2.1) The first one is located in the "File Upload" functionality of  
the "Staging Upload". Uploading a file with JavaScript code  
in its name allows to store JavaScript code, which gets  
triggered every time the file name is shown (e.g. in "Repositories").  
2.2) The second stored XSS vulnerability is more precisely  
being considered as stored DOM injection. This vulnerability  
affects the functionality of creating a new user. When doing  
so it is possible to inject JavaScript/HTML code in the username,  
which later gets rendered/executed every time the username is  
2.3) The third stored XSS vulnerability is also a stored DOM injection.  
It affects the "IQ Server Connection"/"IQ Server Dashboard"  
functionality. The "IQ Server URL" field in the "IQ Server  
Connection" allows to inject JavaScript/HTML code into the  
menu bulletpoint "IQ Server Dashboard".  
The vendor provided the following CVE numbers:  
* CVE-2018-5306 - covers the XSS vulnerabilities in Nexus 3  
* CVE-2018-5307 - covers the XSS vulnerabilities in Nexus 2  
Proof of concept:  
1) Reflected XSS vulnerability  
By luring an attacker into clicking the following link, an arbitrary  
JavaScript payload will be executed:  
Detail/.../index.html?repoId=public&format=<a href=javascript:alert(1)>sectest</test>  
Vulnerable parameters:  
-) repoId  
-) format  
2) Stored XSS vulnerabilities  
***Please note that only users with access to the respective functionalities  
are susceptive to the following stored XSS vulnerabilities.***  
The staging upload allows an attacker to upload a file, which contains a  
JavaScript payload in the filename. An example for a filename containing a  
"malicious" payload is as follows: "<img src=x onerror=alert(1)>.jpg"  
This file can be uploaded flawlessly and everytime the filename is displayed,  
the JavaScript payload gets executed.  
An attacker is able to create a new user, which contains a malicious JavaScript  
payload in the username. As an example the following username can be used:  
The payload is executed everytime the username is displayed (e.g. Login as  
EvilAdmin -> Create Repository -> Access repository via "Repositories" ->  
JavaScript code is being executed)  
The nexus server allows to setup an IQ server connection. The server name is not  
validated and therefore allows the permanent injection of JavaScript code. To  
demonstrate the vulnerability the following IQ server URL can be set:  
''</a><img onload=alert(1)  
src="/nexus/static/icons/glyph_help.png" width="0"  
The payload is executed everytime someone logs into the application.  
Vulnerable / tested versions:  
These vulnerabilities have been found in the version 2.13.0-01. However none of  
the patch notes following the version 2.13.0-01 indicate a fix of these  
Vendor contact timeline:  
2017-12-13: Contacting vendor through (PGP encrypted)  
2017-12-13: Sonatype responded that they are investigating the reported issues.  
2017-12-15: Sonatype informed us that they are prioritizing a fix for all  
three issues disclosed. The current estimate for an available  
release is in the middle of January  
2018-01-04: Sonatype followed up with more details and offered to request  
CVEs for the vulnerabilities. SEC Consult accepted that offer  
and request the affected versions as well as a planned release  
2018-01-17: Sonatype replied that they identified more issues in other products  
(Nexus Server 2 and Nexus Server 3) with the same root cause and  
therefore need more time to fix the issues. The assigned CVE  
is CVE-2018-5307.  
2018-01-25: Vendor provides updated information for affected version 2  
2018-02-06: Vendor sends further information on affected versions & CVE numbers  
2018-02-08: Vendor makes public announcement of security issues  
2018-02-08: Public release of SEC Consult security advisory  
The identified vulnerabilities have been fixed in version 2.14.6 and 3.8.0.  
The latest versions can be downloaded at the following URLs linked from the  
vendor's security advisory.  
Nexus Repository Manager version 3: (CVE-2018-5306)  
Nexus Repository Manager version 2: (CVE-2018-5307)  
No workaround available.  
Advisory URL:  
SEC Consult Vulnerability Lab  
SEC Consult  
Bangkok - Berlin - Linz - Luxembourg - Montreal - Moscow  
Kuala Lumpur - Singapore - Vienna (HQ) - Vilnius - Zurich  
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  
Interested in improving your cyber security with the experts of SEC Consult?  
Contact our local offices  
Mail: research at sec-consult dot com  
EOF W. Schober, D. Ostovary / @2018