В 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 года назад польский эксперт в области компьютерной безопасности Михаил Залевски сообщал о возможности совершения такой атаки, но в то время данной проблеме не придали особого значения и исправления не были добавлены.


comments powered by Disqus