Description
russh is a Rust SSH client and server library that includes an SSH agent protocol implementation. Prior to 0.65.0, russh::keys::agent::server::serve in russh/src/keys/agent/server.rs accepts repeated SSH_AGENT_CONSTRAIN_CONFIRM records while adding a key and appends every Constraint::Confirm record to the key's retained constraint vector without a count or memory limit. A process that can connect to the agent socket, including the remote side of a forwarded agent session, can repeatedly add constrained keys and cause renewable memory growth that persists for the process lifetime because keys without a lifetime constraint do not expire. This issue is fixed in version 0.65.0.
Published: 2026-10-27
Score: 3.3 Low
EPSS: n/a
KEV: No
Impact: Resource exhaustion due to unbounded memory growth
Action: Patch
AI Analysis

Impact

The vulnerability in the russh library allows an attacker who can communicate with the SSH agent socket to send repeated SSH_AGENT_CONSTRAIN_CONFIRM messages, each of which is appended unchecked to a key's constraint vector. Because there is no counter or memory limit, the agent will continue to allocate memory for every new constraint; keys without a lifetime constraint persist indefinitely, so the memory growth remains for the process lifetime, which can result in resource exhaustion and a denial of service. Based on the description, the likely attack vector is a program that can open the agent socket, which could be a local process or a remote host if agent forwarding is enabled.

Affected Systems

The vendor Eugeny provides the russh SSH client and server library. Versions of russh prior to 0.65.0 are affected because they implement an unbounded constraint vector in the agent server component. The fix is released in version 0.65.0, so any deployment using earlier releases is at risk.

Risk and Exploitability

The CVSS score of 3.3 indicates low severity, and the vulnerability is not listed in the CISA KEV catalog, meaning widespread exploitation is not yet documented. However, because the attack requires only access to the SSH agent socket, which may be locally available or exposed through forwarded agent sessions, an attacker could potentially trigger memory exhaustion and a denial of service in the affected process. The exploit is straightforward for a local process and could be carried out remotely if SSH agent forwarding is enabled, but no additional network privileges or configuration are required beyond socket access. The EPSS score is not available, so the likelihood of exploitation in the wild is uncertain, though the low CVSS suggests priority for patching rather than immediate mitigation.

Generated by OpenCVE AI on October 27, 2026 at 21:32 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update the russh library to version 0.65.0 or later to apply the fix that limits constraint accumulation.
  • Restrict or disable access to the SSH agent socket and disable SSH agent forwarding to prevent untrusted processes from communicating with the agent.
  • Monitor memory usage of processes using the SSH agent and terminate any that exhibit unexplained sustained memory growth.

Generated by OpenCVE AI on October 27, 2026 at 21:32 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 27 Oct 2026 22:00:00 +0000

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

Tue, 27 Oct 2026 20:30: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.65.0, russh::keys::agent::server::serve in russh/src/keys/agent/server.rs accepts repeated SSH_AGENT_CONSTRAIN_CONFIRM records while adding a key and appends every Constraint::Confirm record to the key's retained constraint vector without a count or memory limit. A process that can connect to the agent socket, including the remote side of a forwarded agent session, can repeatedly add constrained keys and cause renewable memory growth that persists for the process lifetime because keys without a lifetime constraint do not expire. This issue is fixed in version 0.65.0.
Title russh's SSH agent server is susceptible to unbound allocations via repeated SSH_AGENT_CONSTRAIN_CONFIRM messages
Weaknesses CWE-770
References
Metrics cvssV3_1

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


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-27T20:14:32.973Z

Reserved: 2026-10-26T20:00:59.831Z

Link: CVE-2026-116696

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Deferred

Published: 2026-10-27T21:18:05.617

Modified: 2026-10-27T21:18:05.743

Link: CVE-2026-116696

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-27T21:45:08Z

Weaknesses
  • CWE-770

    Allocation of Resources Without Limits or Throttling