Zoho Corporation ManageEngine ServiceDesk Plus 10 versions prior to 10509 suffer from an information leakage vulnerability.
3838fc4275908e3ac8ebdd5bb1370b4c99bea63e3815ed1f4143cadf66d17b91
SEC Consult Vulnerability Lab Security Advisory < 20190821-0 >
=======================================================================
title: Unauthenticated sensitive information leakage
product: Zoho Corporation ManageEngine ServiceDesk Plus
vulnerable version: v10 <10509
fixed version: v10 >=10509
CVE number: CVE-2019-15045, CVE-2019-15046
impact: Critical
homepage: https://www.manageengine.com/products/service-desk/
found: 2019-06-27
by: Johannes Greil (Office Vienna)
SEC Consult Vulnerability Lab
An integrated part of SEC Consult
Europe | Asia | North America
https://www.sec-consult.com
=======================================================================
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 download of internal support ticket information (CVE-2019-15046)
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-02: Contacting vendor through ManageEngine Security Response Center
(MESRC)
Uploaded security advisory to bugbounty.zoho.com
2019-07-02: Vendor: acknowledged our report and will get back to us soon
2019-07-08: Asking for a status update; reponse: "we've investigated the report
and working on the fix now"
2019-07-10: Asking about CVE numbers and requesting heads-up before release
2019-08-13: Asking for a status update
2019-08-13: Vendor: vulnerability has already been fixed and released in version
10509
2019-08-21: 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#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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SEC Consult Vulnerability Lab
SEC Consult
Europe | Asia | North America
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 https://www.sec-consult.com/en/career/index.html
Interested in improving your cyber security with the experts of SEC Consult?
Contact our local offices https://www.sec-consult.com/en/contact/index.html
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Mail: research at sec-consult dot com
Web: https://www.sec-consult.com
Blog: http://blog.sec-consult.com
Twitter: https://twitter.com/sec_consult
EOF J. Greil / @2019