CVE-2026-128088 is a time-of-check to time-of-use (TOCTOU) race condition vulnerability in the Eugeny russh Rust SSH client and server library. The flaw exists in versions >=0.65.0 and <0.65.1 where the try_sign() function captures a private key reference before awaiting a confirmation step but does not revalidate the lock state afterward. This allows a remote SSH server using agent forwarding to bypass the current lock state during a signature request. The issue is fixed in version 0.65.1.
russh is a Rust SSH client and server library that includes an SSH agent protocol implementation. From version 0.55.0 until version 0.65.1, the initial key exchange invokes client::Handler::kex_done() with the raw shared secret before check_server_key() accepts the server host key or certificate. A malicious SSH server can therefore trigger application-defined secondary-channel initialization or early data handling even when the server identity is subsequently rejected. Ordinary clients that keep the callback's no-op default or independently defer callback-derived actions until trust is confirmed are not affected. This issue is fixed in version 0.65.1.
CVE-2026-116794 is a missing authorization vulnerability in the russh Rust SSH client and server library versions prior to 0.65.0. The issue occurs because the agent server's Connection::try_sign path returns a hard-coded successful result for SSH_AGENT_CONSTRAIN_CONFIRM without invoking the Agent::confirm method. This allows processes with access to the agent socket, including remote forwarded agents, to use keys added with confirmation (-c) without the intended user approval or policy checks. The vulnerability is fixed in version 0.65.0.
CVE-2026-116775 is a low-severity vulnerability in the Eugeny russh library affecting versions from 0.2.0 up to but not including 0.2.5. The issue arises from the PageantStream::new function trusting a peer-controlled length prefix without enforcing the fixed transport capacity limit, which can lead to excessive memory allocation or retention of partial frames. This can cause client memory exhaustion when bridging an SSH forwarded-agent channel to the raw stream. The vulnerability is fixed in version 0.2.5.
CVE-2026-116774 is a resource consumption vulnerability in the Eugeny russh Rust SSH client and server library versions 0.60.0 through 0.64.x. The flaw allows an authenticated client or malicious server to cause asynchronous write operations to remain pending indefinitely by specifying a maximum_packet_size of zero. This leads to accumulation of affected tasks, channels, and connections without error, potentially exhausting resources. The issue is fixed in version 0.65.0.
CVE-2026-116773 is a resource exhaustion vulnerability in the russh Rust SSH client and server library prior to version 0.65.0. The client improperly handles repeated private EXT_INFO messages (msg::EXT_INFO = 7) before authentication by appending extension names to a vector without limits or deduplication, leading to unbounded memory growth. This can cause progressive memory exhaustion on the client side. The issue is fixed in version 0.65.0.
CVE-2026-116696 is a resource allocation vulnerability in the russh Rust SSH client and server library prior to version 0.65.0. The issue arises from the handling of repeated SSH_AGENT_CONSTRAIN_CONFIRM records when adding keys, which causes unbounded memory growth due to constraints being appended without limits. This can lead to a denial of service by exhausting memory over the lifetime of the process. The vulnerability is fixed in russh version 0.65.0.
CVE-2026-111061 is a resource exhaustion vulnerability in the Eugeny russh Rust SSH client and server library. Versions prior to 0.64.1 improperly handle SSH_AGENT_CONSTRAIN_LIFETIME records by spawning a separate long-lived task for each record without limits or rollback on parsing failures. This can lead to memory and task exhaustion, causing denial of SSH agent service. The issue is fixed in version 0.64.1.
CVE-2026-102825 is a vulnerability in the Eugeny russh Rust SSH client and server library where authentication attempt limits are not properly enforced prior to version 0.62.6. This allows an unauthenticated remote client to bypass the configured maximum authentication attempts on a single connection, potentially increasing the risk of online guessing attacks and additional backend workload. The issue is fixed in version 0.62.6.
CVE-2026-102824 affects the Eugeny russh Rust SSH client and server library prior to version 0.63.0. The vulnerability arises from the hybrid ML-KEM 768 and X25519 key exchange implementation accepting an all-zero 32-byte peer X25519 public key. This causes the X25519 contribution to the combined shared secret to be zero, allowing a malicious peer to force the shared secret to depend solely on ML-KEM. This defeats the intended fallback protection of the hybrid exchange. The issue is fixed in russh version 0.63.0.
CVE-2026-102823 is an improper input validation vulnerability in the Eugeny russh Rust SSH client and server library. Versions prior to 0.63.1 do not verify that channel lifecycle events received from an SSH server correspond to channels the client actually opened and established. This allows a malicious SSH server to send events for predicted or invalid channel identifiers, potentially causing application panics or corrupting command completion and exit-code tracking. The issue is fixed in version 0.63.1.
CVE-2026-102822 is a low-severity vulnerability in the Russh Rust SSH client and server library prior to version 0.63.1. It involves improper validation of array indices when a connection is configured to permit mac=none but negotiates a MAC-requiring cipher. This can cause a panic and termination of the connection task due to an out-of-bounds slice operation. The issue is fixed in version 0.63.1.