Unauthenticated sensitive information leakage in ZOHO ServiceDesk Software

Project Description

Unauthenticated attackers are able to access sensitive information, such as tickets, of the ZOHO Corporation ManageEngine ServiceDesk Plus helpdesk solution via the affected “fosagent” functionality. Furthermore, usernames and internal domain names can be enumerated.


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 provides a patched version and it should be installed immediately. Furthermore, a thorough security analysis is highly recommended as only a short spot check has been performed and further critical issues are to be expected. A workaround exists for mitigating vulnerability 1b (user enumeration).

 

Vulnerability overview/description

1) Unauthenticated sensitive information leakage

a) Unauthenticated sensitive information leakage

The software offers functionality (fosagent) that an unauthenticated attacker can exploit in order to gain information of internal “events”. In our test it was possible to access sensitive internal information (tickets) written by users of this application in exchange with the support team. Depending on the contents of the tickets, sensitive data might leak through this functionality. It is likely, that it also depends on the configuration of ServiceDesk Plus which information is stored in those “events”.

b) User Enumeration in AjaxDomainServlet (CVE-2019-15045)

It is possible to collect valid usernames by interacting with the “AjaxDomainServlet” function of the application without prior authentication. This vulnerability is useful to increase the efficiency of brute force attacks. If the username is known, it is easier to find the corresponding password.

Furthermore, the servlet leaks information, whether the user is a locally configured or a domain user and it also leaks the internal domain names of the requested user account.

According to the vendor, the affected feature is intended behaviour and a workaround in order to disable it has been provided (see further below).

Proof of concept

1) Unauthenticated sensitive information leakage

a) Unauthenticated download of internal support ticket information (CVE-2019-15046)

The “fosagent” functionality provides a “download-file” servlet which an unauthenticated attacker can use in order to iterate through existing internal “events”. The information that can be downloaded looks like internal ticket system information and other data exchanged between users and the help desk support team. It is necessary to supply the “log-pos” parameter given a number followed by a colon character and another number to access the corresponding event index. An attacker can just increment those numbers and access different information.

https://$IP/fosagent/repl/download-file?log-pos=1:0

b) User Enumeration in AjaxDomainServlet (CVE-2019-15045)

The following URL can be used to efficiently enumerate user accounts configured within ManageEngine ServiceDesk Plus. No prior authentication is required for this functionality. The “search” parameter is used for supplying the user account name.

https://$IP/domainServlet/AJaxDomainServlet?action=searchLocalAuthDomain&search=$USER

If the user exists and is a local user (configured within the web application) it will show “Not in Domain” as a result. If the user exists and is a domain user (e.g. LDAP) it will show the corresponding internal domain name as a result. If the page stays empty the user does not exist.

Vulnerable / tested versions:

Version 10 has been tested. The vendor did not confirm whether older releases are affected as well.

Vendor contact timeline

2019-07-02Contacting vendor through ManageEngine Security Response Center (MESRC)
Uploaded security advisory to bugbounty.zoho.com
2019-07-02Vendor: acknowledged our report and will get back to us soon.
2019-07-08Asking for a status update; reponse: “we’ve investigated the report and working on the fix now”.
2019-07-10Asking about CVE numbers and requesting heads-up before release.
2019-08-13Asking for a status update.
2019-08-13Vendor: vulnerability has already been fixed and released in version 10509.
2019-08-21Release 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#10509

Workaround

Vulnerability 1b – User Enumeration: the affected feature is intended behaviour for usability but the vendor provided a workaround in order to disable this feature.

The admin can disable this in:
Admin-Self-Service Portal Settings (Configuration – Allow Domain Filtering during Login).

 

Advisory URL

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

 

EOF Johannes Greil/ @2019

 

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

  • TitleUnauthenticated sensitive information leakage
  • ProductZoho Corporation ManageEngine ServiceDesk Plus
  • Vulnerable versionv10 <10509
  • Fixed versionv10 >=10509
  • CVE numberCVE-2019-15045, CVE-2019-15046
  • ImpactCritical
  • Homepagehttps://www.manageengine.com/products/service-desk/
  • Found2019-06-27
  • ByJohannes Greil (Office Vienna) | SEC Consult Vulnerability Lab

Cookie Preference

Please select an option. You can find more information about the consequences of your choice at Help.

Select an option to continue

Your selection was saved!

Help

Help

To continue, you must make a cookie selection. Below is an explanation of the different options and their meaning.

  • Accept all cookies:
    All cookies such as tracking and analytics cookies.
  • Accept first-party cookies only:
    Only cookies from this website.
  • Reject all tracking cookies:
    No cookies except for those necessary for technical reasons are set.

You can change your cookie setting here anytime: Blog. Blog

Back