[SOJOBO-ADV-13-02] - MODx 2.2.10 Reflected Cross Site Scripting I. * Information * ================== Name : MODx 2.2.10 Reflected Cross Site Scripting Software : MODx 2.2.10 and possibly below. Vendor Homepage : http://modx.com/ Vulnerability Type : Reflected Cross-Site Scripting Severity : Low (2/5) Advisory Reference : SOJOBO-ADV-13-02 (http://www.enkomio.com/Advisories) Credits: Sojobo dev team Description: A Reflected Cross Site Scripting vulnerability was discovered during the testing of Sojobo, Static Analysis Tool. II. * Details * =============== A) Reflected Cross Site Scripting in findcore.php [Impact: 2/5] In order to exploit this vulnerability the setup folder mustn't be deleted by the administrator during the installation process. This precondition limit the impact of the vulnerability. Follow a trace to reach the vulnerable code. File: \setup\templates\findcore.php 80:
The variable '$_SERVER['PHP_SELF']' is considered a tainted input and can be manipulated in order to insert valid HTML code. A test request is: /setup/templates/findcore.php/"> B) Reflected Cross Site Scripting in xpdo.class.php [Impact: 1/5] The log functionality of the xpdo class contains a Reflected Cross site scripting via the $_SERVER['PHP_SELF'] entrypoint. In order to exploit this vulnerability an error must occur during the classManager loading. This precondition limit the impact of the vulnerability. Follow a trace to reach the vulnerable code. File: \core\model\schema\build.modx.php 23: $manager= $xpdo->getManager(); File: \core\xpdo\xpdo.class.php 1848: $this->log(xPDO::LOG_LEVEL_ERROR, "Could not load xPDOManager class."); .. 1995: $this->_log($level, $msg, $target, $def, $file, $line); .. 2020: $file= (isset ($_SERVER['PHP_SELF']) || $target == 'ECHO') ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_FILENAME']; .. 2032: $file= " @ {$file}"; .. 2039: echo '
[' . strftime('%Y-%m-%d %H:%M:%S') . '] (' . $this->_getLogLevel($level) . $def . $file . $line . ')
' . $msg . '
' . "\n"; .. 2042: echo '[' . strftime('%Y-%m-%d %H:%M:%S') . '] (' . $this->_getLogLevel($level) . $def . $file . $line . ') ' . $msg . "\n"; The variable '$_SERVER['PHP_SELF']' is considered a tainted input and can be manipulated in order to insert valid HTML code. III. * Report Timeline * ======================== 12 October 2013 - First contact (no timeline given) 14 October 2013 - Second contact (no timeline given) 21 October 2013 - Third contact (no response) 22 October 2013 - Advisory released IV. * About Sojobo * ==================== Sojobo allows you to find security vulnerabilities in your PHP web application source code before others do. By using the state of the art tecniques Sojobo is able to identify the most critical vulnerabilities in your code and limit the number of false positives.