{"affected":[{"product":"russh","source":"CNA: GitHub_M","vendor":"Eugeny","versions":[{"status":"affected","version":">= 0.65.0, < 0.65.1"}]},{"defaultStatus":"unaffected","ecosystem":"crates.io","packageName":"russh","product":"russh","source":"OSV GHSA-736f-c93q-9fwx","vendor":"","versions":[{"status":"affected","version":"0.65.0","versionType":"crates.io"},{"events":[{"introduced":"0.65.0"},{"fixed":"0.65.1"}],"lessThan":"0.65.1","status":"affected","version":"0.65.0","versionType":"semver"}]}],"cveId":"CVE-2026-128088","cwes":["CWE-367","CWE-863"],"description":"russh is a Rust SSH client and server library that includes an SSH agent protocol implementation. Prior to version 0.65.1, try_sign() captures an Arc<PrivateKey> before awaiting Agent::confirm() and does not revalidate the shared lock state or key presence after the await. This is a distinct residual defect in the remediation for CVE-2026-116794. A peer, including a remote SSH server using agent forwarding, can begin a confirmation-constrained signature request while the agent is unlocked and receive the signature after another connection locks the agent if the stale confirmation returns true. New post-lock requests are rejected and private key material is not disclosed, but the pending operation bypasses the current lock state. This issue is fixed in version 0.65.1.","epss":null,"exploits":[],"kev":null,"metrics":[{"score":2.2,"severity":"low","source":"CNA: GitHub_M","vector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:N/I:L/A:N","version":"3.1"}],"modifiedAt":1794597305906,"publishedAt":1794596862568,"references":[{"source":"CNA: GitHub_M","tags":["x_refsource_CONFIRM"],"url":"https://github.com/Eugeny/russh/security/advisories/GHSA-736f-c93q-9fwx"},{"source":"CNA: GitHub_M","tags":["x_refsource_MISC"],"url":"https://github.com/Eugeny/russh/pull/808"},{"source":"CNA: GitHub_M","tags":["x_refsource_MISC"],"url":"https://github.com/Eugeny/russh/commit/43a46d67a80a7355fcd2fb25e7e00d79aec8184c"},{"source":"CNA: GitHub_M","tags":["x_refsource_MISC"],"url":"https://github.com/Eugeny/russh/releases/tag/v0.65.1"},{"source":"OSV / GitHub Security Advisories","tags":["advisory"],"url":"https://github.com/advisories/GHSA-736f-c93q-9fwx"},{"source":"OSV / GitHub Security Advisories","tags":["osv"],"url":"https://osv.dev/vulnerability/GHSA-736f-c93q-9fwx"}],"remediation":[{"kind":"fix","source":"OSV GHSA-736f-c93q-9fwx","text":"russh (crates.io): OSV reports a fixed version 0.65.1. Check the advisory for supported release branches.","url":"https://github.com/advisories/GHSA-736f-c93q-9fwx"}],"revision":"3e5f5ffa788c988d4369d26c70232cf7ca6e80aac557dedea7ea0acd526eb159","sources":[{"modifiedAt":1794596862568,"name":"CNA: GitHub_M","retrievedAt":1794600594511,"url":"https://www.cve.org/CVERecord?id=CVE-2026-128088"},{"modifiedAt":1794597305906,"name":"OSV / GitHub Security Advisories","retrievedAt":1794600595936,"url":"https://osv.dev/vulnerability/GHSA-736f-c93q-9fwx"}],"ssvc":null,"status":"published","title":"russh try_sign: asynchronous confirmation can sign after agent lock","updatedAt":1794600595936}