Kilka dni temu, Damian Miller (jeden z twórców OpenSSH), dał mi znaćpoprzez listy mailingowe, Wydanie konserwacyjne OpenSSH 9.9p2 oferuje nasz konfigurator naprawia dwie krytyczne luki w zabezpieczeniach odkryte przez Qualys, które mogą być wykorzystane do przeprowadzania ataków typu Man-in-the-Middle (MITM).
Wspomniano, że te usterki umożliwiło atakującemu przechwycenie połączeń SSH i oszukać klienta, aby zaakceptował klucz złośliwego serwera zamiast prawidłowego klucza serwera docelowego.
CVE-2025-26465: Ominięcie weryfikacji klucza SSH
Pierwszą luką w zabezpieczeniach, którą naprawiono w tej wersji korekcyjnej, jest CVE-2025-26465. Ta luka w zabezpieczeniach jest spowodowana błędem logicznym w narzędziu ssh, co umożliwia atakującemu ominięcie weryfikacji klucza serwera i skuteczne przeprowadzenie ataku MITM.
Gdy klient próbuje się połączyć do serwera SSH, Atakujący może przekierować ruch na fałszywy serwer i spowodować, że klient zaakceptuje nieprawidłowy klucz bez ostrzeżenia, sądząc, że jest połączony z prawidłowym serwerem.
Dodatkowo ta luka:
- Jest on obecny w OpenSSH od wersji 6.8p1 (grudzień 2014).
- Wyzwalane, gdy opcja VerifyHostKeyDNS jest włączona.
- W podstawowej konfiguracji OpenSSH opcja ta jest domyślnie wyłączona, ale w FreeBSD była włączona do marca 2023 r.
Jeśli chodzi o przyczyny które powodują tę awarię, wspomniano, że Dzieje się tak, ponieważ funkcja verify_host_key_callback() wywołuje verify_host_key(), ale sprawdza tylko czy zwrócony kod błędu to -1, ignorując inne kody błędów, takie jak -2. Gdy verify_host_key() zwraca -2, gdy brakuje pamięci, ale z powodu pominięcia kodu błędu, System błędnie zakłada, że klucz hosta został zweryfikowany poprawnie
Atakujący może wykorzystać tę lukę, tworząc fałszywy serwer SSH, który wysyła duży klucz hosta (256 KB), powodując w ten sposób nadmierne zużycie pamięci po stronie klienta i wyzwalając nieobsługiwany stan błędu.
CVE-2025-26466: Wyciek pamięci i nadmierne zużycie procesora w SSH
Drugą naprawioną luką jest CVE-2025-26466. dotyczy zarówno klienta ssh, jak i serwera sshd, od kiedy pozwala wyczerpać pamięć procesu i generuje duże obciążenie procesora poprzez wielokrotne wysyłanie pakietów SSH2_MSG_PING.
Ogromny wpływ tej podatności polega na tym, że Można go wykorzystać bez uwierzytelniania i dotyczy OpenSSH od wersji 9.5p1 (sierpień 2023). Ponadto umożliwia atakującemu wykorzystanie zasobów systemowych, co prowadzi do spadku wydajności, a nawet do odmowy usługi (DoS).
Jeśli chodzi o przyczyny powodujące tę awarię, wspomniano, że jest ona spowodowana tym, że Każdy przychodzący 2-bajtowy pakiet SSH16_MSG_PING powoduje przydzielenie bufora o rozmiarze 256 bajtów w pamięci. Bufor ten nie jest zwalniany do momentu zakończenia uzgadniania kluczy, co powoduje wyciek pamięci podczas wysyłania wielu pakietów PING.
Łagodzenie i rozwiązanie
Jako obejście problemu, Zaleca się ustawienie ograniczeń w sshd_config używając następujących dyrektyw:
- LoginGraceTime: Ogranicza to czas oczekiwania na uwierzytelnienie.
- MaxStartups: ogranicza liczbę nieuwierzytelnionych połączeń.
- Kary za źródło: nakłada kary na klientów, którzy podejmują wielokrotne próby połączenia.
A jeśli chodzi o rozwiązania, Pierwszym i najbardziej polecanym jest uaktualnić OpenSSH do wydanej wersji „9.9p2” jak najszybciej usunąć te luki w zabezpieczeniach. Jeśli jednak natychmiastowa modernizacja okaże się niemożliwa, należy zastosować środki zaradcze wymienione powyżej. Dodatkowo zaleca się wyłączenie opcji VerifyHostKeyDNS, chyba że używane są niezawodne mechanizmy weryfikacji DNSSEC.
Jeżeli jesteś chcesz dowiedzieć się więcej na ten temat, możesz sprawdzić szczegóły w poniższy link.
Jak zainstalować OpenSSH na Linuksie?
Dla tych, którzy są zainteresowani możliwością zainstalowania tej nowej wersji OpenSSH w swoich systemach, na razie mogą to zrobić pobieranie kodu źródłowego tego i wykonanie kompilacji na swoich komputerach.
Dzieje się tak, ponieważ nowa wersja nie została jeszcze uwzględniona w repozytoriach głównych dystrybucji Linuksa. Aby uzyskać kod źródłowy, możesz to zrobić z poniższy link.
Zakończono pobieranie, teraz rozpakujemy pakiet za pomocą następującego polecenia:
tar -xvf openssh-9.9p2.tar.gz
Wchodzimy do utworzonego katalogu:
Otwórz płytę CD-SSH-9.9p2
Y możemy skompilować następujące polecenia:
./configure --prefix = / opt --sysconfdir = / etc / ssh make make install