CVE-2026-46673
HighCVSS 7.5Exploitation Probability (EPSS)
Low risk18th percentile - higher than 18% of all known CVEs
Summary
A vulnerability in the Russh library (Rust SSH client & server) before version 0.60.3 in the CryptoVec class allows unchecked capacity growth, unchecked length arithmetic, and unsafe allocation/locking paths. Local SSH agents can feed attacker-controlled frame lengths before validation, and in older versions (before 0.58.0) remote SSH traffic also reached CryptoVec through transport and compression buffers.
Risk Assessment
An attacker can cause buffer overflow or other memory errors, potentially leading to code execution or SSH service crash.
Recommendation
Update the Russh library to version 0.60.3 or later.
Other vulnerabilities in Russh
See all- CVE-2026-68930Medium
Russh library before version 0.62.5 dispatches channel-scoped Handler callbacks for recipient channel IDs that were never opened or confirmed. The issue is fixed in version 0.62.5.
- CVE-2026-42189High
In the russh library, which is a Rust SSH client and server, prior to version 0.60.1, there is a pre-authentication denial-of-service vulnerability in the keyboard-interactive authentication handler. A malicious client can crash any russh-based server implementing this authentication by sending a single malformed packet.
- CVE-2026-73489Medium
Russh prior to version 0.62.4 has a denial-of-service vulnerability. An authenticated SSH client can send a pty-req channel request with more than 130 terminal-mode records. The parser in russh/src/server/encrypted.rs stores terminal modes in a fixed 130-entry array but continues increasing the mode count, leading to an out-of-bounds slice and panic before the pty_request handler runs.
- CVE-2026-73430Medium
Russh is a Rust SSH client & server library. Prior to 0.62.4, an unauthenticated SSH client can cause a denial of service by sending SSH_MSG_KEX_ECDH_INIT with a 32-byte all-zero Q_C value. Curve25519Kex::server_dh in russh/src/kex/curve25519.rs accepts the all-zero peer public value and computes an all-zero shared secret, after which compute_exchange_hash calls encode_mpint in russh/src/kex/mod.rs and indexes beyond the end of the input while skipping leading zero bytes. The resulting panic occurs before authentication and terminates the server key-exchange task. This issue is fixed in version 0.62.4.
- CVE-2026-73429Medium
Russh is a Rust SSH client & server library. Prior to 0.62.4, a malicious SSH server can crash a russh client session with a malformed KEX_ECDH_REPLY containing a server ephemeral value that is not 32 bytes long. The client-side Curve25519Kex::compute_shared_secret function in russh/src/kex/curve25519.rs passes the decoded exchange.server_ephemeral value to clone_from_slice without validating its length, causing a deterministic panic before the server host key is verified. The panic terminates the spawned client session task and surfaces as a JoinError, while the embedding process normally remains running. This issue is fixed in version 0.62.4.
- CVE-2026-48110High
Vulnerability in the Russh library (Rust SSH client & server) from version 0.34.0 to before 0.61.0. A remote SSH peer can send oversized or malformed length-prefixed fields, causing memory allocation or attempted allocation before rejecting data, potentially leading to denial of service or other issues.
- CVE-2026-48108Medium
Russh before version 0.61.0 does not strictly enforce SSH identification-string rules. The server-side identification reader uses a permissive path, allowing pre-banner lines from clients and not bounding their number. A remote attacker can hold connection setup resources in the cleartext pre-authentication phase with malformed identification input.
- CVE-2026-48107Medium
Russh (Rust SSH client & server library) versions 0.37.0 through 0.61.0 contain a vulnerability in the keyboard-interactive authentication path. A malicious SSH server can send USERAUTH_INFO_REQUEST with a controlled prompt count, and the client uses that count directly in Vec::with_capacity(...) before validation, potentially causing memory issues.
- CVE-2026-46705Medium
Russh before version 0.61.0 has a vulnerability in the server authentication path where internal authentication state is not reset when the username or service changes between requests. This can affect later requests for a different (user, service).
- CVE-2026-46702High
The Russh Rust SSH library versions 0.34.0 through 0.61.1 have a vulnerability related to SSH compression. When compression is enabled, a remote peer can send a compressed packet that decompresses to a much larger size than allowed, leading to resource exhaustion.
Original NVD description (English source)
Russh is a Rust SSH client & server library. Prior to version 0.60.3, CryptoVec used unchecked capacity growth, unchecked length arithmetic, and unsafe allocation/locking paths. In current russh releases, local SSH agent peers could still feed attacker-controlled frame lengths into buffer growth before validation. In older russh releases before 0.58.0, remote SSH traffic also reached CryptoVec through transport and compression buffers. This issue has been patched in version 0.60.3.

