Релиз http-сервера Apache 2.4.58 с устранением DoS-уязвимостей в HTTP/2

Опубликован релиз HTTP-сервера Apache 2.4.58, в котором представлено 33 изменения и устранены три уязвимости, две из которых связаны с возможностью осуществления DoS-атаки на системы, использующие протокол HTTP/2.

  • CVE-2023–45802 — создание условий для исчерпания свободной памяти из-за отложенного освобождения памяти после сброса потока HTTP/2 пакетом с флагом RST. Так как память освобождается не сразу после обработки флага RST, а только после закрытия соединения, атакующий может значительно повысить потребление памяти, отправляя новые запросы и сбрасывая их RST-пакетом, но при этом не закрывая соединение.

  • CVE-2023–43622 — бесконечная блокировка обработки соединения HTTP/2, если оно было открыто с выставлением в 0 начального размера скользящего окна. Уязвимость может использоваться для организации отказа в обслуживании через исчерпание лимита на максимально допустимое число открытых соединений.

  • CVE-2023–31122 — уязвимость в mod_macro, приводящая к чтению данных из области вне выделенного буфера.

Среди изменений, не связанных с безопасностью:

  • В mod_http2 добавлена поддержка использования протокола WebSocket поверх потока в соединении HTTP/2 (RFC 8441). Для включения WebSocket поверх HTTP/2 предложена директива 'H2WebSockets on|off'.

  • В mod_http2 добавлена директива 'H2EarlyHint name value' для добавлена заголовков в ответ »103 Early Hints».

  • В mod_http2 добавлена директива 'H2ProxyRequests on|off' для управление включением обработки запросов по протоколу HTTP/2 в конфигурации прокси.

  • В mod_http2 добавлена директива 'H2MaxDataFrameLen n' для ограничения максимального размера тела ответа в байтах, передаваемого в одном DATA-кадре в HTTP/2. По умолчанию задан лимит в 16КБ.

  • Обновлён файл mime.types, в котором расширение ».js» привязано к типу 'text/javascript' вместо 'application/javascript' и добавлены расширения:».mjs» (с типом 'text/javascript') и ».opus» ('audio/ogg'). Добавлены MIME-типы и расширения, применяемые в WebAssembly.
  • Модуль mod_tls (альтернатива mod_ssl на языке Rust) переведён на использование библиотеки rustls-ffi 0.9.2+.
  • В модуль mod_md добавлена директива 'MDMatchNames all|servernames' для управления сопоставлением MDomains с содержимым VirtualHosts.
  • В модуль mod_md добавлена директива 'MDChallengeDns01Version' для выбора версии протокола ACME.

  • В mod_md разрешено использование директивы MDChallengeDns01 для отдельных доменов.

  • В mod_dav добавлена директива 'DavBasePath' для настройки пути к корню репозитория WebDav.

  • В mod_alias добавлена директива 'AliasPreservePath' для использования в качестве полного пути после значения Alias в блоке Location.
  • В mod_alias добавлена директива 'RedirectRelative', допускающая перенаправление с использованием относительных путей.

  • В директиву ErrorLogFormat добавлены спецификаторы формата %{z} и %{strftime-format}.
  • В mod_deflate добавлена директива 'DeflateAlterETag' для управления изменением ETag.
  • Проведена оптимизация производительности функции send_brigade_nonblocking ().
  • В mod_status обеспечено удаление дубликатов ключей «BusyWorkers» и «IdleWorkers», и добавлен новый счётчик «GracefulWorkers».



Источник: http://www.opennet.ru/opennews/art.shtml? num=59971

© OpenNet