Новая серьезная уязвимость веб-сервера Apache

Обнаружена уязвимость в веб-сервере Apache, позволяющая провести атаку на приложение версии 2.2.х. Уязвимость находится в коде, отвечающем за обработку байтовых диапазонов, указанных в специальных HTTP-заголовках. Как известно, задание байтового диапазона позволяет загружать только определенную часть документа, например с 500-ого по 1000-ный байт. Данные заголовки широко используются, в частности, в менеджерах загрузки файлов для возобновления скачивания после паузы или разрыва соединения, а также позволяют снизить объем передаваемого трафика. Однако как показывает исследование, указание в заголовке нескольких неотсортированных диапазонов может привести к нарушению работы веб-сервера.Уже опубликован perl-скрипт, демонстрирующий наличие проблемы и вызывающий падение веб-сервера Apache. Скрипт посылает серверу GET-запрос c заданием нескольких байтовых диапазонов, что при обработке приводит к серьезному увеличению потребления оперативной памяти. Команда разработчиков пока не представила официального патча для исправления проблемы, однако на данный момент доступно решение, заключающееся в установке правила принимать только запросы с одним заданным байтовым диапазоном, что решит проблему для большинства веб-серверов. Для работы указанного способа необходимо загрузить в веб-сервер Apache модуль mod_rewrite.Другим средством решения проблемы является использование модуля mod_headers с параметром RequestHeader unset Range, который удаляет из заголовка все содержащиеся в нем байтовые диапазоны. От этого способа больше вреда, чем пользы, поэтому администраторы перед применением любого решения для борьбы с уязвимостью должны проверить его эффективность и влияние на работу веб-сервера.