CVE-2026-42189
HighSummary
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.
Risk Assessment
This vulnerability can lead to server crashes, resulting in service unavailability for users. An attacker does not require any credentials, increasing the risk of exploitation.
Recommendation
It is recommended to update the russh library to version 0.60.1 or later to mitigate this vulnerability. Additionally, server logs should be monitored for potential attack attempts.
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-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.
- CVE-2026-46673High
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.
Original NVD description (English source)
Russh is a Rust SSH client & server library. Prior to version 0.60.1, a pre-authentication denial-of-service vulnerability exists in the server's keyboard-interactive authentication handler. A malicious client can crash any russh-based server that implements keyboard-interactive auth (e.g., for 2FA/TOTP) with a single malformed packet, requiring no credentials. This issue has been patched in version 0.60.1.

