Update dependency asyncssh to v2.23.0 [SECURITY]#117
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
303decb to
e0ab633
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
2.22.0→2.23.0AsyncSSH
AuthorizedKeysFile %upath traversal allows attacker-selected authorized keys to authenticate a traversal usernameCVE-2026-45309 / GHSA-g794-3fmp-753h
More information
Details
Summary
AsyncSSH 2.22.0 expands the OpenSSH-compatible
AuthorizedKeysFile%utoken with the raw SSH username during pre-authentication server config reload. A server configured with a documented per-user key pattern such asAuthorizedKeysFile authorized_keys/%ucan be made to read an authorized-keys file outside the intended directory when the SSH username contains path traversal segments. If the attacker can place or reference a readable authorized-keys-format file containing their public key, the attacker can authenticate over SSH as the traversal username.Affected Product
v2.22.0, commitaf5a81e669633d83d535163f93b6bf3f957c9238c3ce72b01be4f97b40e62844dd384227e5ff5a401a3793007c42f86a5c8eb537Vulnerability Details
asyncssh/config.py,asyncssh/connection.py,asyncssh/auth_keys.py,asyncssh/misc.py)%uinAuthorizedKeysFileis expanded from the remote username without rejecting path separators or..segments, and the resulting path is opened without constraining it to the intended authorized-keys directory.Attack Preconditions
AuthorizedKeysFilecontains%u, for exampleAuthorizedKeysFile authorized_keys/%u./,\, or..before AsyncSSH uses the username for key-file selection.Reproduction
The run-scoped evidence contains a safe localhost proof:
Start the proof harness saved at
harness_app.py
Run
exploit_proof.py
through
run_proof.sh
The harness creates
sshd_configwithAuthorizedKeysFile authorized_keys/%u, writes the attacker's public key to a file outsideauthorized_keys/, starts a real AsyncSSH server, and attempts two SSH logins.Expected result: the normal username
victimfails, while the traversal username authenticates with the same attacker key.Observed proof output:
Severity
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:PReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
ronf/asyncssh (asyncssh)
v2.23.0Compare Source
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.