---
id: "CVE-2026-116775"
kind: "vulnerability"
aliases: ["CVE-2026-116775"]
title: "pageant Rust crate: unchecked length prefix lets a peer exhaust client memory"
severity: "low"
cvss: 2.3
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["package", "pageant", "rust", "ssh"]
not_affected_if: ["not-using-pageant-crate", "version-outside-0.2.0-to-0.2.4"]
published_at: "2026-10-27T21:18:06+00:00"
first_seen_at: "2026-10-27T21:29:22+00:00"
updated_at: "2026-10-27T21:30:25+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-116775", "first_seen_at": "2026-10-27T21:29:22+00:00"}]
---

# pageant Rust crate: unchecked length prefix lets a peer exhaust client memory

The pageant Rust crate's PageantStream trusts a four-byte length prefix sent by the peer and buffers until that many bytes arrive, without checking the fixed agent message size limit. A malicious SSH server reached through a forwarded-agent bridge can force large allocations or hold partial frames, exhausting client memory.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Run `cargo tree -i pageant` in the project to see whether the pageant crate is present and which version is resolved.
- Check Cargo.lock for a `pageant` entry with a version between `0.2.0` and `0.2.4`.

## Fix

- Upgrade the pageant crate to `0.2.5` or later.

## Timeline

- 2026-10-27T21:29:22+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-116775

## From the sources

pageant provides a PageantStream type that implements AsyncRead and AsyncWrite traits and can be used to communicate with a running Pageant instance. From 0.2.0 until 0.2.5, PageantStream::new in pageant/src/wmmessage.rs trusts a peer-controlled four-byte length prefix and buffers until len + 4 bytes are available without checking the fixed _AGENT_MAX_MSGLEN transport capacity. An application that bridges an SSH forwarded-agent channel to the raw stream can allow a malicious server to force large allocations or retain a partially filled frame, causing client memory exhaustion. This issue is fixed in version 0.2.5.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
