{"id":"UBUNTU-CVE-2026-77473","details":"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.","modified":"2026-11-12T23:48:39.519479958Z","published":"2026-11-12T00:00:00Z","upstream":["CVE-2026-77473"],"references":[{"type":"REPORT","url":"https://ubuntu.com/security/CVE-2026-77473"},{"type":"REPORT","url":"https://www.cve.org/CVERecord?id=CVE-2026-77473"},{"type":"REPORT","url":"https://github.com/ronf/asyncssh/security/advisories/GHSA-q8m6-9rfx-39rf"},{"type":"REPORT","url":"https://github.com/ronf/asyncssh/commit/eaf7fd3b058ccb36b51ed932158d36cf304aa7c3"},{"type":"REPORT","url":"https://github.com/ronf/asyncssh/releases/tag/v2.24.1"}],"affected":[{"package":{"name":"python-asyncssh","ecosystem":"Ubuntu:16.04:LTS","purl":"pkg:deb/ubuntu/python-asyncssh?arch=source&distro=xenial"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.2.0-1","1.2.1-1","1.3.0-1"],"ecosystem_specific":{"binaries":[{"binary_name":"python3-asyncssh","binary_version":"1.3.0-1"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-77473.json"}},{"package":{"name":"python-asyncssh","ecosystem":"Ubuntu:Pro:18.04:LTS","purl":"pkg:deb/ubuntu/python-asyncssh?arch=source&distro=esm-apps%2Fbionic"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.8.1-2","1.11.0-2","1.11.1-1","1.11.1-1ubuntu0.1~esm1","1.11.1-1ubuntu0.1~esm2"],"ecosystem_specific":{"binaries":[{"binary_name":"python3-asyncssh","binary_version":"1.11.1-1ubuntu0.1~esm2"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-77473.json"}},{"package":{"name":"python-asyncssh","ecosystem":"Ubuntu:20.04:LTS","purl":"pkg:deb/ubuntu/python-asyncssh?arch=source&distro=focal"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.12.2-1","1.12.2-1ubuntu0.1","1.12.2-1ubuntu0.2"],"ecosystem_specific":{"binaries":[{"binary_name":"python3-asyncssh","binary_version":"1.12.2-1ubuntu0.2"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-77473.json"}},{"package":{"name":"python-asyncssh","ecosystem":"Ubuntu:Pro:22.04:LTS","purl":"pkg:deb/ubuntu/python-asyncssh?arch=source&distro=esm-apps%2Fjammy"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.5.0-1","2.5.0-1ubuntu0.1~esm1","2.5.0-1ubuntu0.1","2.5.0-1ubuntu0.1+esm1"],"ecosystem_specific":{"binaries":[{"binary_name":"python3-asyncssh","binary_version":"2.5.0-1ubuntu0.1+esm1"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-77473.json"}},{"package":{"name":"python-asyncssh","ecosystem":"Ubuntu:Pro:24.04:LTS","purl":"pkg:deb/ubuntu/python-asyncssh?arch=source&distro=esm-apps%2Fnoble"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.10.1-2","2.10.1-2ubuntu0.1","2.10.1-2ubuntu0.1+esm1"],"ecosystem_specific":{"binaries":[{"binary_name":"python3-asyncssh","binary_version":"2.10.1-2ubuntu0.1+esm1"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-77473.json"}},{"package":{"name":"python-asyncssh","ecosystem":"Ubuntu:26.10","purl":"pkg:deb/ubuntu/python-asyncssh?arch=source&distro=stonking"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.21.1-1","2.23.0-1"],"ecosystem_specific":{"binaries":[{"binary_name":"python3-asyncssh","binary_version":"2.23.0-1"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-77473.json"}},{"package":{"name":"python-asyncssh","ecosystem":"Ubuntu:26.04:LTS","purl":"pkg:deb/ubuntu/python-asyncssh?arch=source&distro=resolute"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.20.0-1","2.21.1-1"],"ecosystem_specific":{"binaries":[{"binary_name":"python3-asyncssh","binary_version":"2.21.1-1"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-77473.json"}}],"schema_version":"1.9.2","severity":[{"type":"Ubuntu","score":"medium"}]}