Новости IT, хостинга
  Android, Apple, Facebook, Google, Linux, Microsoft, Samsung, Twitter, Интернет, Россия, браузеры, обновление ПО, онлайн-сервисы, операционные системы, планшеты, рынок ИТ, сделки, смартфоны, социальные сети, уязвимости  
  новостей: 10385
  комментариев: 3200

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


В PHP обнаружена одна из самых серьёзных уязвимостей за время существования данного языка. Уязвимость проявляется только в PHP 5.3.9 и позволяет удалённому злоумышленнику выполнить свой код на сервере, независимо от того какие PHP-скрипты используются. При успешном совершении атаки код будет выполнен с правами 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. Официального уведомления и исправления пока не выпущено. Проблему усугубляет то, что поддержка директивы max_input_vars была портирована из PHP 5.3.9 многими дистрибутивами и включена в пакеты с более старыми версиями PHP. Например, в обновлении пакета php5-5.3.3-7+squeeze6 для debian Squeeze имеется поддержка директивы max_input_vars. Та же самая ситуация наблюдается в Red Hat Enterprise Linux 5 и 6, а также в Fedora Linux и Mandriva.

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

Дополнение 1: Вышла версия PHP 5.3.10 с исправлением уязвимости.

Дополнение 2: Для стабильной ветки Debian вышло обновление php5-5.3.3-7+squeeze7, полностью устраняющее данную уязвимость. Обновление также выпущено для RHEL и CentOS.

Дополнение 3: Так как функция php_register_variable_ex(), ошибка в которой вызывает уязвимость, была добавлена в PHP уже давно, не исключается возможность нахождения способа атаки на более старые версии PHP, начиная c версии 5.3.5. Но данные методы уже не проявляются так легко, как с max_input_vars.


Источник: opennet.ru

  5 февраля 2012 507
Версия для печати

← предыдущая новость следующая новость →

Мой комментарий
Ваше имя*:
Email:
Комментарий*:
Зарегистрироваться автоматически: Вы будете зарегистрированы на сайте автоматически при добавлении комментария. Обязательно заполните поле Email для этого.
Сумма чисел 7 и 19*:            


Хостеры (2472)
HostDB (35)
Софт (2640)
Железо (993)
Интернет (1435)
Статистика и аналитика (3324)




Отправить сообщение администратору

Сумма чисел 20 и 8*:


Яндекс цитирования
сообщить о неточности