Skip to main content
← All vulnerabilities
CVE-2026-116773EUVD-2026-111388GHSA-4P9F-7P9M-5VFG

russh's SSH client is susceptible to unbounded allocations via EXT_INFO packets

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 0.65.0, 0.65
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: poc
  • Automatable: no
  • Technical impact: partial

Summary

russh, a Rust SSH client and server library, has a flaw in its client that lets a malicious SSH server make the client store an ever-growing list of extension names during the connection, which can gradually exhaust the client's memory. The problem is fixed in a newer release of the library.

Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.

Read the original description

russh is a Rust SSH client and server library that includes an SSH agent protocol implementation. Prior to 0.65.0, the client Session::process_packet path in russh/src/client/encrypted.rs accepts repeated packets encoded with russh's private msg::EXT_INFO = 7 before authentication, while the standards-compliant EXT_INFO message number 82 does not reach the affected handler. The handle_ext_info function appends every parsed extension name to received_extensions without clearing, deduplicating, or bounding the vector. A malicious SSH server that deliberately sends private message number 7 can therefore retain an unbounded number of attacker-controlled extension names for the session lifetime, causing progressive client memory exhaustion. This issue is fixed in version 0.65.0.

Timeline

  1. CVE published
  2. First seen by cve.now
  3. CISA SSVC assessment

    Exploitation: poc · Automatable: no · Technical impact: partial

  4. Record last updated

Affected versions

  • Eugeny russh

    fixed in 0.65.0

  • russhcrates.io

    fixed in 0.65

References 3

GitHub · Eugeny/russh