CVE-2026-48108
ŚrednieCVSS 5.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 20 - wyżej niż 20% wszystkich znanych CVE
Streszczenie
Russh przed wersją 0.61.0 nie egzekwuje ściśle reguł identyfikacji SSH. Czytnik identyfikacji po stronie serwera używa liberalnej ścieżki, pozwalając na linie przedbanerowe od klienta i nie ogranicza ich liczby. Zdalny atakujący może utrzymywać zasoby połączenia w fazie przed uwierzytelnieniem, wysyłając nieprawidłowe dane identyfikacyjne.
Ocena ryzyka
Atakujący może zablokować zasoby serwera, prowadząc do odmowy usługi (DoS) dla innych klientów.
Rekomendacja
Zaktualizuj Russh do wersji 0.61.0 lub nowszej, która zawiera poprawkę egzekwującą reguły identyfikacji SSH.
Inne podatności w Russh
Zobacz wszystkie- CVE-2026-68930Średnie
Biblioteka Russh w wersji przed 0.62.5 umożliwia wywoływanie callbacków Handlera dla identyfikatorów kanałów, które nigdy nie zostały otwarte lub potwierdzone. Problem został naprawiony w wersji 0.62.5.
- CVE-2026-42189Wysokie
W bibliotece russh, będącej klientem i serwerem SSH w języku Rust, przed wersją 0.60.1 występuje podatność na odmowę usługi w obsłudze uwierzytelniania interaktywnego z użyciem klawiatury. Złośliwy klient może spowodować awarię serwera russh, który implementuje to uwierzytelnianie, wysyłając jeden źle sformatowany pakiet.
- CVE-2026-73489Średnie
Russh przed wersją 0.62.4 ma podatność na odmowę usługi. Uwierzytelniony klient SSH może wysłać żądanie kanału pty-req z więcej niż 130 rekordami trybu terminala. Parser w russh/src/server/encrypted.rs przechowuje tryby w stałej tablicy 130-elementowej, ale kontynuuje zwiększanie licznika, co prowadzi do wyjścia poza zakres i paniki przed uruchomieniem handlera pty_request.
- CVE-2026-73430Średnie
Russh to biblioteka SSH klienta i serwera w języku Rust. Przed wersją 0.62.4 nieuwierzytelniony klient SSH może spowodować odmowę usługi, wysyłając SSH_MSG_KEX_ECDH_INIT z 32-bajtową wartością Q_C składającą się z samych zer. Funkcja Curve25519Kex::server_dh w russh/src/kex/curve25519.rs akceptuje zerową wartość publiczną peer i oblicza zerowy wspólny sekret, po czym compute_exchange_hash wywołuje encode_mpint w russh/src/kex/mod.rs i indeksuje poza koniec danych wejściowych podczas pomijania wiodących zer. Panika występuje przed uwierzytelnieniem i kończy zadanie wymiany kluczy serwera. Problem naprawiono w wersji 0.62.4.
- CVE-2026-73429Średnie
Russh to biblioteka SSH klienta i serwera w języku Rust. Przed wersją 0.62.4 złośliwy serwer SSH może spowodować awarię sesji klienta russh za pomocą nieprawidłowej odpowiedzi KEX_ECDH_REPLY zawierającej wartość efemeryczną serwera, która nie ma 32 bajtów. Funkcja Curve25519Kex::compute_shared_secret po stronie klienta w russh/src/kex/curve25519.rs przekazuje zdekodowaną wartość exchange.server_ephemeral do clone_from_slice bez walidacji jej długości, co powoduje deterministyczną panikę przed weryfikacją klucza hosta serwera. Panika kończy zadanie sesji klienta i objawia się jako JoinError, podczas gdy proces osadzający zwykle pozostaje uruchomiony. Problem naprawiono w wersji 0.62.4.
- CVE-2026-48110Wysokie
Podatność w bibliotece Russh (Rust SSH client & server) od wersji 0.34.0 do przed 0.61.0. Zdalny peer SSH może wysłać nadmiernie duże lub źle sformatowane pola z prefiksem długości, powodując alokację pamięci lub próbę alokacji przed odrzuceniem danych, co może prowadzić do odmowy usługi lub innych problemów.
- CVE-2026-48107Średnie
Russh (Rust SSH client & server library) w wersjach od 0.37.0 do 0.61.0 zawiera podatność w ścieżce uwierzytelniania keyboard-interactive klienta. Złośliwy serwer SSH może wysłać USERAUTH_INFO_REQUEST z kontrolowaną liczbą promptów, a klient używa tej liczby bezpośrednio w Vec::with_capacity(...) przed walidacją, co może prowadzić do problemów z pamięcią.
- CVE-2026-46705Średnie
Russh (biblioteka SSH w Rust) przed wersją 0.61.0 zawiera podatność w ścieżce uwierzytelniania serwera, gdzie stan wewnętrzny uwierzytelniania nie jest resetowany przy zmianie nazwy użytkownika lub usługi między żądaniami. Może to wpłynąć na późniejsze żądania dla innego (użytkownik, usługa).
- CVE-2026-46702Wysokie
Biblioteka Russh (Rust SSH) w wersjach od 0.34.0 do 0.61.1 ma podatność związaną z kompresją SSH. Po włączeniu kompresji zdalny peer może wysłać skompresowany pakiet, który po dekompresji jest znacznie większy niż dozwolony rozmiar, co prowadzi do przeciążenia zasobów.
- CVE-2026-46673Wysokie
Podatność w bibliotece Russh (Rust SSH client & server) przed wersją 0.60.3 w klasie CryptoVec umożliwia niekontrolowany wzrost pojemności, niekontrolowaną arytmetykę długości oraz niebezpieczne ścieżki alokacji/blokowania. Lokalni agenci SSH mogą dostarczyć kontrolowane przez atakującego długości ramek przed walidacją, a w starszych wersjach (przed 0.58.0) zdalny ruch SSH również docierał do CryptoVec przez bufory transportowe i kompresyjne.
Oryginalny opis (angielski, źródło NVD)
Russh is a Rust SSH client & server library. From version 0.34.0-beta.1 to before version 0.61.0, russh did not enforce the SSH identification-string rules as deliberately as OpenSSH. In particular, the server-side identification reader used the same permissive path as the client, allowing pre-banner lines from clients, and the reader did not enforce a bounded number of pre-banner lines. For a library server built on russh, this could allow a remote peer to hold connection setup resources in the cleartext pre-authentication phase with malformed identification input that should have been rejected early. This issue has been patched in version 0.61.0.

