Уязвимость Apache

Недавно в сети появилась информация о новой уязвимости Apache, которая вызывает отказ в обслуживании, из-за заполнения всей доступной оперативной памяти. Подробнее можно посмотреть тут: issues.apache.org (eng), opennet.ru, habrahabr.ru. Эта уязвимость затрагивает все версии сервера Apache, кроме последней на сегодняшний день 2.2.20, установленного на любых платформах.

Суть ошибки состоит в том, что сгенерировав определенный запрос, имитирующий загрузку части файла, можно полностью заполнить всю память, доступную Apache. Ошибка связана с тем, что при обработке запроса, который содержит большое число диапазонов (например, "Range:bytes=0-,2-1,2-2,2-3,...,5-1200") + использование gzip-сжатия отдаваемого контента, расходуется слишком много памяти.

Протестировать сервер на наличие ошибки можно с помощью командной строки или PHP скрипта, приведенных ниже. Если в результате выполнения выдается заголовок: "206 Partial Content", то есть большая вероятность того, что уязвимость не исправлена.

Коммандная строка - проверка на уязвимость Apache
# curl -I -H "Range: bytes=0-1,0-2" -s site.domen/robots.txt | grep Partial
PHP-скрипт проверки на уязвимость Apache
$headers_arr = array(
'Range: bytes=0-,5-0,5-1,5-2,5-3,5-4,5-1299,5-1300',
'Accept-Encoding: gzip'
);

$domain = 'http://site.domen/robots.txt';

$curlInit = curl_init($domain);
curl_setopt($curlInit, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curlInit, CURLOPT_HEADER, true);
curl_setopt($curlInit, CURLOPT_NOBODY, true);
curl_setopt($curlInit, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlInit, CURLOPT_HTTPHEADER, $headers_arr);

$response = curl_exec($curlInit);
curl_close($curlInit);

echo nl2br($response);

Как устранить уязвимость описано в статьях, ссылки на которые опубликованы выше.

Опубликовано: 2011/09/07
HTML-код ссылки на эту страницу:
<a href="https://petrenco.com/apache.php?txt=93" target="_blank">Уязвимость Apache</a>
20420
Добавить комментарий
Ваш e-mail: (не виден посетителям сайта)
Ваше имя:
Комментарий:
Символы с картинки:
Только выделенные поля формы добавления комментариев обязательны к заполнению.