Уязвимые версии: PHP4 <= 4.3.9, PHP5 <= 5.0.2
Описание:
Несколько переполнений буфера, утечка информации и другие уязвимости обнаружены в PHP. Локальный или удаленный пользователь может выполнить произвольный код на уязвимой системе.
1. Целочисленное переполнение буфера в функции pack().
Недостаточная проверка параметров, переданных функции pack(), позволяет атакующему вызвать переполнение динамического буфера и выполнить произвольный код внутри PHP сценария. Уязвимость позволяет атакующему обойти ограничения безопасного режима и выполнить произвольный код с привилегиями Web сервера. Маловероятно что этот сценарий может эксплуатироваться удаленным атакующим, так как обычно эта функция не используется для обработки данных внутри Web приложения.
2. Целочисленное переполнение буфера в функции unpack()
Недостаточная проверка параметров, переданных функции pack(), позволяет атакующему вызвать утечку чувствительной информации из apache процесса. Использование этой уязвимости в комбинации с уязвимостью 1 позволяет локальному пользователю обойти canary систему защиты динамической памяти. Обычно эта функция не используется для обработки данных внутри Web приложения.
3. Обход safe_mode_exec_dir в мультипоточном PHP
В безопасном режиме возможно выполнения команд только внутри safe_mode_exec_dir каталога. Однако PHP не ограничивает "cd [currentdir] ;" к любой выполняемой команде, когда PHP запущен в мультипотоковом unix Web сервере. Локальный атакующий может обойти ограничения safe_mode_exec_dir, внедряя команды оболочки в текущем каталоге.
4. Обход safe_mode через обрезание пути
В безопасном режиме путь к файлу незаметно обрезается на MAXPATHLEN байт перед передачей в realpath(). В комбинации с некоторыми низкофункциональными реализациями realpath() в glibc, атакующий может создать путь к файлу, который обойдет ограничения безопасного режима.
5. Обрезание пути а realpath()
PHP использует realpath() для получения реального пути файла. Однако некоторые выполнения realpath() незаметно обрезают чрезмерно длинные имена файлов (в OpenBSD и старых версиях NetBSD/FreeBSD). В результате возможна уязвимость включения файла, если на системе используется типа такого: "include "modules/$userinput/config.inc.php”.
6. Неправильная обработка отрицательных ссылок в unserialize()
Если представить отрецательную ссылку к unserialize(), то возможно добавить ложное значение zvalues в hashtables. При уничтожении hashtables, это может привезти к efree() произвольным адресам памяти и выполнению произвольного кода на системе.
7. Ошибочная обработка ссылок на освобожденные данные в unserialize()
Дополнительно к ошибке 06, предыдущая версия unserializer переменной позволяет установить ссылки к только что освобожденным записям в хеше переменной. Атакующий может эксплуатировать уязвимость, чтобы создать универсальную строку, которая передаст выполняемый код к произвольным адресам памяти, когда она будет обработана unserialize(). Для AMD64 системах, уязвимость позволяет непосредственно выполнить shellcode, содержащийся в строке. Эта уязвимость может удаленно эксплуатироваться в популярных PHP приложениях, которые передают значения Куки непосредственно к unserialize(). Примеры уязвимых приложений:
- phpBB2
- Invision Board
- vBulletin
- Woltlab Burning Board 2.x
- Serendipity Weblog
- phpAds(New)
URL производителя:http://www.php.net/
Решение:Установите PHP 4.3.10 & 5.0.3
|