GetSimple CMS <= 3.3.4 (api.php) XML External Entity Vulnerability
• Software Link:
• Affected Versions:
All versions from 3.1.1 to 3.3.4.
• Vulnerability Description:
The vulnerable code is located in the /admin/api.php script:
22#step 2 - setup request
23$in = simplexml_load_string($_POST['data'], 'SimpleXMLExtended', LIBXML_NOCDATA);
24$request = new API_Request();
25$request->add_data($in);
User input passed via the “data” POST parameter is not properly sanitized before being used in a call to the simplexml_load_string()
PHP function at line 23. This can be exploited to carry out XML External Entity (XXE) attacks, resulting in arbitrary file disclosures. Successful exploitation of this vulnerability requires the External API to be enabled from within the gsconfig.php file and the application running on PHP before version 5.3.23 or 5.4.13.
NOTE: this vulnerability might be abused to disclose sensitive data stored in XML files, which might allow attackers to bypass the authentication mechanism and access the administration panel in order to achieve arbitrary PHP code execution.
• Solution:
Update to version 3.3.5 Beta 1 or disable the External API.
• Disclosure Timeline:
[22/10/2014] – First attempt to contact the vendor
[28/10/2014] – Issue reported to http://git.io/HEjBUg
[29/10/2014] – CVE number requested
[13/11/2014] – CVE number assigned
[02/12/2014] – Version 3.3.5 Beta 1 released
[31/12/2014] – Publication of this advisory
• CVE Reference:
The Common Vulnerabilities and Exposures project (cve.mitre.org) has assigned the name CVE-2014-8790 to this vulnerability.
• Credits:
Vulnerability discovered by Egidio Romano.