Skip to main content

Russh CVE-2026-48108

| EUVDEUVD-2026-36130 MEDIUM
Improper Input Validation (CWE-20)
2026-06-10 GitHub_M GHSA-76r6-x97p-67vr
5.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Connect to russh SSH server port
  2. Delivery
    Stream unbounded pre-banner lines without identification string
  3. Exploit
    Server holds connection resources open per session
  4. Execution
    Repeat across many parallel connections
  5. Persist
    Exhaust server connection pool or memory
  6. Impact
    Deny 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

russh 0.34.0-beta.1, < 0.61.0

Affected Packages

cargo russh fix: 0.61.0
euvd russh_0_34_0_beta_1 fix: 0.61.0

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

Vendor (GitHub_M) PRIMARY 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
vuln.today AI 5.3 MEDIUM

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
Low

Lifecycle Timeline

1
Patch available
Jun 10, 2026 - 22:01 EUVD

DescriptionCVE.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

EPSS Score
0.1%
Top 69% exploitable
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA CIRCL GitHub VulDB

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Russh

View all
CVE-2023-48795 MEDIUM POC
5.9 Dec 18

The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remot

CVE-2024-43410 HIGH POC
7.5 Aug 21

Russh is a Rust SSH client & server library. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable,

CVE-2023-28113 MEDIUM POC
5.9 Mar 16

russh is a Rust SSH client and server library. Rated medium severity (CVSS 5.9), this vulnerability is remotely exploita

CVE-2026-73430 MEDIUM POC
5.3 Aug 12

Unauthenticated remote denial of service in the Russh SSH library (versions ≤ 0.62.3) allows any network attacker to cra

CVE-2026-73429 MEDIUM POC
5.3 Aug 12

Denial-of-service in russh's Curve25519 key exchange client path allows any malicious SSH server to crash a connecting r

CVE-2026-102823 HIGH
7.5 Sep 29

Improper validation in the Russh Rust SSH library (versions prior to 0.63.1) lets a malicious or compromised SSH server

CVE-2026-42189 HIGH
7.5 May 08

Pre-authentication denial-of-service in russh SSH server library allows remote attackers to crash servers implementing k

CVE-2026-48110 HIGH
7.5 Jun 10

Denial of service in Russh (Rust SSH client/server library) versions 0.34.0 through 0.60.x allows remote SSH peers to tr

CVE-2026-48107 MEDIUM
6.5 Jun 10

Denial of service in Russh (versions 0.37.0-0.60.x), a Rust SSH client and server library, allows a malicious SSH server

CVE-2026-102821 MEDIUM POC
6.5 Sep 29

Memory exhaustion in the Russh Rust SSH client/server library prior to 0.63.2 allows an authenticated remote peer to sta

CVE-2026-102820 MEDIUM POC
6.2 Sep 29

The Windows Pageant client inside the pageant Rust crate (pageant/src/wmmessage.rs) trusts a peer-controlled u32 respons

CVE-2026-102824 MEDIUM
4.3 Sep 29

Cryptographic weakness in the Russh SSH library before 0.63.0 lets a malicious remote SSH peer send an all-zero 32-byte

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy