-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hardened PHP Project www.hardened-php.net -= Security Advisory =- Advisory: Remote code execution in SysCP Release Date: 2005/08/09 Last Modified: 2005/08/08 Author: Christopher Kunz Application: SysCP 1.2.10 and prior Severity: Arbitrary remote code execution Risk: Critical Vendor Status: Vendor has released an updated version References: http://www.hardened-php.net/advisory_132005.64.html Overview: SysCP is a server management application, similar to the popular Confixx and CPanel products - but open source. It is deployed by several large german hosting and co-location companies and can be used for complete server admin- istration, including web and database, FTP and mail servers, reseller access and more. With the PHP configuration flag "register_globals On" (which is still the case for a large installation base), a number of variables can be injected, leading to the execution of arbitrary remote code, which can also be inclu- ded from a remote server. This can lead to backdooring of the server in question. SysCP needs the MySQL root password to perform some of its functionality, so attackers can very easily obtain this critical information from SysCP's con- figuration file. Details: During a rough scan through the SysCP source code, we found two possibili- ties to inject global variables via GET - experience shows that probably more occurances exist. The first of these holes allows direct inclusion of remote PHP code with just one GET parameter. By setting the language to any value not existant in the SysCP installation, inclusion of a language file can be forced - there are no checks if the included file was actually user-supplied. The second vulnerability allows passing curly brackets to SysCP's internal template engine which then eval()s this expression. A string like {${phpinfo();}} would then be evaluated to the phpinfo() function, which would subsequently be executed. Proof of Concept: Due to the sensitive nature of the vulnerability, the Hardened PHP Project is not going to release a proof of concept to the public. Disclosure Timeline: 18. July 2005 - Initial vendor contact. 23. July 2005 - PoC disclosed to vendor. 04. August 2005 - Vendor has released updated version. 09. August 2005 - public disclosure Recommendation: All of these vulnerabilities could have been mitigated by using our Hardening Patch for PHP [1], which includes protection against URL includes as well as eval() function protection. Apart from that, the vendor has released an updated version that add- resses the issue [2]. Plug: You can discuss this and other vulnerabilities in our forum at http://forum.hardened-php.net/ - an up-to-date list of advisories can be found at http://www.hardened-php.net/. Links: [1] http://www.hardened-php.net/downloads.13.html [2] http://www.syscp.de/forum/viewtopic.php?t=1772 GPG-Key: http://www.hardened-php.net/hardened-php-signature-key.asc pub 1024D/0A864AA1 2004-04-17 Hardened-PHP Signature Key Key fingerprint = 066F A6D0 E57E 9936 9082 7E52 4439 14CC 0A86 4AA1 Copyright 2005 Christopher Kunz / Hardened PHP Project. All rights reserved. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQFC9zaIRDkUzAqGSqERArfZAKDXgmFdPQSONdLNXFNhMqApTYqUIwCgxzjb T/i48IH5hId5eOLuXvWaVY0= =KSeh -----END PGP SIGNATURE----- _______________________________________________ Full-Disclosure - We believe in it. Charter: http://lists.grok.org.uk/full-disclosure-charter.html Hosted and sponsored by Secunia - http://secunia.com/