Анонсирован выход релиза PHP 5.2.7 в котором исправлено более 170 ошибок, в том числе 9 проблем безопасности:
- Библиотека PCRE обновлена до версии 7.8, в более ранних версиях присутствует уязвимость, позволяющая организовать злоумышленником выполнение кода в момент преобразования регулярного выражения в байткод через вызов функции pcre_compile;
- Проблема безопасности, связанная с отсутствием инициализации BG(page_uid) и BG(page_gid);
- Проблема безопасности, связанная с некорректным порядком обработки php_value в конфигации Apache;
- Вызов краха процесса через передачу в функцию imageloadfont() библиотеки gd, некорректного файла шрифтов;
- Переполнение буфера в реализации функции memnstr();
- Уязвимость, позволяющая обойти ограничение safe_mode (проверить права доступа к файлу) через передачу некорректных параметров в функцию posix_access (CVE-2008-2665);
- Получение доступа к данным в директориях вне ограничений safe_mode, путем создания поддиректории "http:" и манипуляции с последовательностью символов "../" при ее открытии в функциях chdir и ftok (CVE-2008-2666);
- Крах процесса при попытке работы с файлами вида URI/file..php, (содержащих две точки);
- Переполнение буфера в функциях библиотеки для работы с IMAP;
- В анонсе не сообщается об исправлениях двух обнаруженных после выхода PHP 5.2.6 уязвимостей, вероятно эти ошибки остаются неисправленными:
- Возможность обойти ограничения safe_mode и установить произвольное значение параметра error_log, не имея на это прав;
- Уязвимость, позволяющая атакующему обнулить содержимое файла БД (inifile, dbm, ndbm, qdbm, BerkeleyBD и т.п.), с которыми выполняются манипуляции через функцию dba_replace. Если злоумышленник сможет передать в качестве аргумента функции dba_replace символ с нулевым кодом ("\0"), то все содержимое обрабатываемого файла будет обнулено.
Ключевые исправления в PHP 5.2.7:
- Устранено несколько утечек памяти в расширениях readline и sqlite;
- Исправлены ошибки, связанные с некорректным парсингом дат в модуле date;
- В PDO расширении исправлены ошибки, приводящие к пробелемам при возвращении данных;
- Исправлен ряд ошибок в разных подсистемах, приводящих к краху процесса;
- В реализации функции strip_tags() налажена нормальная обработка "<" и " Налажена работа функции extract() при использовании флага EXTR_REFS;
- Добавлена возможность сохранения данных об ошибках в лог SAPI (Apache log);
Кроме того вышла третья альфа версия PHP 5.3. Релиз PHP 5.3 намечен на 1 квартал 2009 года. В новой ветке будет реализовано:
- Значительное увеличение производительности. Например при сравнении одного из снапшотов php 5.3 и последнего стабильного релиза, было замечено увеличение производительности Drupal на 20%, Qdig на 2%, typo3 на 30%, wordpress на 15%, xoops - на 10%.
- Namespaces - изолированные от остального кода пространства имен для классов, функций и констант.
- "late static binding" - привязка к вызываемому классу, вне контекста наследования (возможность получить имя класса, вызванного для выполнения статического метода);
- Mysqlnd - новый MySQL драйвер, работающий напрямую с MySQL, без использования libmysql.
- Из состава пакета удален модуль ext/msql, ext/ereg помечен как устаревший, ext/mhash заменен на ext/hash;
- __callStatic
- Поддержка OpenID
- Изменение техники округления чисел с плавающей точкой;
- User.ini с привязкой к директориям наподобие .htaccess,
- XSLT профайлинг
- Многоплатформенный getopt()
- Поддержка Sqlite3
- Опционально включаемый циклический сборщик мусора
- Новый синтаксис для определения строковых блоков, ограниченная поддержка GOTO, оператор "?:".
Дополнение: Релиз PHP 5.2.7 отменен из-за наличия критической уязвимости.
|