diff --git a/ChangeLog b/ChangeLog index 941d83ec..55da923a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012-09-24 Uwe Tews + + * Fixed escape Smarty error messages to avoid possible script execution + + 2010-04-17 Uwe Tews * Fixed security hole in {math} plugin diff --git a/libs/Smarty.class.php b/libs/Smarty.class.php index 3c3448db..ab70d210 100644 --- a/libs/Smarty.class.php +++ b/libs/Smarty.class.php @@ -20,7 +20,7 @@ * * For questions, help, comments, discussion, etc., please join the * Smarty mailing list. Send a blank e-mail to - * smarty-discussion-subscribe@googlegroups.com + * smarty-discussion-subscribe@googlegroups.com * * @link http://www.smarty.net/ * @copyright 2001-2005 New Digital Group, Inc. @@ -1058,7 +1058,7 @@ class Smarty } else { // var non-existant, return valid reference $_tmp = null; - return $_tmp; + return $_tmp; } } @@ -1090,7 +1090,8 @@ class Smarty */ function trigger_error($error_msg, $error_type = E_USER_WARNING) { - trigger_error("Smarty error: $error_msg", $error_type); + $msg = htmlentities($error_msg); + trigger_error("Smarty error: $msg", $error_type); } @@ -1117,7 +1118,7 @@ class Smarty function fetch($resource_name, $cache_id = null, $compile_id = null, $display = false) { static $_cache_info = array(); - + $_smarty_old_error_level = $this->debugging ? error_reporting() : error_reporting(isset($this->error_reporting) ? $this->error_reporting : error_reporting() & ~E_NOTICE); @@ -1933,10 +1934,10 @@ class Smarty { return eval($code); } - + /** * Extracts the filter name from the given callback - * + * * @param callback $function * @return string */ @@ -1951,7 +1952,7 @@ class Smarty return $function; } } - + /**#@-*/ }