Wprowadzono pierwsze wydanie nowej głównej gałęzi nginx 1.21.0, w ramach której będzie kontynuowany rozwój nowych możliwości. Równocześnie przygotowano poprawkę do równolegle wspieranej stabilnej gałęzi 1.20.1, w której wprowadzane są jedynie zmiany związane z eliminacją poważnych błędów i luk w zabezpieczeniach. W przyszłym roku na bazie głównej gałęzi 1.21.x zostanie utworzona stabilna gałąź 1.22.
W nowych wersjach usunięto lukę (CVE-2021-23017) w kodzie odpowiedzialnym za rozwiązywanie nazw hostów w DNS, co może prowadzić do zawieszenia się systemu lub potencjalnego wykonania kodu atakującego. Problem występuje podczas przetwarzania określonych odpowiedzi serwera DNS, co prowadzi do jednobajtowego przepełnienia bufora. Luka objawia się tylko wtedy, gdy w ustawieniach resolvera DNS włączono dyrektywę „resolver”. Aby przeprowadzić atak, napastnik musi mieć możliwość fałszowania pakietów UDP od serwera DNS lub uzyskać nad nimi kontrolę. Luka występuje od wydania nginx 0.6.18. Aby naprawić problem w starszych wydaniach, można użyć łatki.
Zmiany w nginx 1.21.0, które nie są związane z bezpieczeństwem:
- W dyrektywach „proxy_ssl_certificate”, „proxy_ssl_certificate_key”, „grpc_ssl_certificate”, „grpc_ssl_certificate_key”, „uwsgi_ssl_certificate” i „uwsgi_ssl_certificate_key” dodano wsparcie dla zmiennych.
- Do modułu proxy pocztowego dodano wsparcie dla „pipelining”, umożliwiające przesyłanie wielu żądań POP3 lub IMAP w jednym połączeniu, a także dodano nową dyrektywę „max_errors”, określającą maksymalną liczbę błędów protokołu, po których połączenie zostanie zamknięte.
- Do modułu stream dodano parametr „fastopen”, włączający tryb „TCP Fast Open” dla nasłuchujących gniazd.
- Rozwiązano problemy z eskalowaniem specjalnych znaków podczas automatycznego przekierowania z dodaniem ukośnika na końcu.
- Rozwiązano problem z zamykaniem połączeń z klientami podczas używania SMTP pipelining.
Źródło: opennet.ru
