Opublikowano wersję OpenSSH 10.6, otwartej implementacji klienta i serwera do pracy z protokołami SSH 2.0 i SFTP. Usunięto problemy z bezpieczeństwem, z których większość została wykryta podczas analizy kodu przy użyciu narzędzi AI (identyfikatory CVE nie zostały przypisane):
- Luka w sftp, która pozwala na zapisanie pliku poza docelowym katalogiem przy łączeniu z kontrolowanym przez przestępcę serwerem.
- Dwie luki w implementacji GSSAPI w sshd, spowodowane zachowaniem stanu między różnymi próbami uwierzytelnienia. Dane GSSAPI mogły zostać zachowane po nieudanej próbie uwierzytelnienia i użyte po następnej udanej próbie. Problemy występują przy włączonej konfiguracji GSSAPIAuthentication.
- W sshd i ssh wyłączono wsparcie dla kompresji LZ77 z powodu możliwości przeprowadzenia ataku pośredniego, który pozwala na odzyskanie treści z innej sesji przy połączeniu przez wspólne z ofiarą połączenie multiplexowane, korzystając z faktu, że kontrolowane przez przestępcę dane wejściowe wpływają na całkowitą długość przesyłanych zaszyfrowanych wiadomości (LZ77 zastępuje powtarzające się ciągi odniesieniami w wspólnym dla wszystkich kanałów buforze).
- W narzędziu ssh zabroniono używania znaków ‘$’ i ‘\’ w nazwach użytkowników wprowadzonych w linii poleceń, ponieważ za ich pomocą można było zorganizować wykonanie kodu przy podstawianiu nazw w dyrektywach ProxyCommand i Match exec, określonych w ustawieniach.
- W ssh-keygen naprawiono niewłaściwe przetwarzanie czasu letniego, które prowadziło do przesunięcia terminu ważności certyfikatów o 1 godzinę.
- W celu zablokowania tworzenia bomb ZIP w sshd i ssh dodano sprawdzenie przekroczenia maksymalnego rozmiaru pakietu podczas dekompresji danych.
- W sshd rozwiązano problem, który pozwalał obejść ograniczenia słowa kluczowego „restrict” w pliku authorized_keys, które nie były stosowane do tuneli (PermitTunnel).
- W sshd rozwiązano problem z niewłaściwym analizowaniem opcji „none” wewnątrz bloków Match, która w niektórych dyrektywach, takich jak AuthorizedPrincipalsFile, była interpretowana jako nazwa pliku, a nie jako oznaczenie dezaktywacji dyrektywy.
- W sshd naprawiono brak resetowania uprawnień roota na platformach, które nie obsługują przesyłania deskryptorów plików i wymagają dla przydzielenia PTY praw roota. Problem występuje w QNX 6, SCO OpenServer 5 oraz podczas kompilacji z opcją „—disable-fd-passing”.
Zmiany niezwiązane z podatnościami:
- Włączono wsparcie dla hybrydowego algorytmu kryptograficznego ssh-mldsa44-ed25519, odpornego na ataki z użyciem komputerów kwantowych.
- W sshd_config zrealizowano i włączono domyślnie opcję WarnWeakCrypto do zarządzania ostrzeżeniami o nawiązywaniu połączenia z użyciem algorytmów negocjacji kluczy, które są podatne na ataki z użyciem komputerów kwantowych.
- W ssh-keygen i ssh-add wprowadzono weryfikację polityki credProtect w danych uwierzytelniających, aby spełniać wymagania weryfikacji (PIN lub biometryka) przed dostępem do kluczy stałych na tokenach FIDO.
- W ssh-add dodano flagę „-P” do pominięcia opcjonalnego wprowadzenia kodu PIN dla tokenów FIDO i PKCS#11.
- W ssh w poleceniu ~I wprowadzono wyświetlanie informacji o wersjach na lokalnych i zdalnych systemach.
- W sftp dodano flagę ‘-p’ do poleceń mkdir/lmkdir, aby tworzyć katalogi w razie potrzeby.
- W ssh-keygen dodano tryb „hexdump” do eksportu kluczy w formie heksadecymalnych zrzutów (na przykład do wklejenia w dokumentacji).
- W ssh i sshd w dyrektywie ChannelTimeout umożliwiono określenie timeoutów z dokładnością do części sekundy.
- W sshd dodano opcję AgentSocketPath do określenia ścieżki do $SSH_AUTH_SOCK podczas tunelowania agenta (na przykład user:.ssh/agent dla podkatalogów w $HOME oraz shared:/tmp dla katalogów współdzielonych).
- W ssh-agent dodano flagę „-A” do wskazania katalogów z socketami agenta, w których dopuszczalne jest określenie prefiksów „user:” i „shared:” jak w opcji AgentSocketPath.
- W sshd weryfikacja kluczy publicznych została oddzielona od prób uwierzytelnienia. Dodano opcję „PubkeyOptions max-pk-ok:nnnn” do konfiguracji liczby prób weryfikacji kluczy publicznych (domyślnie 6), po których połączenie zostanie przerwane z powodu limitu MaxAuthTries.
- W ssh i sshd do opcji TCPKeepAlive dodano wsparcie dla wartości „all”, co obejmuje wysyłanie pakietów keepalive nie tylko dla głównego połączenia, ale także dla połączeń tunelowanych przez nie.
Źródło: opennet.ru
