Aktualizacja OpenSSH 9.9p2 z usuniętą możliwością przeprowadzenia ataku MITM

Wydano poprawkę do OpenSSH 9.9p2, w której usunięto dwie podatności wykryte przez firmę Qualys. Zaprezentowano przykład wykorzystania tych podatności do przeprowadzenia ataku MITM, który umożliwia przechwycenie ruchu, gdy klient próbuje połączyć się z serwerem SSH, przekierowując go na fałszywy serwer oraz obejmując weryfikację kluczy hosta, tworząc u klienta iluzję połączenia z pożądanym serwerem (klient SSH zaakceptuje klucz hosta fałszywego serwera zamiast klucza legalnego serwera).

Pierwsza podatność (CVE-2025-26465) wynika z błędu logicznego w narzędziu ssh, który pozwala obejść weryfikację identyfikacji serwera i przeprowadzić atak MITM. Problem pojawia się od wydania OpenSSH 6.8p1 (grudzień 2014 r.) w konfiguracjach z włączoną opcją VerifyHostKeyDNS. W standardowej instalacji OpenSSH ta opcja domyślnie jest wyłączona, ale do marca 2023 roku była włączona w ustawieniach ssh w FreeBSD.

Sednem problemu jest to, że w kodzie funkcji verify_host_key_callback() przy wywołaniu funkcji verify_host_key() sprawdzany jest jedynie kod błędu „-1”, podczas gdy inne kody, takie jak „-2”, są ignorowane. W efekcie funkcja verify_host_key_callback() może zwrócić pomyślny kod „0”, mimo że funkcja verify_host_key() zwraca błąd „-2”. Kod błędu „-2” jest zwracany przez funkcję verify_host_key() w przypadku braku pamięci. Jeśli stworzyć warunki, które uniemożliwiają przydzielenie pamięci w funkcji verify_host_key(), SSH uzna, że klucz hosta został poprawnie zweryfikowany. Warunki te są tworzone przez fałszywy serwer SSH atakującego, który, na który jest przekierowany klient, zwraca klucz hosta maksymalnego rozmiaru (256KB) oraz jednocześnie wykorzystywana jest awaria pamięci po stronie klienta ssh.

Warunki do stworzenia usterki pamięci są osiągane dzięki drugiej podatności (CVE-2025-26466), która dotyczy zarówno klienta ssh, jak i serwer sshd, i eksploatowane bez uwierzytelnienia. Wrażliwość pozwala na wyczerpanie dostępnej pamięci procesora i stworzenie dużego obciążenia CPU poprzez wysłanie dużej liczby pakietów SSH2_MSG_PING. W obsłudze pakietów SSH2_MSG_PING występuje wyciek pamięci, który pojawia się od wydania OpenSSH 9.5p1 (sierpień 2023 r.). Wyciek występuje, ponieważ dla każdego przychodzącego 16-bajtowego pakietu PING przydzielany jest 256-bajtowy bufor do formowania odpowiedzi, ale ten bufor jest zwalniany dopiero po zakończeniu negocjacji kluczy. Jako rozwiązanie ochrony proponuje się skonfigurowanie ograniczeń za pomocą dyrektyw LoginGraceTime, MaxStartups i PerSourcePenalties.

Ź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