Критическая уязвимость в PHP 5.3.9, позволяющая выполнить код на сервере

В PHP обнаружена одна из самых серьёзных уязвимостей за время существования данного языка. Уязвимость проявляется только в PHP 5.3.9 и позволяет удалённому злоумышленнику выполнить свой код на сервере, независимо от того какие PHP-скрипты используются.
По иронии судьбы, уязвимость связанна с некорректным устранением менее опасной проблемы безопасности в прошлой версии PHP. Для защиты от совершения DoS-атаки, которая может быть вызвана проблемой с предсказуемыми коллизиями в реализации алгоритма хэширования, в PHP 5.3.9 была добавлена директива max_input_vars, позволяющая ограничить число входящих параметров для поступающих HTTP-запросов. В реализации данной директивы была допущена досадная ошибка, которая сделала возможным совершение более опасной атаки.

Суть проблемы в том, что при портировании кода с поддержкой директивы max_input_vars был пропущен блок "else" с освобождением памяти и выходом из функции. Без этого блока, при превышении заданного директивой max_input_vars лимита, который по умолчанию установлен в 1000, если превышающая лимит переменная является массивом (например, "a[]=1"), то эта переменная оказывается на месте указателя, который в дальнейшем получает управление.

Всем пользователям PHP 5.3.9 рекомендуется в экстренном порядке наложить патч или вернуться на более ранний выпуск PHP. Официального уведомления и исправления пока не выпущено. Также пока не ясно, была ли портирована из PHP 5.3.9 реализация директивы max_input_vars в используемые в дистрибутивах пакеты с другими версиями PHP. Судя по всему, в открытом рабочего эксплоита ещё нет. Уязвимость выявлена Стефаном Эссером (Stefan Esser), создателем проектов Hardened-PHP и Suhosin. Комментируя решение проекта Debian отказаться от использования Suhosin, Стефан указал на то, что уязвимость в PHP пришлась весьма кстати, так как она хорошо демонстрирует необходимость в использовании Suhosin, который значительно снижает возможность эксплуатации, даже в стандартной конфигурации.




Вас также может заинтересовать:

Критическая уязвимость в почтовом сервере Exim
Уязвимость в Xen, позволяющая получить доступ к ресурсам хост-системы
В ядре Linux обнаружена уязвимость, позволяющая поднять свои привилегии в системе
В DNS-сервере Bind 9 обнаружена DOS-уязвимость
В XORG 1.11 найдена критическая уязвимость
Критическая уязвимость в PHP!!! Обновления PHP 5.3.12 и PHP 5.4.2 не устраняют проблему!!!