CVE-2026-54590 json
AsyncSSH AuthorizedKeysFile username substitution bypass through ~ and environment expansion
published 4mo ago modified 17d ago also EUVD-2026-42400 , GHSA-qr67-gv47-xwwh , PYSEC-2026-3809
- cvss
- 5.9
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 27%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- pypi asyncssh 2.23.1
- asyncssh_project asyncssh 2.23.1
- python-asyncssh Debian 14 2.24.0-1
debian advisories DEBIAN-CVE-2026-54590
Is CVE-2026-54590 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerVendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-54590 updated cvss 6.8
AsyncSSH: AsyncSSH: Unauthorized file modification via authorized-keys directory escape
-
Red Hat All currently supported Red Hat productsnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 4mo ago
Exploit prediction
0.34% chance of exploitation in the next 30 days, higher than 27% of all scored CVEs (FIRST EPSS, 2026-11-11).
Exploits and checks
- github.com https://github.com/ronf/asyncssh/security/advisories/GHSA-qr67-gv47-xwwh referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 5.9 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N |
| GitHub | 3.1 | 5.9 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N |
| OSV | 3.1 | 5.9 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | asyncssh | <2.23.1 |
2.23.1 |
Affected products
- ronf asyncssh
Classification
References
-
github.com
/ronf/asyncssh/commit/3d515ba9ba0cd9990d248bdf62bcf05d51261a88
web
-
github.com
/ronf/asyncssh/security/advisories/GHSA-qr67-gv47-xwwh
exploit, web, advisory
-
github.com
/ronf/asyncssh/releases/tag/v2.23.1
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-54590
advisory
-
github.com
/ronf/asyncssh
package
-
pypi.org
/project/asyncssh
package
-
github.com
/advisories/GHSA-qr67-gv47-xwwh
advisory
Sources
- CVE List CVE-2026-54590
- GitHub Advisory GHSA-qr67-gv47-xwwh
- NVD CVE-2026-54590
- OSV PYSEC-2026-3809
- Maintainer advisory GHSA-qr67-gv47-xwwh
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
The maintainers of ronf/asyncssh published their own advisory on GitHub. Reviewed sources take precedence over it.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.