Auth bypass in Ronf Asyncssh
CVE-2026-54590
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.
Vulnerability class: Path Traversal (Directory Traversal)
EPSS: 0.003 (21.2th percentile) — read the EPSS interpretation.
CVSS v3 metric
CVSS v3 base score 5.9 (Medium). Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N.
Affected products
- Ronf Asyncssh — versions < 2.23.1
Weakness classification (CWE)
References
- security-advisories@github.com (x_refsource_CONFIRM)
- security-advisories@github.com (x_refsource_MISC)
- security-advisories@github.com (x_refsource_MISC)
Frequently asked questions
- What is CVE-2026-54590?
- CVE-2026-54590 is a medium-severity vulnerability in Ronf Asyncssh, classified under Path Traversal. CVSS score: 5.9/10. Published 2026-07-08.
- How severe is CVE-2026-54590?
- Medium severity. CVSS v3 base score is 5.9 out of 10.