{"id":"UBUNTU-CVE-2026-54591","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.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.","modified":"2026-07-15T17:53:43Z","published":"2026-07-08T21:16:00Z","upstream":["CVE-2026-54591"],"references":[{"type":"REPORT","url":"https://ubuntu.com/security/CVE-2026-54591"},{"type":"REPORT","url":"https://www.cve.org/CVERecord?id=CVE-2026-54591"},{"type":"REPORT","url":"https://github.com/ronf/asyncssh/commit/d730803b8e4e94c20c7580d90f94d1e05f9f58de"},{"type":"REPORT","url":"https://github.com/ronf/asyncssh/releases/tag/v2.23.1"},{"type":"REPORT","url":"https://github.com/ronf/asyncssh/security/advisories/GHSA-2wxc-x7rj-hg8f"}],"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_version":"1.3.0-1","binary_name":"python3-asyncssh"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-54591.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_version":"1.11.1-1ubuntu0.1~esm2","binary_name":"python3-asyncssh"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-54591.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-54591.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-54591.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-54591.json"}},{"package":{"name":"python-asyncssh","ecosystem":"Ubuntu:25.10","purl":"pkg:deb/ubuntu/python-asyncssh?arch=source&distro=questing"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.20.0-1"],"ecosystem_specific":{"binaries":[{"binary_version":"2.20.0-1","binary_name":"python3-asyncssh"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-54591.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-54591.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H"},{"type":"Ubuntu","score":"medium"}]}