Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessConnect to russh SSH server port
-
DeliveryStream unbounded pre-banner lines without identification string
-
ExploitServer holds connection resources open per session
-
ExecutionRepeat across many parallel connections
-
PersistExhaust server connection pool or memory
-
ImpactDeny service to legitimate SSH clients
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
|
| Exploitation Conditions | No authentication is required - exploitation occurs entirely in the pre-authentication, cleartext SSH handshake phase before any credentials are exchanged (PR:N, AV:N). The target must be a server application built on the russh library at versions 0.34.0-beta.1 through 0.60.x that exposes an SSH listener socket reachable by the attacker. Pure client-side use of russh is not affected. Exploitation is limited by: the server's configured connection concurrency limits, any upstream rate-limiting at the network or load-balancer layer, and OS-level TCP backlog settings. Applications that impose their own connection timeouts or per-IP connection caps will experience reduced impact. No special protocol feature or non-default configuration is required beyond the presence of an exposed russh SSH server port. |
| Impact | The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L, score 5.3 Medium) accurately reflects the threat profile: network-reachable, zero preconditions, no authentication, but limited to partial availability impact (A:L). No EPSS score was provided in the source data, which limits probabilistic exploitation forecasting. The vulnerability is not listed in CISA KEV, and no POC has been identified, both of which reduce immediate urgency compared to other medium-CVSS issues. The practical risk is proportional to the number of concurrent unauthenticated connections a russh server accepts and how aggressively the application applies connection timeouts or rate limiting. Libraries that expose SSH listener sockets without such controls are more exposed. This is a real but operationally manageable issue - not a high-priority emergency absent active exploitation, but a meaningful library flaw worth patching promptly given the trivial exploit conditions and zero authentication barrier. |
| Exploit ScenarioDerived | An attacker connects to a russh-based SSH server and, instead of sending a well-formed SSH identification string, streams an unbounded sequence of pre-banner lines without ever completing the handshake. The server allocates and holds connection resources for each such session in the cleartext pre-authentication phase. By opening many such connections in parallel, the attacker can exhaust the server's connection pool or memory, degrading availability for legitimate users. No exploit code has been identified at time of analysis, but the attack requires only a basic TCP client and trivially crafted input. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 10, 2026
Resource exhaustion in Russh's SSH server identification-string reader allows unauthenticated remote attackers to hold connection setup resources indefinitely during the cleartext pre-authentication phase. Russh versions 0.34.0-beta.1 through 0.60.x used the same permissive identification reader for both client and server roles, failing to cap the number of pre-banner lines a connecting client could send before the SSH identification string - a constraint OpenSSH enforces strictly per RFC 4253. Any application serving SSH via russh is exposed to this pre-auth resource-holding condition. No public exploit code has been identified at time of analysis, and the vulnerability is not listed in CISA KEV.
RemediationAI
The vendor-released patch is Russh version 0.61.0, which enforces bounded pre-banner line handling on the server-side identification reader, aligning behavior with OpenSSH and RFC 4253. Upgrade by updating the russh dependency in Cargo.toml to 0.61.0 or later and recompiling. The advisory is at https://github.com/Eugeny/russh/security/advisories/GHSA-76r6-x97p-67vr. For deployments that cannot upgrade immediately, compensating controls include: configuring network-layer connection rate limits per source IP (e.g., via iptables or a load balancer) to reduce the number of concurrent pre-auth resource holders; setting aggressive TCP connection timeouts at the infrastructure level to force-close stalled connections; and restricting SSH listener exposure to known IP ranges where operationally feasible. These controls reduce attack surface but do not eliminate the flaw - patching to 0.61.0 is the definitive fix.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in cargo, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The SSH protocol (RFC 4253) defines a strict format for the identification string exchanged at connection setup (e.g., 'SSH-2.0-...'). Servers are permitted to send pre-banner text lines before their identification string; clients are not. Russh (CPE: cpe:2.3:a:eugeny:russh:*:*:*:*:*:*:*:*) incorrectly applied the same permissive reader code path to its server-side identification reader as to the client-side reader. This meant the server accepted pre-banner lines from inbound clients and placed no upper bound on how many such lines could precede the identification string. The root cause is CWE-20 (Improper Input Validation) - specifically, the absence of an input bound check on a streaming network protocol parser during the unauthenticated setup phase. Because this occurs before any cryptographic negotiation, the malformed input triggers resource holding in cleartext with zero authentication overhead for the attacker.
Know when Russh gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Network-reachable pre-auth SSH phase requires no credentials (PR:N) and no user interaction; impact is limited to partial availability with no confidentiality or integrity exposure.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Russh is a Rust SSH client & server library. From version 0.34.0-beta.1 to before version 0.61.0, russh did not enforce the SSH identification-string rules as deliberately as OpenSSH. In particular, the server-side identification reader used the same permissive path as the client, allowing pre-banner lines from clients, and the reader did not enforce a bounded number of pre-banner lines. For a library server built on russh, this could allow a remote peer to hold connection setup resources in the cleartext pre-authentication phase with malformed identification input that should have been rejected early. This issue has been patched in version 0.61.0.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remot
Russh is a Rust SSH client & server library. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable,
russh is a Rust SSH client and server library. Rated medium severity (CVSS 5.9), this vulnerability is remotely exploita
Unauthenticated remote denial of service in the Russh SSH library (versions ≤ 0.62.3) allows any network attacker to cra
Denial-of-service in russh's Curve25519 key exchange client path allows any malicious SSH server to crash a connecting r
Improper validation in the Russh Rust SSH library (versions prior to 0.63.1) lets a malicious or compromised SSH server
Pre-authentication denial-of-service in russh SSH server library allows remote attackers to crash servers implementing k
Denial of service in Russh (Rust SSH client/server library) versions 0.34.0 through 0.60.x allows remote SSH peers to tr
Denial of service in Russh (versions 0.37.0-0.60.x), a Rust SSH client and server library, allows a malicious SSH server
Memory exhaustion in the Russh Rust SSH client/server library prior to 0.63.2 allows an authenticated remote peer to sta
The Windows Pageant client inside the pageant Rust crate (pageant/src/wmmessage.rs) trusts a peer-controlled u32 respons
Cryptographic weakness in the Russh SSH library before 0.63.0 lets a malicious remote SSH peer send an all-zero 32-byte
EUVD-2026-36130
GHSA-76r6-x97p-67vr
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB