В срочном порядке выпущены новые версии PostgreSQL 8.1.4, 8.0.8, 7.4.13 и 7.3.15.
Обновление связано с обнаружением серьезной проблемы безопасности, позволяющей осуществлять подстановку SQL запроса (SQL injection), используя некоторые клиентские приложения.
Проблема связана с возможностью передачи escape последовательности "\'" через некорректную компоновку символов в UTF-8 или других многобайтных кодировках (pg_escape_string в PHP без обновления не спасает). Для баз в которых данные представлены в однобайтных кодировках, таких как KOI8-R/cp1251 уязвимость не представляет опасности.
Внимание, теперь PostgreSQL отвергает вставку любых многобайтных символов содержащих ошибки, т.е. попытка вставки некорректных UTF-8 строк будет вызывать ошибку (такое встречается часто), о проверке стоит позаботится на уровне приложений. Кроме того прекращена поддержка экранирования вида "\'", теперь всегда нужно использовать представление "''".
|