CVE-2026-48110: Russh SSH Library Memory Allocation Denial of Service
Russh, a Rust SSH library used for building SSH clients and servers, contains a memory allocation vulnerability affecting versions 0.34.0 through 0.60.x. An attacker connecting over the network can craft malformed SSH protocol messages with oversized or malformed data fields that force the library to allocate large amounts of memory before validating the input. This can cause denial of service by exhausting available memory or slowing the application. The vulnerability has been fixed in version 0.61.0.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 7.5 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Weaknesses (CWE)
- CWE-20
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-06-10 / 2026-06-17
NVD description (verbatim)
Russh is a Rust SSH client & server library. From version 0.34.0 to before version 0.61.0, several russh client and server message handlers decoded attacker-controlled SSH strings, name-lists, and byte fields into owned allocations before applying field-specific bounds. A remote SSH peer could send oversized, high-fanout, or malformed length-prefixed fields and make the library allocate, attempt to allocate, or split data before rejecting input that should have been rejected earlier. This issue has been patched in version 0.61.0.
2 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability stems from improper input validation order in russh's SSH message parsing. Multiple message handlers decode SSH protocol strings, name-lists, and byte fields into owned heap allocations before applying field-specific length bounds and format checks. An attacker can exploit this by sending SSH packets with oversized length-prefixed fields, high-fanout data structures, or malformed content that triggers allocation operations that should have been prevented by earlier validation. The root cause is CWE-20 (Improper Input Validation), where length validation occurs after memory commitment rather than before.
Business impact
Applications and services using vulnerable versions of russh for SSH functionality face denial-of-service risk. An unauthenticated remote attacker can crash SSH servers or clients, or degrade performance by forcing memory exhaustion. This is particularly concerning for infrastructure automation tools, bastion hosts, monitoring agents, or any service that embeds russh for SSH protocol handling. Even though the vulnerability does not permit data theft or code execution, availability impact can disrupt critical operations.
Affected systems
Any Rust application linking russh versions 0.34.0 through 0.60.x is affected. This includes both SSH client and server implementations. The vulnerability does not require vendor affiliation; it affects all direct consumers of the russh library. Indirect users through transitive dependencies should audit their dependency trees.
Exploitability
Exploitability is high. The vulnerability requires only network access and no authentication. An attacker needs only to send a single crafted SSH message to trigger the memory allocation issue. The attack surface includes any exposed SSH port or SSH client that connects to attacker-controlled servers. No special conditions or user interaction are required.
Remediation
Upgrade russh to version 0.61.0 or later. For projects unable to upgrade immediately, consider restricting SSH connections to trusted peers via firewall or network policies to reduce exposure. Monitor for unusual memory consumption or SSH connection rejections on affected services.
Patch guidance
Update the russh dependency in your Cargo.toml to version 0.61.0 or any subsequent release. Run 'cargo update russh' to pull the patched version, then rebuild and redeploy your application. Verify the update in your dependency lock file (Cargo.lock) before committing. No code changes are required; the patch is purely a library upgrade.
Detection guidance
Monitor SSH services for repeated failed or rejected connections, particularly those with unusual packet payloads or connection patterns. Look for memory pressure events correlating with SSH session attempts. Application-level logging in russh (if enabled) may show parsing errors or allocation failures. Network-based detection is difficult without deep SSH protocol inspection; host-based monitoring of memory usage spikes during SSH activity is more practical.
Why prioritize this
This vulnerability merits prompt patching due to its HIGH CVSS score (7.5), unauthenticated remote exploitability, and impact on availability. While not enabling data theft or code execution, denial of service on SSH infrastructure can cascade into broader system unavailability. The fix is mature (version 0.61.0 released), straightforward (dependency upgrade), and carries no backward compatibility risk in most cases.
Risk score, explained
CVSS 7.5 (HIGH) reflects unauthenticated network-accessible denial of service with no privileges required (AV:N/AC:L/PR:N/UI:N) and impact limited to availability (A:H). The score appropriately penalizes the ease of triggering the flaw but does not elevate it to critical because confidentiality and integrity are not compromised. In environments where SSH availability is critical, the business impact may warrant treating this as higher priority than the numerical score suggests.
Frequently asked questions
Does this vulnerability allow remote code execution or data theft?
No. The vulnerability is limited to denial of service through memory exhaustion. It does not enable attackers to execute arbitrary code, read sensitive data, or modify SSH traffic.
Can I mitigate this without upgrading russh immediately?
Partial mitigation is possible by restricting SSH access to trusted IP addresses via firewall rules, disabling SSH if not needed, or monitoring for abnormal memory usage. However, upgrading to version 0.61.0 is the proper fix and is strongly recommended.
Does this affect SSH keys, authentication, or encrypted channels?
No. The vulnerability occurs during protocol parsing before authentication is completed. SSH key security, authentication mechanisms, and encryption are not affected.
How long has this vulnerability been present in the wild?
Russh versions 0.34.0 through 0.60.x are vulnerable. The exact date when the issue was introduced relative to real-world exploitation is unknown, but patch adoption should proceed immediately given the ease of exploitation.
This analysis is provided for informational purposes and reflects publicly available vulnerability data as of the publication date. While we strive for accuracy, we make no warranty regarding completeness or timeliness. Always consult official vendor advisories and security bulletins before deploying patches. Testing in a non-production environment is recommended prior to production deployment. This summary does not constitute professional security advice. Source: NVD (public-domain), retrieved 2026-07-20. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2025-22424HIGHAndroid Local Privilege Escalation via Image Disclosure
- CVE-2026-0078HIGHAndroid Privilege Escalation via DevicePolicyManagerService Desync
- CVE-2026-0419HIGHNETGEAR JR6150 Command Injection via Insufficient Input Validation
- CVE-2026-10020HIGHChrome Android Sandbox Escape via Skia Input Validation Flaw
- CVE-2026-10021HIGHGoogle Chrome USB Validation Flaw – RCE Vulnerability Patch
- CVE-2026-10863HIGHMISP Correlations Query Ordering Vulnerability (CVSS 8.1)
- CVE-2026-10904HIGHChrome V8 Sandbox Escape Remote Code Execution
- CVE-2026-10911HIGHChrome Sandbox Escape Vulnerability (High Severity)