Представлен релиз интерпретатора языка программирования PHP 5.3.6 в котором устранено 6 уязвимостей и исправлено около 100 ошибок.
Из связанных с безопасностью исправлений в PHP 5.3.6 можно отметить:
- Переполнение буфера путем передачи некорректного salt в функцию crypt();
- Возможность подстановки части файлового пути из-за некорректного очищения в функции rfc1867_post_handler имен файлов, передаваемых через multipart/form-data POST-запросы. Атакующий может изменить заданный логикой приложения абсолютный путь и создать или переписать произвольные файлы (CVE-2011-2202);
- Переполнение стека в функции socket_connect() может быть использовано атакующим для выполнения своего кода через указание излишне длинного файлового пути для Unix-сокета (CVE-2011-1938);
- Использование памяти, после её очистки (use-after-free) в функции substr_replace(), в зависимости от контекста позволяет атакующему соверщить DoS-атаку через повреждение областей памяти или осуществить другие воздействия, используя одну и ту же переменную для нескольких аргументов (CVE-2011-1148);
- Обновлена библиотека crypt_blowfish, из-за возникновения проблемы, упрощающей подбор некоторых паролей (CVE-2011-2483);
- Возможность инициирования краха из-за ошибки в error_log();
Важные исправления, не связанные с безопасностью:
- Обновлены версии поставляемых в комплекте библиотек Sqlite3 (3.7.7.1) и PCRE (8.12);
- Крах при вызове call_user_func с неизвестным именем функции;
- Крах при использовании track_errors;
- Крах при присвоении значения размерности для не массива;
- Крах при при обработке ошибок в dtor;
- Крах при установке опции allow_call_time_pass_reference в значение Off;
- Крах при использовании php_win_err;
- Крах в zend_mm_check_ptr;
- Крах в gc_remove_zval_from_buffer;
- Крах при вызове get_browser(), если в настройках директива browscap установлена через php_admin_value;
- Приводящие к крахам ошибки в реализации SAPI;
- Крах при вызове DatePeriod(NULL);
- Крах при использовании mysqli::get_warnings в мультизапросах;
- Крах при вызове Phar::mount() с некорректными параметрами;
- Крах при использовании двойных итераторов, GlobIterator, SplFileObject и SplTempFileObject в ситуации, когда пользовательский класс не вызывает родительский конструктор;
- Крах при вызове SplFileObject::__construct() с некорректными параметрами;
- Краз при использовании DirectoryIterator с именем директории, начинающейся на нулевой символ (\0);
- Крах в неинициализированном RecursiveIteratorIterator;
- Крах при записи в предварительной созданный сокет, в случае закрытия копии данного сокета;
- Крах при использовании некорректных флагов в addGlob().
Разработчики напоминают, что ветка PHP 5.2 больше не поддерживается и все находящиеся в ней уязвимости остаются неисправленными, поэтому пользователям рекомендуется обновить свои системы до версии PHP 5.3.7.