Aktualizacja OpenSSL 3.0.1 z poprawką luki

Dostępne są wersje konserwacyjne biblioteki kryptograficznej OpenSSL 3.0.1 i 1.1.1m. Wersja 3.0.1 naprawia lukę (CVE-2021-4044), a w obu wersjach naprawiono kilkanaście błędów.

Podatność istnieje w implementacji klientów SSL/TLS i wynika z tego, że biblioteka libssl błędnie obsługuje wartości ujemnych kodów błędów zwracanych przez funkcję X509_verify_cert(), wywoływaną w celu weryfikacji certyfikatu przekazanego klientowi przez serwer. Kody ujemne są zwracane w przypadku wystąpienia błędów wewnętrznych, np. gdy nie ma możliwości przydzielenia pamięci dla bufora. Jeśli taki błąd zostanie zwrócony, kolejne wywołania funkcji I/O, takich jak SSL_connect() i SSL_do_handshake() zwrócą błąd i kod błędu SSL_ERROR_WANT_RETRY_VERIFY, który powinien zostać zwrócony tylko wtedy, gdy aplikacja wykonała wcześniej wywołanie SSL_CTX_set_cert_verify_callback() .

Ponieważ większość aplikacji nie wywołuje funkcji SSL_CTX_set_cert_verify_callback(), wystąpienie błędu SSL_ERROR_WANT_RETRY_VERIFY może zostać błędnie zinterpretowane i spowodować awarię, pętlę lub inne nieprawidłowe zachowanie. Problem jest najbardziej niebezpieczny w połączeniu z innym błędem w OpenSSL 3.0, który powoduje błąd wewnętrzny, gdy X509_verify_cert() przetwarza certyfikaty bez rozszerzenia „Alternatywna nazwa podmiotu”, ale z powiązaniami nazw w ograniczeniach użytkowania. W takim przypadku atak może skutkować zależnymi od aplikacji anomaliami w przetwarzaniu certyfikatów i ustanawianiu sesji TLS.

Źródło: opennet.ru

Dodaj komentarz