Aktualizacje nginx 1.26.3 i 1.27.4 z naprawą podatności związanej z TLS

Wydano główną wersję nginx 1.27.4, w ramach której kontynuowany jest rozwój nowych możliwości, a także wydano równolegle wspieraną stabilną wersję nginx 1.26.3, do której wprowadzane są tylko zmiany związane z usuwaniem poważnych błędów i luk w zabezpieczeniach. W aktualizacjach usunięto lukę (CVE-2025-23419), która umożliwia obejście weryfikacji certyfikatów TLS klienta.

Luka została spowodowana brakiem odpowiednich kontroli podczas przetwarzania wirtualnych hostów powiązanych z jednym adresem IP i numerem portu, wybieranych podczas połączeń HTTPS na podstawie nazwy domeny określonej za pomocą rozszerzenia TLS SNI. W takich konfiguracjach atakujący mógł ponownie wykorzystać sesję TLS w kontekście innego wirtualnego hosta, aby obejść uwierzytelnienie za pomocą certyfikatu TLS klienta. Problem występuje w konfiguracjach obsługujących wznawianie sesji TLS przy użyciu „TLS session ticket” lub korzystających z pamięci podręcznej sesji TLS w ustawieniach serwera domyślnie, w której używane jest uwierzytelnienie na podstawie certyfikatów TLS klienta. Luka występuje od wydania nginx 1.11.4 przy budowie z OpenSSL i włączeniu protokołu TLSv1.3.

Zmiany niezwiązane z bezpieczeństwem:

  • Dodano wsparcie w celu zmniejszenia zużycia zasobów i obciążenia CPU podczas korzystania z TLS w konfiguracjach z dużą liczbą bloków server i location. Wprowadzone zmiany umożliwiają wykorzystanie już istniejącego kontekstu SSL z bloku nadrzędnego zamiast tworzenia oddzielnego kontekstu SSL (SSL_CTX w OpenSSL) dla każdego bloku konfiguracyjnego.
  • Rozwiązano problemy z długim ładowaniem plików konfiguracyjnych spowodowanym ponownym analizowaniem tego samego zestawu certyfikatów TLS, kluczy i list certyfikatów. Przyspieszono ponowne ładowanie konfiguracji dzięki ponownemu wykorzystaniu niezmienionych obiektów TLS, takich jak certyfikaty, klucze i CRL. Aby wyłączyć dziedziczenie obiektów podczas aktualizacji konfiguracji, dodano dyrektywę „ssl_object_cache_inheritable”.
  • Dodano pamięć podręczną dla certyfikatów i kluczy ładowanych za pomocą zmiennych w dyrektywach (np. „ssl_certificate /etc/ssl/$ssl_server_name.crt”). Dodano dyrektywy „ssl_certificate_cache”, „proxy_ssl_certificate_cache”, „grpc_ssl_certificate_cache” oraz „uwsgi_ssl_certificate_cache” do zarządzania pamięcią podręczną. Poprzez te dyrektywy można skonfigurować maksymalny rozmiar pamięci podręcznej, czas ważności zapisów oraz czas czyszczenia nieużywanych zapisów. Na przykład: „ssl_certificate_cache max=1000 inactive=20s valid=1m;”.
  • Dodano dyrektywę „keepalive_min_timeout”, która określa czas oczekiwania, w którym nginx nie zamknie połączenia keep-alive z klientem.
  • Rozwiązano problem z pojawianiem się w dziennikach komunikatów „gzip filter failed to use preallocated memory” przy budowie z biblioteką zlib-ng.
  • Rozwiązano problem ze składaniem biblioteki libatomic przy użyciu opcji budowy „—with-libatomic=DIR”
  • Usunięto błąd uniemożliwiający nawiązanie połączenia protokołem QUIC przy użyciu 0-RTT.
  • Zabezpieczono ignorowanie żądań negocjacji wersji QUIC, które pochodzą od klientów.
  • Rozwiązano problemy ze składaniem w Solaris 10 z modułem ngx_http_v3_module.
  • Naprawiono błędy w implementacji HTTP/3.

Ź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