Реліз 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, що використовується при верифікації через 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».

Джерело: opennet.ru

Додати коментар або відгук