diff --git a/ChangeLog b/ChangeLog index be6968b8f..da36ae4dd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,8 @@ phpMyAdmin - ChangeLog $Id$ $Source$ +- bug #1679801 [core] XSS vulnerability in PMA_sanitize(), thanks to sp3x SecurityReason + 2007-03-01 Sebastian Mendel * libraries/common.lib.php: bug #1671813 CVE-2006-1549 deep recursion crash diff --git a/libraries/sanitizing.lib.php b/libraries/sanitizing.lib.php index b36af285a..6de0bbd74 100644 --- a/libraries/sanitizing.lib.php +++ b/libraries/sanitizing.lib.php @@ -34,7 +34,31 @@ function PMA_sanitize($message) '[br]' => '
', '[/a]' => '', ); - return preg_replace('/\[a@([^"@]*)@([^]"]*)\]/', '', strtr($message, $replace_pairs)); + $sanitized_message = strtr($message, $replace_pairs); + $sanitized_message = preg_replace( + '/\[a@([^"@]*)@([^]"]*)\]/e', + '\'\'', + $sanitized_message); + + return $sanitized_message; } +/** + * removes javascript + * + * @uses trim() + * @uses strtolower() + * @uses substr() + * @param string uri + */ +function PMA_sanitizeUri($uri) +{ + $uri = trim($uri); + + if (strtolower(substr($uri, 0, 10)) === 'javascript') { + return ''; + } + + return $uri; +} ?>