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. 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.
Published: 2026-07-08
Score: 5.9 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

AsyncSSH 2.23.0 contains an incomplete fix that allows a username substitution bypass in the AuthorizedKeysFile configuration. The bug lets a leading tilde (~) or an environment variable ("${ENV}") expand when resolving the authorized-keys file path, permitting path traversal outside the intended directory. This flaw results in unauthorized file access (Path Traversal, CWE-22) and bypass of expected authentication controls (CWE-639).

Affected Systems

Ron's AsyncSSH library is affected. All installations of version 2.23.0 are impacted. This issue was fixed in 2.23.1 and later releases, so users of newer versions are not vulnerable. No other vendors are mentioned in the CNA data.

Risk and Exploitability

We see a CVSS score of 5.9, indicating medium severity. The EPSS score is listed as <1%, implying a very low probability of exploitation observed to date. The vulnerability is not in the CISA KEV catalog. Based on the description, the likely attack vector is an external SSH client that supplies a crafted username containing a leading ~ or environment variable, or a local process that sets relevant environment variables before launching the server. An attacker can then supply a key file path that resolves to a file outside the authorized-keys directory, potentially accessing or modifying privileged files with the privileges of the SSH session.

Generated by OpenCVE AI on July 26, 2026 at 17:00 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade asyncssh to version 2.23.1 or later.
  • If an upgrade cannot be performed immediately, configure the SSH server to use an absolute path for AuthorizedKeysFile and disable tilde or environment variable substitution by removing ${ENV} expansions.
  • Disable client-supplied environment variables by setting PermitUserEnvironment to no and removing any AcceptEnv entries, ensuring the environment remains unchanged during key file resolution.

Generated by OpenCVE AI on July 26, 2026 at 17:00 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 10 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 10 Jul 2026 10:15:00 +0000

Type Values Removed Values Added
First Time appeared Ronf
Ronf asyncssh
Vendors & Products Ronf
Ronf asyncssh

Wed, 08 Jul 2026 20:45:00 +0000

Type Values Removed Values Added
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. 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.
Title AsyncSSH AuthorizedKeysFile username substitution bypass through ~ and environment expansion
Weaknesses CWE-22
CWE-639
References
Metrics cvssV3_1

{'score': 5.9, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-10T15:00:21.849Z

Reserved: 2026-06-15T19:45:23.538Z

Link: CVE-2026-54590

cve-icon Vulnrichment

Updated: 2026-07-10T14:59:58.930Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-26T17:00:14Z

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

  • CWE-639

    Authorization Bypass Through User-Controlled Key