Nowa wersja nginx 1.27.0 z naprawą 4 podatności w implementacji HTTP/3

Została wydana pierwsza wersja nowej głównej gałęzi nginx 1.27.0, w ramach której będzie kontynuowany rozwój nowych możliwości. Jednocześnie powstała wersja nginx 1.26.1, odnosząca się do równolegle wspieranej stabilnej gałęzi, do której wprowadzane są tylko zmiany związane z usuwaniem poważnych błędów i luk w zabezpieczeniach. W przyszłym roku na podstawie głównej gałęzi 1.27.x powstanie stabilna gałąź 1.28. Kod projektu napisany jest w języku C i jest rozpowszechniany na licencji BSD.

W nowych wersjach usunięto 4 luki bezpieczeństwa, dotyczące eksperymentalnego modułu ngx_http_v3 (domyślnie wyłączonego), zapewniającego wsparcie dla protokołu HTTP/3, używającego protokołu QUIC jako transportu dla HTTP/2. Problemy występują tylko przy aktywacji modułu ngx_http_v3_module i ustawieniu opcji „quic” w dyrektywie „listen”. Na temat podatności na luki w forach Angie i FreeNginx jak dotąd nie ma informacji.

Luka CVE-2024-34161 prowadzi do wycieku zawartości pamięci procesów roboczych na systemach z ustawionym MTU na wartość większą niż 4096 bajtów. Wyciek zawartości pamięci występuje w przypadku przesyłania pakietów CRYPTO, używanych podczas negocjacji połączenia, na etapie po wysłaniu przez klienta końcowej wiadomości.

Luki CVE-2024-31079, CVE-2024-32760 i CVE-2024-35200 są spowodowane uszkodzeniem pamięci i pozwalają zdalnemu napastnikowi na wymuszenie awaryjnego zakończenia procesu roboczego nginx poprzez nawiązanie specjalnie przygotowanej sesji opartych na protokole QUIC. Przy tym w przypadku luk CVE-2024-31079 i CVE-2024-32760 nie wyklucza się także innych skutków ataku (potencjalna możliwość wykonania kodu przez atakującego?). Szczegóły nie są podawane, ale sądząc po poprawkach w kodzie, luki były spowodowane odwołaniami do już zwolnionej pamięci (use-after-free), błędnym przydzieleniem pamięci dla tablicy, dereferencją wskaźnika o wartości zero i brakiem odpowiedniej walidacji rozmiaru danych umieszczanych w buforze.

Wśród zmian niezwiązanych z usuwaniem luk w zabezpieczeniach w nginx 1.27.0:

  • W dyrektywach „proxy_limit_rate”, „fastcgi_limit_rate”, „scgi_limit_rate” i „uwsgi_limit_rate” dodano wsparcie dla definiowania zmiennych.
  • Zredukowano zużycie pamięci podczas przetwarzania długotrwałych zapytań w konfiguracjach, w których używane są dyrektywy „gzip”, „gunzip”, „ssi”, „sub_filter” lub „grpc_pass”.
  • Rozwiązano problemy z kompilacją w GCC 14 przy użyciu opcji "—with-atomic".
  • Naprawiono błędy w implementacji HTTP/3.

Dodatkowo warto wspomnieć o publikacji nowej gałęzi głównej FreeNginx 1.27.0, forka Nginx, rozwijanego przez Maksyma Dunina, jednego z kluczowych deweloperów Nginx. FreeNginx jest pozycjonowany jako projekt non-profit, zapewniający rozwój bazy kodu Nginx bez ingerencji korporacyjnej. Nowa wersja poprawia obsługę błędów podczas odczytu ciała żądania, uruchamia kompilację w NetBSD 10.0 oraz usprawnia zapis plików PID (w dyrektywie "pid" dodano parametr "off").

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster