CVE-2026-46705
ŚrednieCVSS 5.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 12 - wyżej niż 12% wszystkich znanych CVE
Streszczenie
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).
Ocena ryzyka
Atakujący może wykorzystać ten stan do ominięcia uwierzytelniania lub uzyskania dostępu do nieautoryzowanych zasobów, co zagraża bezpieczeństwu połączeń SSH.
Rekomendacja
Zaktualizuj Russh do wersji 0.61.0 lub nowszej. Przejrzyj konfigurację serwera SSH pod kątem dodatkowych zabezpieczeń.
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-48108Średnie
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.
- 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-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, the russh server authentication path keeps internal userauth state across SSH_MSG_USERAUTH_REQUEST messages without separating that state when the request principal changes. RFC 4252 allows the user name and service name fields to change between authentication requests. The issue is not that such changes are invalid. The issue is that russh-owned authentication state, such as remaining methods, partial-success state, and in-progress method state, can remain associated with the connection and then influence a later request for a different (user, service). This is an internal library state mismatch. This issue has been patched in version 0.61.0.

