[ CVE-2026-111061 · Published 19 Oct 2026 ]

russh: Unbounded memory allocation in agent protocol server via crafted constraint records

CVSS 4.3 EPSS <1%Fix available

[ Why it matters ]Priority signals

  • Public proof-of-concept exploit exists (CISA SSVC)

[ Description ]Official description

russh is a Rust SSH client and server library that includes an SSH agent protocol implementation. Prior to 0.64.1, the agent server spawns a separate long-lived task for every SSH_AGENT_CONSTRAIN_LIFETIME record in a constrained add-key request. The loop accepts repeated lifetime records, clones the key blob into each task, and does not roll back tasks when later constraint parsing fails. An attacker that can speak the agent protocol locally or through agent forwarding can exhaust memory and tasks until the agent process is starved or terminated, denying SSH agent service. This issue is fixed in version 0.64.1.

[ Fixes ]Fixes and patches

  • russh 0.64.1Fixed version · GitHub Advisories · rust package russh: upgrade to 0.64.1 or later (affected <= 0.64.0)

[ Packages ]Affected open-source packages