Reflected XSS in ZOHO ManageEngine ServiceDeskPlus

Project Description

The service desk application Zoho Corporation’s “ManageEngine ServiceDesk Plus” renders a value unfiltered, allowing an attacker to execute arbitrary JavaScript code. The JavaScript code is not stored, but is reflected. The parameter is only present as administrator, which limits its usage in this authenticated context.


Vendor description

“ServiceDesk Plus is a game changer in turning IT teams from daily fire-fighting to delivering awesome customer service. It provides great visibility and central control in dealing with IT issues to ensure that businesses suffer no downtime. For 10 years and running, it has been delivering smiles to millions of IT folks, end users, and stakeholders alike.

Source: https://www.manageengine.com/products/service-desk/

Business recommendation

The vendor published a patch for ServiceDesk Plus with service pack 11010. It is recommended to install the patch with the included patcher. 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

Reflected Cross-Site Scripting (CVE-2020-6843)

A parameter of the module called “geti18nkey” reflects unfiltered user input if it is changed. The corresponding request is frequently sent in the background if a pre-configured network scan was started.

Proof of concept

Reflected Cross-Site Scripting (CVE-2020-6843)

To reproduce the issue visit this URL authenticated as administrator: http://$IP:8080/CustomReportHandler.do?module=geti18nkey&key=<img%20src%20onerror%3dalert(1)>

How the parameter was found:

  1. Authenticate as administrator and add an IP range in Admin -> Networkscan.
  2. Click the “play” button next to the created IP range to start the scan.
  3. To check the status of a started network scan frequent requests like
    http://$IP:8080/CustomReportHandler.do?module=geti18nkey&key=sdp.admin.network.listview.discoverystatus.scanned&sdpcsrfparam=<%someUUID%>
    are sent to the server.
  4. The value of the “key” parameter will be reflected if you change a single character.
    The “sdpcsrfparam” isn’t needed in order to trigger the XSS.
  5. XSS can thus be exploited by calling http://$IP:8080/CustomReportHandler.do?module=geti18nkey&key=<img%20src%20onerror%3dalert(1)>"

Vulnerable / tested versions

The following versions have been tested which were the latest versions available at the time of the test:

  • 10.5
  • 11.0 Build 11007

Vendor contact timeline

2019-12-05Contacting vendor through ManageEngine Security Response Center (MESRC)

Uploaded security advisory to bugbounty.zoho.com

2019-12-09Vendor promised to fix the vulnerability.
2020-01-08Reported issue has been fixed in service pack 11010.
2020-01-22Public release of security advisory.

Solution

The vendor provides an updated version which should be installed immediately.

https://www.manageengine.com/products/service-desk/download.html

The vendor also provided a link to their readme about the new release:

https://www.manageengine.com/products/service-desk/readme.html#11010

Workaround

None.

Advisory URL

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

EOF Johannes Kruchem / @2020

Interested to work with the experts of SEC Consult? Send us your application
Want to improve your own cyber security with the experts of SEC Consult? Contact our local offices.

Project Details

  • TitleReflected XSS
  • ProductZOHO Manageengine ServiceDeskPlus
  • Vulnerable version<= 11.0 Build 11007
  • Fixed version11.0 Build 11010
  • CVE numberCVE-2020-6843
  • Impactmedium
  • Homepagehttps://www.manageengine.com/products/service-desk/
  • Found2019-12-01
  • ByJohannes Kruchem (Office Vienna) | SEC Consult Vulnerability Lab