В HTTP-сервере Apache присутствует опасная уязвимость

image

Теги: Apache, уязвимость, эксплоит

Уязвимость в HTTP-сервере Apache позволяет вызвать отказ в обслуживании через исчерпание всей доступной памяти.

Опасная уязвимость была обнаружена в HTTP-сервере Apache. Уязвимость позволяет вызвать отказ в обслуживании через исчерпание всей доступной памяти.

Уязвимость присутствует в Apache 2.2.x, в том числе в последнем релизе 2.2.19. Исправление данной проблемы доступно в виде патча. 

Для использования обнаруженной уязвимости уже доступен эксплоит, который позволяет злоумышленникам осуществить атаку с одного компьютера, с генерацией минимального трафика. Если отсутствуют некоторые лимиты на размер выделяемой сервером Apache памяти, то после выполнения эксплоита происходит полное исчерпание памяти с уходом в бесконечный своппинг без возможности зайти в консоль.

Ошибка в реализации поддержки загрузки файла по указанному диапазону стала причиной возникновения уязвимости. Если обрабатываемый запрос содержит большое число диапазонов и используется gzip-сжатие отдаваемого контента, то происходит исчерпание всей доступной памяти, так как Apache пытается сжать каждый диапазон отдельно. Для проведения удачной атаки мошенникам требуется отправить примерно 50 подобных запросов из составным Range на сервер.

Исправление данной проблемы доступно в виде патча. Также можно очищать заголовок Range с помощью mod-header (“RequestHeader unset range) или заблокировать последовательности Range через mod-rewrite:

# Вариант 1:

   RewriteEngine On

   RewriteCond %{HTTP:Range} bytes=0-[0-9]+, [NC,OR]

   RewriteCond %{HTTP:Range} bytes=([0-9-],){4,} [NC,OR]

   RewriteCond %{HTTP:Range} bytes=[0-9,-]+,0-(,|$) [NC]

   RewriteRule .? http://%{SERVER_NAME}/ [NS,L,F]

 

   # Вариант 2:

   RewriteEngine On

   RewriteCond %{REQUEST_METHOD} ^(HEAD|GET) [NC]

   RewriteCond %{HTTP:Range} ([0-9]*-[0-9]*)(\s*,\s*[0-9]*-[0-9]*)+

   RewriteRule .* - [F]

 

   # Вариант 3:

   RewriteEngine On

   RewriteCond %{HTTP:Range} bytes=0-.* [NC]

   RewriteRule .? http://%{SERVER_NAME}/ [R=302,L]

Стоит отметить, что 4 года назад польский эксперт в области компьютерной безопасности Михаил Залевски сообщал о возможности совершения такой атаки, но в то время данной проблеме не придали особого значения и исправления не были добавлены.


или введите имя

CAPTCHA
59742
25-08-2011 14:43:03
нефига этот перл скрипт не работает 59742
0 |
Пихто
25-08-2011 17:30:35
Это не бага, это фича, что-бы админы не скучали. Да и пач уже есть. http://www.opennet.ru/opennews/art.shtml?num=31582
0 |
тест
28-08-2011 06:47:13
он не будет работать из коробки. его допиливать надо, чтобы всякие "дети" не баловались.
0 |
anti-guest
29-08-2011 10:02:50
Все работает. На виртуалках - пара минут, и хана серверу. Помогает: SetEnvIf Range (?:,.*?){5,5} bad-range=1 RequestHeader unset Range env=bad-range CustomLog logs/range-CVE-2011-3192.log common env=bad-range в основном конфиге. Правда не знаю, на сколько это хорошо спасает на нагруженных системах. P.S. А "допилка" мааленькая такая
0 |