{"action":"Upgrade asyncssh to 2.23.1 or later.","affected":[{"fixed":"2.23.1","introduced":"0"}],"component":"asyncssh","cve_ids":["CVE-2026-54590"],"ecosystem":"PyPI","epss":0.00393,"exploited":false,"fixed_versions":["2.23.1"],"ghsa_id":"GHSA-qr67-gv47-xwwh","id":"tcs_01M5KFWKCECW701DNXXR19N837","modified_at":"2026-09-10T12:25:40.597047486Z","published_at":"2026-08-26T15:32:00Z","references":["https://osv.dev/vulnerability/GHSA-qr67-gv47-xwwh","https://github.com/ronf/asyncssh/security/advisories/GHSA-qr67-gv47-xwwh","https://nvd.nist.gov/vuln/detail/CVE-2026-54590","https://github.com/ronf/asyncssh/commit/3d515ba9ba0cd9990d248bdf62bcf05d51261a88","https://github.com/ronf/asyncssh","https://github.com/ronf/asyncssh/releases/tag/v2.23.1"],"severity":{"label":"medium","score":5.9},"sources":[{"source":"osv","source_id":"GHSA-qr67-gv47-xwwh","url":"https://osv.dev/vulnerability/GHSA-qr67-gv47-xwwh"}],"summary":"asyncssh has an incomplete fix for CVE-2026-45309 — AuthorizedKeysFile %u still escapes the intended directory via a leading ~ (and weakly via ${ENV}) username substitution"}