Опубликован релиз HTTP-сервера Apache 2.4.41
Опубликован релиз HTTP-сервера Apache 2.4.41
Опубликован релиз HTTP-сервера Apache 2.4.41, в котором представлено 23 изменения и устранено 6 уязвимостей:
- CVE-2019-10081 - проблема в mod_http2, которая может привести к повреждению памяти при отправке push-запросов на очень ранней стадии. При использовании настройки "H2PushResource" возможна перезапись области памяти в пуле обработки запросов, но проблема ограничена крахом, так как записываемые данные не основываются на информации, полученной от клиента;
- CVE-2019-9517 - подверженность недавно анонсированной DoS-уязвимости в реализациях HTTP/2. Атакующий может исчерпать доступную процессу память и создать большую нагрузку на CPU, открывая скользящее окно HTTP/2 для отправки сервером данных без ограничений, но при этом держа окно TCP закрытым, что не позволяет фактически записать данные в сокет;
- CVE-2019-10098 - проблема в mod_rewrite, позволяющая использовать сервер для проброса обращений на другие ресурсы (open redirect). Некоторые настройки mod_rewrite могут привести к пробросу пользвателя на другую ссылку, закодированную с использованием символа перевода строки внутри параметра, используемого в существующим редиректе. Для блокирования проблемы в RegexDefaultOptions можно использовать флаг PCRE_DOTALL, который теперь выставлен по умолчанию;
- CVE-2019-10092 - возможность совершения межсайтового скриптинга на страницах ошибок, выводимых mod_proxy. На данных страницах в ссылке подставляется полученный из запроса URL, в котором атакующий через экранирование символов может подставить произвольный HTML-код;
- CVE-2019-10097 - переполнение стека и разыменование указателя NULL в mod_remoteip, эксплуатируемое через манипуляции с заголовком протокола PROXY. Атака может быть совершена только со стороны используемого в настройках прокси-сервера, а не через запрос клиента;
- CVE-2019-10082 - уязвимость в mod_http2, позволяющая в момент завершения соединения инициировать чтение содержимого из уже освобождённой области памяти (read-after-free).
Наиболее заметные изменения, не связанные с безопасностью:
- В mod_proxy_balancer усилена защита от атак XSS/XSRF со стороны узлов, заслуживающих доверия;
- В mod_session добавлена настройка SessionExpiryUpdateInterval для определения интервала обновления времени истечения жизни сеанса/cookie;
- Проведена чистка страниц с ошибками, направленная на исключения вывода на данных страницах информации из запросов;
- В mod_http2 обеспечен учёт значения параметра "LimitRequestFieldSize", который раньше действовал только для проверки полей заголовков HTTP/1.1;
- Обеспечено создание конфигурации mod_proxy_hcheck при его использовании в BalancerMember;
- Сокращено потребление памяти в mod_dav при использовании команды PROPFIND над большой коллекцией;
- В mod_proxy и mod_ssl решены проблемы с указанием настроек сертификатов и SSL в внутри блока Proxy;
- В mod_proxy разрешено применение настроек SSLProxyCheckPeer* для всех модулей прокси;
- Расширены возможности модуля mod_md, разработанного проектом Let's Encrypt для автоматизации получения и обслуживания сертификатов с использованием протокола ACME (Automatic Certificate Management Environment):
- Добавлена вторая версия протокола ACMEv2, которая теперь применяется по умолчанию и использует пустые запросы POST вместо GET.
- Добавлена поддержка проверки на базе расширения TLS-ALPN-01 (RFC 7301, Application-Layer Protocol Negotiation), которое используется в HTTP/2.
- Прекращена поддержка метода проверки 'tls-sni-01' (из-за уязвимости).
- Добавлены команды для настройки и разрыва проверки методом 'dns-01'.
- Добавлена поддержка масок в сертификатах при включении проверки на основе DNS ('dns-01').
- Реализован обработчик 'md-status' и страница с состоянием сертификата "https://domain/.httpd/certificate-status".
- Добавлены директивы "MDCertificateFile" и "MDCertificateKeyFile" для настройки параметров доменов через статические файлы (без поддержки автообновления).
- Добавлена директива "MDMessageCmd" для вызова внешних команд при наступлении событий 'renewed', 'expiring' или 'errored'.
- Добавлена директива "MDWarnWindow" для настройки сообщения с предупреждением об истечении времени действия сертификата;