{"id":"UBUNTU-CVE-2026-54590","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. Version 2.23.0 contains an incomplete fix for CVE-2026-45309 in SSHServerConfig._set_tokens that blocks /, , and .. before %u substitution in AuthorizedKeysFile but does not block a leading ~ or ${ENV}, allowing later expansion in _expand_val and Path(filename).expanduser() to escape the intended authorized-keys directory. This issue is fixed in version 2.23.1.","modified":"2026-07-15T17:53:43Z","published":"2026-07-08T21:16:00Z","upstream":["CVE-2026-54590"],"references":[{"type":"REPORT","url":"https://ubuntu.com/security/CVE-2026-54590"},{"type":"REPORT","url":"https://www.cve.org/CVERecord?id=CVE-2026-54590"},{"type":"REPORT","url":"https://github.com/ronf/asyncssh/commit/3d515ba9ba0cd9990d248bdf62bcf05d51261a88"},{"type":"REPORT","url":"https://github.com/ronf/asyncssh/releases/tag/v2.23.1"},{"type":"REPORT","url":"https://github.com/ronf/asyncssh/security/advisories/GHSA-qr67-gv47-xwwh"}],"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-54590.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-54590.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_version":"1.12.2-1ubuntu0.2","binary_name":"python3-asyncssh"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-54590.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-54590.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-54590.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_name":"python3-asyncssh","binary_version":"2.20.0-1"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-54590.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-54590.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N"},{"type":"Ubuntu","score":"medium"}]}