CVE-2026-54591 AsyncSSH: SCP Path Traversal to Arbitrary File Write
A malicious SSH server can write arbitrary files on the AsyncSSH SCP client's filesystem via path traversal sequences in filenames.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2026-54591?
CVE-2026-54591 is a high-severity path traversal vulnerability in ronf asyncssh, published on 8 Jul 2026. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.
Official 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.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.
Weakness: CWE-22
Which versions are affected by CVE-2026-54591?
3 open source packages ship an affected version, including asyncssh.
| Package | Affected | Fixed in |
|---|---|---|
asyncssh PyPI | All versions | 2.23.1 |
asyncssh PyPI | All versions | 2.23.1 |
asyncssh PyPI | All versions | 2.23.1 |
How do I fix CVE-2026-54591?
Upgrade asyncssh to 2.23.1 or later.
Upgrade, and resolve every user-supplied path against an allowed base folder before opening it. More about Path traversal.
Is CVE-2026-54591 being exploited?
There is no known exploitation of CVE-2026-54591 in the wild and no public exploit code.
Sources
Also known as CLEANSTART-2026-ZT97378, DEBIAN-CVE-2026-54591, ECHO-ba32-5913-3705, GHSA-2wxc-x7rj-hg8f, MINI-9vjw-g347-8jfv, MINI-fv46-g3fx-9q59 and 3 more.