Security Lab

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

Дата публикации:01.09.2007
Всего просмотров:7140
Опасность:
Средняя
Наличие исправления: Да
Количество уязвимостей:1
CVE ID: CVE-2007-3996
CVE-2007-3378
CVE-2007-3997
CVE-2007-4652
CVE-2007-4658
CVE-2007-4659
CVE-2007-4670
CVE-2007-4657
CVE-2007-4662
CVE-2007-3998
Вектор эксплуатации: Удаленная
Воздействие: Обход ограничений безопасности
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты: PHP 5.2.x
Уязвимые версии: PHP 5.2.x

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

1. Уязвимость существует из-за неизвестной ошибки в функции "money_format()" при обработке токенов "%i" и "%n".

2. Уязвимость существует из-за неизвестной ошибки в функции "zend_alter_ini_entry()". Злоумышленник может вызвать memory_limit прерывание.

3. Целочисленное переполнение обнаружено в функциях "gdImageCreate()" и "gdImageCreateTrueColor()" в файле ext/gd/libgd/gd.c. Злоумышленник может с помощью слишком больших целочисленных значений, передаваемых в качестве параметра PHP функции "imagecreatetruecolor()" вызвать переполнение динамической памяти. Удаленный пользователь может выполнить произвольный код на целевой системе или обойти ограничения безопасности (например, директиву "disable_functions"). Для успешной эксплуатации уязвимости PHP должно быть сконфигурировано для использования библиотеки gd. Пример:

<?php

imagecreatetruecolor(1234,1073741824);

?>

4. Два целочисленных переполнения обнаружены в функции "gdImageCopyResized()" в файле ext/gd/libgd/gd.c. Злоумышленник может с помощью слишком больших целочисленных значений, передаваемых в качестве параметра PHP функциям "imagecopyresized()" и "imagecopyresampled()" вызвать переполнение динамической памяти. Удаленный пользователь может выполнить произвольный код на целевой системе или обойти ограничения безопасности (например, директиву "disable_functions"). Для успешной эксплуатации уязвимости PHP должно быть сконфигурировано для использования библиотеки gd. Пример:

<?php

imagecopyresized(imagecreatetruecolor(0x7fffffff, 120),
imagecreatetruecolor(120, 120),
0, 0, 0, 0, 0x7fffffff, 120, 120, 120);

?>

5. Уязвимость существует из-за ошибки при обработке SQL запросов, содержащих "LOCAL INFILE" внутри MySQL и MySQLi расширений. Злоумышленник может обойти ограничения директив "open_basedir" и "safe_mode". Пример:

MySQL:

<?php

file_get_contents('/etc/passwd');

$l = mysql_connect("localhost", "root");
mysql_query("CREATE DATABASE a");
mysql_query("CREATE TABLE a.a (a varchar(1024))");
mysql_query("GRANT SELECT,INSERT ON a.a TO 'aaaa'@'localhost'");
mysql_close($l); mysql_connect("localhost", "aaaa");

mysql_query("LOAD DATA LOCAL INFILE '/etc/passwd' INTO TABLE a.a");

$result = mysql_query("SELECT a FROM a.a");
while(list($row) = mysql_fetch_row($result))
print $row . chr(10);

?>

MySQLi:

<?php

function r($fp, &$buf, $len, &$err) {
print fread($fp, $len);
}

$m = new mysqli('localhost', 'aaaa', '', 'a');
$m->options(MYSQLI_OPT_LOCAL_INFILE, 1);
$m->set_local_infile_handler("r");
$m->query("LOAD DATA LOCAL INFILE '/etc/passwd' INTO TABLE a.a");
$m->close();

?>

6. Уязвимость существует из-за ошибки при обработке функций "session_save_path()" и "ini_set()", вызываемых из ".htaccess" файла. Злоумышленник может обойти ограничения директив "open_basedir" и "safe_mode".

7. Уязвимость существует из-за неизвестной ошибки в функции "glob()".Злоумышленник может обойти ограничения директивы "open_basedir".

8. Уязвимость существует из-за неизвестной ошибки при обработке сессий. Злоумышленник может заменить сессионный файл символической ссылкой и обойти ограничения директивы "open_basedir". www.php.net

Решение: Установите последнюю версию 5.2.4 с сайта производителя.

Ссылки: PHP php_gd2.dll imagepsloadfont Local Buffer Overflow PoC
PHP 5.2.3 glob() Denial of Service Exploit