Security Lab

Множественные уязвимости в PHP

Дата публикации:10.04.2006
Всего просмотров:5556
Опасность:
Низкая
Наличие исправления: Да
Количество уязвимостей:1
CVE ID: CVE-2006-0996
CVE-2006-1494
CVE-2006-1608
Вектор эксплуатации: Удаленная
Воздействие: Обход ограничений безопасности
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты: PHP 4.2.x
PHP 4.3.x
PHP 4.1.x
PHP 4.0.x
PHP 5.0.x
PHP 4.4.x
PHP 5.1.x
Уязвимые версии:
PHP 4.4.2, возможно более ранние версии
PHP 5.1.2, возможно более ранние версии

Описание:
Обнаруженные уязвимости позволяют злоумышленнику пользователю обойти ограничения безопасности, вызвать отказ в обслуживании и произвести XSS нападение.

1. Уязвимость существует при вызове функции phpinfo() из-за того, что функция php_print_gpcse_array() проверяет только первые 4096 байт переменной массива. Удаленный пользователь может с помощью специально сформированного URL, длинной более 4096 байт, выполнить произвольный код сценария в браузере жертвы в контексте безопасности уязвимого сайта. Пример:

phpinfo.php?cx[]=ccccc..~4096chars...ccc[XSS]

2. Утечка памяти существует при обработке вызова функций. Локальный пользователь может с помощью специально сформированного PHP сценария вызвать отказ в обслуживании. Пример:

php -r 'function cx(){ cx(); } cx();'
Segmentation fault: 11 (core dumped) 

3. Уязвимость существует из-за недостаточной обработки входных данных в функции tempnam(). Локальный пользователь может выйти за пределы open_basedir и создать произвольное количество файлов на системе. Пример:

# php -r 'function cx(){ tempnam("/www/", "../../../../../../var/tmp/cx"); cx(); } cx();'
/var: create/symlink failed, no inodes free
/var: create/symlink failed, no inodes free

4. Уязвимость существует из-за недостаточной проверки входных данных в функции copy(). Локальный пользователь может с помощью специально сформированной функции, содержащей "compress.zlib://" в имени файла обойти ограничения безопасности safe mode и получить доступ к важным данным на системе. Пример:

copy("compress.zlib:///etc/passwd", "/home/cxib/to/bandyta/passwd.txt");

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

Решение: Установите исправление, доступное по CVS.

Ссылки: phpinfo() Cross Site Scripting PHP 5.1.2 and 4.4.2
function *() php/apache Crash PHP 4.4.2 and 5.1.2
tempnam() open_basedir bypass PHP 4.4.2 and 5.1.2
copy() Safe Mode Bypass PHP 4.4.2 and 5.1.2