CVE-2026-54591
WysokieCVSS 8.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 24 - wyżej niż 24% wszystkich znanych CVE
Streszczenie
Podatność w bibliotece AsyncSSH przed wersją 2.23.1 umożliwia złośliwemu serwerowi SSH zapis dowolnych plików w systemie plików klienta SCP. Dzieje się tak, ponieważ funkcja _parse_cd_args w pliku scp.py zwraca nazwy plików dostarczone przez serwer bez weryfikacji, a _recv_files łączy je ze ścieżką docelową bez sprawdzania granic katalogu docelowego, co pozwala na użycie sekwencji nawigacyjnych ../.
Ocena ryzyka
Atakujący serwer SSH może nadpisać lub utworzyć dowolne pliki w systemie klienta, co może prowadzić do przejęcia kontroli nad aplikacją, modyfikacji konfiguracji lub wstrzyknięcia złośliwego kodu.
Rekomendacja
Należy niezwłocznie zaktualizować bibliotekę AsyncSSH do wersji 2.23.1 lub nowszej, która zawiera poprawkę uniemożliwiającą nawigację poza katalog docelowy podczas operacji SCP.
Inne podatności w AsyncSSH
Zobacz wszystkie- CVE-2026-62949Średnie
AsyncSSH to pakiet Pythona zapewniający asynchroniczną implementację klienta i serwera protokołu SSHv2 na frameworku asyncio. W wersjach przed 2.24.0 funkcje _process_channel_open i _process_channel_open_confirmation w asyncssh/connection.py akceptują wartość send_pktsize równą zero dostarczoną przez drugą stronę. Gdy dane kanału docierają do SSHChannel._flush_send_buf w asyncssh/channel.py, wartość zero powoduje, że każda iteracja pętli wycina i usuwa zero bajtów bez zmniejszania okna wysyłania, pozostawiając synchroniczną pętlę na stałe prawdziwą bez punktu await. Złośliwy serwer SSH może wywołać ścieżkę klienta przez SSH_MSG_CHANNEL_OPEN_CONFIRMATION przed pierwszym zapisem do kanału, a uwierzytelniony klient może wywołać ścieżkę serwera przez SSH_MSG_CHANNEL_OPEN i zamrozić wszystkie bieżące i przyszłe połączenia obsługiwane przez proces. Podatność została naprawiona w wersji 2.24.0.
- CVE-2026-45309Wysokie
Podatność w AsyncSSH przed wersją 2.23.0 umożliwia atakującemu wykorzystanie rozwijania tokena %u w AuthorizedKeysFile do odczytu plików kluczy poza zamierzonym katalogiem poprzez segmenty ścieżki (/, \, ..). Atakujący może uwierzytelnić się przy użyciu wybranego pliku klucza.
- CVE-2026-54590Średnie
AsyncSSH w wersji 2.23.0 zawiera niekompletną poprawkę dla CVE-2026-45309, która blokuje znaki /, , oraz .. przed podstawieniem %u w AuthorizedKeysFile, ale nie blokuje wiodącego ~ lub ${ENV}, co pozwala na późniejszą ekspansję w _expand_val i Path(filename).expanduser() w celu ominięcia zamierzonego katalogu autoryzowanych kluczy. Problem został naprawiony w wersji 2.23.1.
Oryginalny opis (angielski, źródło NVD)
AsyncSSH is a Python package which provides an asynchronous client and server implementation of the SSHv2 protocol on top of the Python asyncio framework. Prior to 2.23.1, a malicious SSH server can write arbitrary files on the asyncssh SCP client's filesystem by sending filenames containing ../ traversal sequences because _parse_cd_args in scp.py returns server-provided names verbatim and _recv_files joins them to the destination path without enforcing the target directory boundary. This issue is fixed in version 2.23.1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

