{"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_01M5KH7X6W0VAZARY9AX0002QS","modified_at":"2026-09-10T12:15:06.046808363Z","published_at":"2026-09-10T09:44:57.598850Z","references":["https://osv.dev/vulnerability/PYSEC-2026-3809","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","https://pypi.org/project/asyncssh","https://github.com/advisories/GHSA-qr67-gv47-xwwh"],"severity":{"label":"medium","score":5.9},"sources":[{"source":"osv","source_id":"PYSEC-2026-3809","url":"https://osv.dev/vulnerability/PYSEC-2026-3809"}],"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"}