Advisory Database
  • Advisories
  • Dependency Scanning
  1. cargo
  2. ›
  3. russh
  4. ›
  5. CVE-2026-116696

CVE-2026-116696: russh's SSH agent server is susceptible to unbound allocations via repeated SSH_AGENT_CONSTRAIN_CONFIRM messages

October 30, 2026

All evidence, reproduction steps, and scripts in the report were verified against a real running instance. Nothing is fabricated or synthetic; every verdict is backed by captured output from an actual deployment.

The SSH agent server that ships with russh (russh::keys::agent::server::serve) parses client key-addition requests and, for each SSH_AGENT_CONSTRAIN_CONFIRM (0x02) record it finds, pushes one Constraint::Confirm value into a per-key vector inside an unbounded loop, then stores the resulting pair permanently in its keystore (russh/src/keys/agent/server.rs:296-303). Neither the constraint vector nor the keystore has a size or count limit: the only boundary is the 256 KiB agent frame cap, and every 1-byte record a client sends becomes a 56-byte enum retained for the life of the process. Any process that can connect to the agent socket - the same trust model the project itself established when fixing a prior advisory about this same request handler - can therefore grow the agent’s memory without bound and renew the growth at will: six 256 KiB requests retained 72.4 MiB (about 12.1 MiB per request, a roughly 48-fold amplification) while an equal number of unconstrained key additions retained nothing, measured against the unmodified server through its public API on v0.64.1. The earlier fix for that prior advisory deduplicates only the sibling SSH_AGENT_CONSTRAIN_LIFETIME (0x01) record type and leaves this parallel variant untouched, and since constrained keys never expire the retained memory is never reclaimed.

References

  • github.com/Eugeny/russh/commit/23aa5d28fe9601c5bdfe9e60b7ec5d4f882c3de6
  • github.com/Eugeny/russh/releases/tag/v0.65.0
  • github.com/Eugeny/russh/security/advisories/GHSA-9wfm-jcj8-jfv9
  • github.com/advisories/GHSA-9wfm-jcj8-jfv9
  • nvd.nist.gov/vuln/detail/CVE-2026-116696

Code Behaviors & Features

Detect and mitigate CVE-2026-116696 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →

Affected versions

All versions before 0.65.0

Fixed versions

  • 0.65.0

Solution

Upgrade to version 0.65.0 or above.

Impact 3.3 LOW

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L

Learn more about CVSS

Weakness

  • CWE-770: Allocation of Resources Without Limits or Throttling

Source file

cargo/russh/CVE-2026-116696.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Sat, 31 Oct 2026 00:15:54 +0000.