Description
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.24.1, recursive remote-to-local SFTP copies in SFTPClient._copy() in asyncssh/sftp.py, reached through get(), mget(), and copy(), trust filenames returned by a remote server's directory enumeration. A malicious or compromised SFTP server can return an absolute filename or a filename containing path separators and parent-directory traversal, causing destination path construction to escape the requested local directory and write attacker-selected content to locations writable by the client process. This issue is fixed in version 2.24.1.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| ronf | asyncssh | < 2.24.1 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | python-asyncssh | No fix yet | — |
| Debian 13 | python-asyncssh | No fix yet | — |
| Debian 12 | python-asyncssh | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | python-asyncssh | No fix yet | — |
| Ubuntu 26.04 LTS | python-asyncssh | No fix yet | — |
| Ubuntu 20.04 LTS | python-asyncssh | No fix yet | — |
| Ubuntu 16.04 LTS | python-asyncssh | No fix yet | — |
Show 3 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Pro 24.04 LTS | python-asyncssh | No fix yet | — |
| Ubuntu Pro 22.04 LTS | python-asyncssh | No fix yet | — |
| Ubuntu Pro 18.04 LTS | python-asyncssh | No fix yet | — |