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

Kate

Administrator
Команда форума
В экстренном порядке сформировано обновление 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/../../../../etc/passwd" или "https://example.com/cgi-bin/../../../../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.

Дополнение: Предложен способ использования уязвимости CVE-2021-41773 для запуска своего кода на сервере:


curl --data "A=|id>>/tmp/x;uname\$IFS-a>>/tmp/x" 'http://127.0.0.1:8080/cgi-bin/../../../../bin/sh' -vv



 
Сверху