02.07.2022

Релиз http-сервера Apache 2.4.52 с устранением переполнения буфера в mod_lua

Опубликован релиз HTTP-сервера Apache 2.4.52, в котором представлено 25 изменений и устранены 2 уязвимости:

  • CVE-2021-44790 — переполнение буфера в mod_lua, проявляющееся при разборе запросов, состоящих из нескольких частей (multipart). Уязвимость затрагивает конфигурации, в которых Lua-скрипты вызывают функцию r:parsebody() для разбора тела запроса, и позволяют атакующему добиться переполнения буфера через отправку специально оформленного запроса. Фактов наличия эксплоита пока не выявлено, но потенциально проблема может привести к выполнению своего кода на сервере.
  • CVE-2021-44224SSRF-уязвимость (Server Side Request Forgery) в mod_proxy, позволяющая в конфигурациях с настройкой «ProxyRequests on» через запрос специально оформленного URI добиться перенаправления запроса на дрогой обработчик на том же сервере, принимающий соединения через Unix Domain Socket. Проблема также может быть использована для вызова краха через создание условий для разыменования нулевого указателя. Проблема затрагивает версии Apache httpd начиная с версии 2.4.7.

Наиболее заметные изменения, не связанные с безопасностью:

  • В mod_ssl добавлена поддержка сборки с библиотекой OpenSSL 3.
  • Улучшено определение библиотеки OpenSSL в скриптах autoconf.
  • В mod_proxy для протоколов туннелирования предоставлена возможность отключения перенаправления полуоткрытых (half-close) TCP-соединений через выставление параметра «SetEnv proxy-nohalfclose».
  • Добавлены дополнительные проверки, что URI не предназначенные для проксирования содержат схему http/https, а предназначенные для проксирования содержат имя хоста.
  • В mod_proxy_connect и mod_proxy запрещено изменение кода состояния после отправки его клиенту.
  • При отправке промежуточных ответов после получения запросов с заголовком «Expect: 100-Continue» обеспечено указание в результате состояние «100 Continue», а не текущего состояния запроса.
  • В mod_dav добавлена поддержка расширений CalDAV, в которых при генерации свойства должны учитываться как элементы документа, так и элементы свойства. Добавлены новые функции dav_validate_root_ns(), dav_find_child_ns(), dav_find_next_ns(), dav_find_attr_ns() и dav_find_attr(), которые можно вызывать из других модулей.
  • В mpm_event решена проблема с остановкой простаивающих дочерних процессов после всплеска нагрузки на сервер.
  • В mod_http2 устранены регрессивные изменения, приводящие к некорректному поведению при обработке ограничений MaxRequestsPerChild и MaxConnectionsPerChild.
  • Расширены возможности модуля mod_md, применяемого для автоматизации получения и обслуживания сертификатов с использованием протокола ACME (Automatic Certificate Management Environment):
    • Добавлена поддержка механизма ACME External Account Binding (EAB), включаемого при помощи директивы MDExternalAccountBinding. Значения для EAB могут быть настроены из внешнего файла в формате JSON, что позволяет не раскрывать параметры аутентификации в основном файле конфигурации сервера.
    • В директиве ‘MDCertificateAuthority’ обеспечена проверка указания в параметре URL http/https или одного из предопределённых имён (‘LetsEncrypt’, ‘LetsEncrypt-Test’, ‘Buypass’ и ‘Buypass-Test’).
    • Разрешено указание директивы MDContactEmail внутри секции <MDomain dnsname>.
    • Исправлено несколько ошибок, в том числе устранена утечка памяти, возникающая в случае сбоев при загрузке закрытого ключа.

Источник.