Security Lab

Множественные уязвимости в PHP4 <= 4.3.9, PHP5 <= 5.0.2

Дата публикации:16.12.2004
Дата изменения:17.10.2006
Всего просмотров:5472
Опасность:
Критическая
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Уязвимые версии: 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

Ссылки: Multiple vulnerabilities within PHP 4/5