Уязвимость в http-сервере Apache 2.4.49, позволяющая получить файлы вне корня сайта

В экстренном порядке сформировано обновление http-сервера Apache 2.4.50, в котором устранена уже активно эксплуатируемая 0-day уязвимость (CVE-2021-41773), позволяющая получить доступ к файлам из областей вне корневого каталога сайта. При помощи уязвимости можно загрузить произвольные системные файлы и исходные тексты web-скриптов, доступные для чтения пользователю, под которым запущен http-сервер. Разработчики были уведомлены о проблеме ещё 17 сентября, но смогли выпустить обновление только сегодня, после того как в сети были зафиксированы случаи применения уязвимости для атаки на сайты.

Опасность уязвимости сглаживает то, что проблема проявляется только в недавно выпущенной версии 2.4.49 и не затрагивает все более ранние выпуски.
В стабильных ветках консервативных серверных дистрибутивов выпуск 2.4.49 ещё не использовался (Debian, RHEL, Ubuntu, SUSE), но проблема затронула непрерывно обновляемые дистрибутивы, такие как Fedora, Arch Linux и Gentoo, а также порты FreeBSD.

Уязвимость вызвана ошибкой, внесённой в ходе переработки кода для нормализации путей в URI, из-за которой закодированный при помощи последовательности «%2e» символ точки в пути не нормализировался, если ему предшествовала другая точка. Таким образом, оказалась возможной подстановка неочищенных символов «../» в результирующий путь через указание в запросе последовательности «.%2e/». Например, запрос вида «https://example.com/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd» или «https://example.com/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/hosts»
позволял получить содержимое файла «/etc/passwd».

Проблема не проявляется, если доступ к каталогам явно запрещён при помощи настройки «require all denied». Например для частичной защиты можно указать в файле конфигурации:


   <Directory />
      require all denied
   </Directory>

В версии Apache httpd 2.4.50 также устранена ещё одна уязвимость (CVE-2021-41524), затрагивающая модуль с реализацией протокола HTTP/2. Уязвимость позволяла через отправку специально оформленного запроса инициировать разыменование нулевого указателя и вызвать крах процесса. Данная уявзимость также проявляется только в версии 2.4.49. В качестве обходного пути защиты можно отключить поддержку протокола HTTP/2.

OpenNet

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *