Опубліковано реліз 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