Skip to content
OpenAdvisories
Low · 2.2 CVE-2026-128088 EUVD-2026-125722GHSA-736f-c93q-9fwx

russh try_sign: asynchronous confirmation can sign after agent lock

Published Nov 13, 2026 · Assigned by GitHub_M

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.

Affected products

VendorProductAffectedFixed
Eugeny russh >= 0.65.0, < 0.65.1 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 rust-russh No fix yet —

Wolfi

ReleasePackageFixed inAdvisory
Wolfi rolling yazi No fix yet —

Affected packages

EcosystemPackageAffectedFixedRecord
crates.io russh >= 0.65.0, < 0.65.1 0.65.1 GHSA-736f-c93q-9fwx

References