CVE-2026-45309
Received Received - Intake

Path Traversal in AsyncSSH Prior to 2.23.0

Vulnerability report for CVE-2026-45309, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-07-17

Last updated on: 2026-07-17

Assigner: GitHub, Inc.

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.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-17
Last Modified
2026-07-17
Generated
2026-07-18
AI Q&A
2026-07-17
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 3 associated CPEs
Vendor Product Version / Range
asyncssh asyncssh 2.23.0
ronf asyncssh to 2.23.0 (exc)
ronf asyncssh 2.23.0

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-22 The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

AsyncSSH before 2.23.0 has a path traversal flaw in the AuthorizedKeysFile %u token expansion. When a server uses a config like AuthorizedKeysFile authorized_keys/%u, AsyncSSH expands %u with the raw SSH username without sanitizing path segments. If the username contains /, \, or .., an attacker can traverse outside the intended authorized_keys directory and authenticate using an attacker-controlled public key file.

Detection Guidance

Check AsyncSSH version with pip show asyncssh. If version is below 2.23.0, the system is vulnerable. Inspect SSH server configuration files for AuthorizedKeysFile patterns containing %u. Test with usernames containing path traversal characters like ../ or ..\ to see if files outside intended directories are accessed.

Impact Analysis

An attacker could gain unauthorized access to an SSH server by providing a malicious username that includes path traversal sequences. This allows them to read or write files outside the authorized_keys directory, potentially executing arbitrary code or escalating privileges if the server uses the vulnerable configuration pattern.

Compliance Impact

This vulnerability could lead to unauthorized access to sensitive data, violating confidentiality requirements in GDPR and HIPAA. If exploited, it may result in data breaches, non-compliance with access control and audit logging mandates, and potential regulatory penalties due to compromised personal or health information.

Mitigation Strategies

Upgrade AsyncSSH to version 2.23.0 or later immediately. Disable or restrict AuthorizedKeysFile configurations using %u token. Review and remove any writable or accessible directories that could be targeted by path traversal. Monitor for unauthorized access attempts or unusual file access patterns in SSH logs.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-45309. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart