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

Apache LogoПомимо устранения уязвимостей, версия веб-сервера Apache 2.4.58 привносит и небольшое количество нововведений.

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

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

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

Среди нововведений можно отметить следующее:

  • В 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, используемого при верификации через DNS;
  • В 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».

Скачать свежую версию Apache можно по этой ссылке.

Добавить комментарий

Ваш адрес email не будет опубликован.