Opublikowano wydanie serwera HTTP Apache 2.4.58, które wprowadza 33 zmiany i eliminuje trzy luki w zabezpieczeniach, z których dwie są związane z możliwością przeprowadzenia ataku DoS na systemy korzystające z protokołu HTTP/2.
- CVE-2023-45802 — tworzenie warunków do wyczerpania dostępnej pamięci z powodu opóźnionego zwolnienia pamięci po zresetowaniu strumienia HTTP/2 pakietem z flagą RST. Ponieważ pamięć nie jest zwalniana natychmiast po przetworzeniu flagi RST, ale dopiero po zamknięciu połączenia, atakujący może znacznie zwiększyć zużycie pamięci, wysyłając nowe żądania i resetując je pakietem RST, nie zamykając przy tym połączenia.
- CVE-2023-43622 — nieskończona blokada przetwarzania połączenia HTTP/2, jeśli zostało ono otwarte z ustawionym na 0 początkowym rozmiarem okna przesuwnego. Luka może zostać wykorzystana do zorganizowania odmowy usługi poprzez wyczerpanie limitu maksymalnej liczby otwartych połączeń.
- CVE-2023-31122 — luka w mod_macro, prowadząca do odczytu danych z obszaru poza przydzielonym buforem.
Wśród zmian niezwiązanych z bezpieczeństwem:
- W mod_http2 dodano wsparcie dla użycia protokołu WebSocket na strumieniu w połączeniu HTTP/2 (RFC 8441). Dla włączenia WebSocket nad HTTP/2 zaproponowano dyrektywę ‘H2WebSockets on|off’.
- W mod_http2 dodano dyrektywę ‘H2EarlyHint name value’ dla dodawania nagłówków w odpowiedzi ‘103 Early Hints’.
- W mod_http2 dodano dyrektywę ‘H2ProxyRequests on|off’ do zarządzania włączaniem przetwarzania żądań przez protokół HTTP/2 w konfiguracji proxy.
- W mod_http2 dodano dyrektywę ‘H2MaxDataFrameLen n’ do ograniczenia maksymalnego rozmiaru ciała odpowiedzi w bajtach, przesyłanego w jednym kadrach DATA w HTTP/2. Domyślnie ustawiono limit na 16KB.
- Zaktualizowano plik mime.types, w którym rozszerzenie ‘.js’ jest przypisane do typu ‘text/javascript’ zamiast ‘application/javascript’ oraz dodano rozszerzenia: ‘.mjs’ (z typem ‘text/javascript’) i ‘.opus’ (‘audio/ogg’). Dodano typy MIME i rozszerzenia stosowane w WebAssembly.
- Moduł mod_tls (alternatywa dla mod_ssl w języku Rust) został przetłumaczony na użycie biblioteki rustls-ffi 0.9.2+.
- W module mod_md dodano dyrektywę ‘MDMatchNames all|servernames’ do zarządzania mapowaniem MDomains z zawartością VirtualHosts.
- W module mod_md dodano dyrektywę ‘MDChallengeDns01Version’ do wyboru wersji protokołu ACME używanego podczas weryfikacji przez DNS.
- W mod_md zezwolono na użycie dyrektywy MDChallengeDns01 dla poszczególnych domenów.
- W mod_dav dodano polecenie ‚DavBasePath’ do konfiguracji ścieżki do katalogu głównego repozytorium WebDav.
- W mod_alias dodano polecenie ‚AliasPreservePath’ do użycia jako pełnej ścieżki wartości Alias w bloku Location.
- W mod_alias dodano polecenie ‚RedirectRelative’, które umożliwia przekierowanie z użyciem ścieżek względnych.
- Do polecenia ErrorLogFormat dodano specyfikatory formatu %{z} i %{strftime-format}.
- W mod_deflate dodano polecenie ‚DeflateAlterETag’ do zarządzania zmianą ETag przy użyciu kompresji.
- Przeprowadzono optymalizację wydajności funkcji send_brigade_nonblocking().
- W mod_status zapewniono usunięcie duplikatów kluczy „BusyWorkers” i „IdleWorkers”, oraz dodano nowy licznik „GracefulWorkers”.
Źródło: opennet.ru
