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.
Published: 2026-10-19
Score: 4.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via unbounded task creation
Action: Apply Patch
AI Analysis

Impact

An SSH agent implementation in the russh library can spawn an unbounded number of long‑lived tasks when processing repeated SSH_AGENT_CONSTRAIN_LIFETIME records in a key‑addition request. Because the code clones the key blob into each task and never terminates tasks on later parse failures, an attacker who can speak the agent protocol locally or via forwarded connections can repeatedly send constrained add‑key requests to exhaust system memory and the task scheduler, eventually causing the agent process to be starved or terminated. The weakness is the uncontrolled resource consumption identified as CWE‑770.

Affected Systems

The vulnerability exists in the russh library by Eugeny, affecting all versions prior to 0.64.1 that expose the SSH agent protocol. Systems that run russh with agent forwarding enabled or allow local access to the agent channel are susceptible. The fix is delivered in release 0.64.1.

Risk and Exploitability

The CVSS score of 4.3 reflects a moderate severity; the lack of an EPSS score makes the current exploitation probability unclear, but the attack vector is controllable locally or over agent forwarding, implying that compromise of a local user or of a host that forwards agent connections is required. The vulnerability is not listed in the CISA KEV catalog, and no official workaround is provided. An attacker who can speak the agent protocol locally or via forwarded connections can trigger the denial of service, but the exploitation requires repeated authenticated or unauthenticated interaction with the SSH agent. Due to the moderate CVSS score and the need for a local or privileged remote posture, the overall risk is moderate to high for environments that rely heavily on SSH agent forwarding.

Generated by OpenCVE AI on October 19, 2026 at 17:51 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update the russh library to version 0.64.1 or later and restart all SSH agent processes that use it
  • Disable SSH agent forwarding on servers and clients that do not require it to limit the attack surface
  • If updating is delayed, monitor agent processes for abnormal memory usage or task count and terminate any that appear to be consuming disproportionate resources

Generated by OpenCVE AI on October 19, 2026 at 17:51 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-4wc5-f2rc-q74m russh: Unbounded memory allocation in agent protocol server via crafted constraint records
History

Tue, 20 Oct 2026 00:30:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Moderate


Mon, 19 Oct 2026 22:15:00 +0000

Type Values Removed Values Added
First Time appeared Eugeny
Eugeny russh
Vendors & Products Eugeny
Eugeny russh

Mon, 19 Oct 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 19 Oct 2026 16:45:00 +0000

Type Values Removed Values Added
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.
Title russh agent server converts constraint records into unbounded never-rolled-back tasks
Weaknesses CWE-770
References
Metrics cvssV3_1

{'score': 4.3, 'vector': 'CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-19T18:29:47.486Z

Reserved: 2026-10-15T12:47:13.665Z

Link: CVE-2026-111061

cve-icon Vulnrichment

Updated: 2026-10-19T18:29:41.958Z

cve-icon NVD

Status : Deferred

Published: 2026-10-19T17:17:03.080

Modified: 2026-10-19T19:17:22.890

Link: CVE-2026-111061

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-19T16:30:24Z

Links: CVE-2026-111061 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-19T22:00:06Z

Weaknesses
  • CWE-770

    Allocation of Resources Without Limits or Throttling