CVE-2021-41773
Apache 2.4.49: выход за пределы каталога сайта
Ошибка Apache HTTP Server 2.4.49 позволяла обращаться к файлам вне разрешённого каталога при определённых настройках. Первое исправление оказалось неполным: проверьте версию и правила доступа к файлам.
Кому нужно проверить
Администраторам сайтов, которые обслуживает Apache HTTP Server. Apache Tomcat — другой продукт: его версия к этой проверке не относится. Важна не только марка продукта, но и конкретная версия, способ установки, операционная система и конфигурация.
В чём риск
Сервер должен сопоставлять адрес страницы с разрешённым файлом. Ошибка нормализации пути позволяла выйти за ожидаемый каталог. Это похоже на выдачу документов из соседнего шкафа вместо публичной папки. Если процесс Apache может прочитать настройки с секретами, они могут быть раскрыты. Если дополнительно разрешено выполнение CGI, последствия могут включать запуск команд. Корректные запреты доступа снижают риск, но не заменяют обновление ошибочной версии.
Затронутые версии
Именно CVE-2021-41773 затрагивает Apache HTTP Server 2.4.49, а не все более ранние версии. Успешное чтение возможно, если файлы вне каталогов, заданных Alias и подобными директивами, не закрыты обычным правилом Require all denied. При включённом CGI для таких путей возможно также выполнение кода. Неполное исправление в 2.4.50 рассматривается отдельно как CVE-2021-42013.
Исправленные версии
Для CVE-2021-41773 первоначально выпустили 2.4.50, но останавливаться на ней нельзя: полный ответ на связанную проблему появился в 2.4.51. Сегодня установите актуальный поддерживаемый пакет поставщика. Дистрибутив может перенести исправление в пакет с прежним базовым номером — проверяйте его security advisory и полный номер пакета.
Что сделать
- 1Узнайте версию исполняемого файла и пакета на каждом сервере и в каждом контейнере. Заголовок HTTP Server может быть скрыт или изменён и не является надёжным доказательством версии.
- 2Попросите администратора проверить Alias, ScriptAlias, разрешения CGI и правила Directory. Не открывайте произвольные системные файлы через специально составленный URL ради проверки.
- 3До обновления закройте ненужные пути и CGI, восстановите запрет доступа вне явно разрешённых каталогов. Проверьте влияние на сайт в тестовой среде. Фильтрация URL на прокси — лишь временное дополнение, особенно если origin доступен напрямую.
- 4Сохраните конфигурацию и данные сайта, проверьте восстановление. Обновите пакет на тестовой копии; проверьте синтаксис конфигурации штатным инструментом своей установки, затем обычные страницы, загрузки и CGI, если он нужен.
- 5Разверните исправленный поддерживаемый пакет и перезапустите или замените обслуживающие процессы по инструкции поставщика. План отката должен включать конфигурацию и пакет; уязвимый откат допускайте только при закрытом внешнем доступе.
- 6Повторно проверьте фактическую версию и нормальную работу сайта. Сохраните журналы периода риска, выясните, какие секреты были доступны процессу. При признаках чтения настроек замените затронутые секреты после устранения причины.
Примеры конфигурации и проверки
apache2 -vНа сервере с пакетной установкой Apache в Debian/Ubuntu команда выводит версию и дату сборки, не меняя файлы и не требуя root. Для другой ОС имя команды может отличаться. Сверьте результат с полным номером установленного пакета и advisory дистрибутива: backport не всегда меняет базовую версию. Команда не определяет настройки CGI и не гарантирует, что запущенный процесс уже обновлён. Откат не нужен.
Как не подпустить ботов к сайту
BotProtection принимает запросы перед вашим сайтом и фильтрует автоматизированные обращения. Поэтому ботам сложнее добраться до уязвимого компонента и начать его проверять или атаковать, а вероятность успешной автоматизированной атаки становится значительно ниже. Это дополнительный слой защиты: обновление уязвимых компонентов, проверка журналов и реагирование на инциденты остаются обязательными.
Первоисточники
Снизьте шанс атаки до того, как бот дойдёт до сайта
Подключите BotProtection как фильтр перед сайтом: подозрительные автоматизированные запросы отсекаются до обращения к вашему серверу. Это значительно снижает вероятность автоматизированной атаки, но не исправляет саму уязвимость, поэтому обновление и настройка компонентов остаются обязательными.