Vulnerability · Published Jul 17, 2026 · Assigned by GitHub_M

CVE-2026-45309AsyncSSH `AuthorizedKeysFile %u` path traversal allows attacker-selected authorized keys to authenticate a traversal username

High 8.2

In plain English

A high-severity path traversal in asyncssh from ronf. Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 0.6% (higher than 48% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 4.0)8.2High
Exploit odds (30 days)0.6%top 51.5% of all CVEs
Exploited in the wildNo reportsCISA SSVC: poc
Attack toolingNoneno public tooling known

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.0, AsyncSSH expands the OpenSSH-compatible AuthorizedKeysFile %u token in asyncssh/config.py, asyncssh/connection.py, asyncssh/auth_keys.py, and asyncssh/misc.py with the raw SSH username during pre-authentication server config reload, allowing a server configured with AuthorizedKeysFile authorized_keys/%u to read an authorized-keys file outside the intended directory when the SSH username contains /, \, or .. path traversal segments and authenticate with an attacker-selected key file. This issue is fixed in version 2.23.0.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
Debian:12python-asyncsshno fix listedDEBIAN-CVE-2026-45309
Debian:13python-asyncsshno fix listedDEBIAN-CVE-2026-45309
Debian:14python-asyncssh2.23.0-1DEBIAN-CVE-2026-45309
PyPIasyncssh2.23.0GHSA-g794-3fmp-753h
PyPIasyncssh2.23.0PYSEC-2026-2384
Ubuntu:26.04:LTSpython-asyncsshno fix listedUBUNTU-CVE-2026-45309

Affected products (as reported)

VendorProductVersions
ronf asyncssh < 2.23.0

Weakness: CWE-22 · Vector: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N

References