HIGH 7.5

CVE-2026-46702: Russh SSH Compression Denial-of-Service Vulnerability – Patch to 0.61.1

Russh, a Rust-based SSH client and server library, contains a vulnerability affecting versions 0.34.0 through 0.61.0 that allows attackers to cause denial-of-service by exploiting SSH compression. When compression is enabled, the library fails to properly validate the decompressed size of packets, allowing an attacker to send compressed data that passes initial size checks but expands to excessively large packets after decompression. This exhausts server resources and disrupts availability. The vulnerability is patched in version 0.61.1.

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-770
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.1, when SSH compression is enabled, russh accepted compressed packets whose on-wire size passed the normal transport packet-length checks but whose decompressed size was much larger. This allowed a remote peer to send oversized post-decompression packets that should have been rejected. In current releases, this is a remote denial-of-service / resource-exhaustion issue in the post-decompression receive path. In older releases before 0.58.0, the same remote decompression path used CryptoVec, which appears to make the historical impact worse. This issue has been patched in version 0.61.1.

2 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The vulnerability exists in russh's SSH transport layer compression handling. Specifically, the library validates compressed packet sizes against RFC standards before decompression but does not enforce size limits on the decompressed output. An attacker can construct a malicious compressed payload that compresses to a small on-wire size (bypassing packet-length checks) but decompresses to a packet far exceeding safe limits. This bypasses the normal resource-exhaustion protections. Releases before 0.58.0 face compounded risk because they used CryptoVec for decompression, amplifying potential impact. The issue is rooted in CWE-770 (Allocation of Resources Without Limits or Throttling).

Business impact

For organizations deploying russh-based SSH services, this vulnerability creates a straightforward denial-of-service risk. An unauthenticated remote attacker can trigger resource exhaustion, causing service unavailability without requiring valid credentials or user interaction. The impact scales with the number of concurrent SSH sessions and available server memory. This is particularly concerning for SSH infrastructure supporting high-availability requirements or cloud platforms where service disruption directly affects revenue or compliance obligations. Patching is essential for any public-facing SSH deployment relying on russh.

Affected systems

The vulnerability affects russh versions 0.34.0 through 0.61.0. Any application or service directly embedding the russh library as a dependency is potentially at risk if: (1) SSH compression is explicitly enabled in the deployment configuration, and (2) the application accepts remote SSH connections. This includes custom SSH servers built with russh, CI/CD systems using russh-based tooling, and embedded SSH functionality in larger applications. Applications using versions 0.58.0 and earlier face elevated historical risk due to CryptoVec usage. Verify your dependency tree and configuration to confirm exposure.

Exploitability

Exploitability is high. The attack requires no authentication, no user interaction, and no special privileges—an attacker needs only network access to an SSH port and the ability to send crafted compressed packets. The CVSS 3.1 score of 7.5 (High severity, availability impact only) reflects this low barrier. Attack execution is straightforward: connect to the SSH service, enable compression negotiation, and transmit specially crafted compressed payloads designed to decompress into oversized packets. The vulnerability is not currently listed in CISA's Known Exploited Vulnerabilities catalog, but the simplicity of the attack vector makes exploitation trivial once understood.

Remediation

Upgrade russh to version 0.61.1 or later. This release implements proper decompression size validation to ensure expanded packets do not exceed safe limits. For applications unable to upgrade immediately, consider: (1) disabling SSH compression at the service configuration level if it is not critical to operations, (2) restricting SSH access via network-level controls (firewall rules, VPN requirements) to reduce the attack surface, and (3) implementing resource limits and monitoring to detect unusual decompression patterns. However, patching is the definitive remediation.

Patch guidance

Upgrade russh to version 0.61.1 or later via your package manager. For Rust projects using Cargo, update your Cargo.toml dependency declaration and run 'cargo update'. Verify the upgrade completes successfully and test SSH connectivity in a non-production environment before deploying to production. Review your release notes to confirm no breaking changes affect your application. If you maintain a custom fork or vendored copy of russh, apply the upstream patch from the official repository. Test thoroughly, as SSH library changes carry operational risk.

Detection guidance

Monitor for signs of decompression-based denial-of-service attacks: (1) SSH server logs showing abrupt connection drops or resource exhaustion warnings, (2) sudden spikes in CPU or memory usage correlated with SSH connection attempts, (3) compression negotiation attempts followed by immediate disconnections or timeouts. Network-level detection is challenging because the malicious packets are valid SSH protocol syntax until decompressed. Implement SSH connection rate limiting and per-connection resource quotas to mitigate impact. If available, enable detailed SSH library logging to observe packet sizes before and after decompression, then baseline normal behavior.

Why prioritize this

This vulnerability should be prioritized for immediate patching in any organization operating SSH services with russh. The combination of unauthenticated remote exploitability, ease of attack execution, direct availability impact, and the non-KEV status (indicating it may not yet be widely exploited or monitored) makes it a high-priority fix. Organizations with SSH exposed to the public internet should patch urgently; those with SSH restricted to trusted networks should still upgrade but may have slightly more scheduling flexibility.

Risk score, explained

The CVSS 3.1 score of 7.5 reflects High severity driven by a fully open attack vector (network, no authentication, no user interaction) and direct availability impact (denial-of-service). The score is not Critical (8.0+) because the impact is limited to availability; confidentiality and integrity are not affected. This is an appropriate and conservative scoring for a resource-exhaustion vulnerability affecting a foundational protocol component.

Frequently asked questions

Is SSH compression enabled by default in russh?

No. SSH compression is disabled by default in most SSH implementations and must be explicitly negotiated and configured. However, applications that explicitly enable compression for bandwidth optimization are vulnerable. Verify your application's SSH configuration to confirm the compression setting.

Can this vulnerability be exploited without network access to the SSH port?

No. The attacker must be able to connect to the SSH service and send SSH protocol packets. Network-level access controls (firewall rules, IP whitelisting, VPN gating) provide a defensive layer, though patching remains the primary remediation.

Does disabling compression prevent the attack entirely?

Yes. If SSH compression is disabled, the vulnerability cannot be triggered because the decompression code path is never reached. However, disabling compression is a temporary workaround, not a long-term solution; patching to 0.61.1 or later is the proper fix.

Why is this vulnerability not in CISA's Known Exploited Vulnerabilities list yet?

The vulnerability is recent (published June 2026) and may not yet be widely exploited in the wild, or CISA may not have received sufficient evidence of active exploitation. Lack of KEV status does not imply the vulnerability is unimportant—it remains High severity and should be treated as urgent for any affected deployment.

This analysis is provided for informational purposes and reflects the state of the vulnerability as of the publication date. SEC.co makes no warranty regarding the accuracy, completeness, or fitness of this information for any particular purpose. Organizations should verify all technical details, patch availability, and compatibility against their vendor's official advisories and testing before deploying patches to production. CVSS scores and severity ratings are provided by the source data and should be independently validated. This document does not constitute legal, compliance, or operational security advice; consult your security team and vendor for decisions specific to your environment. Source: NVD (public-domain), retrieved 2026-07-20. Analysis generated by SEC.co (claude-haiku-4-5).