Skip to content
OpenAdvisories
Medium · 6.2 CVE-2026-102820 EUVD-2026-89203GHSA-g4mp-vgx3-xrvm

pageant: Out-of-bounds read / oversized allocation in `pageant` MemoryMap::read via a malicious Pageant agent (Windows)

Published Sep 29, 2026 · Updated Sep 30, 2026 · Assigned by GitHub_M

Description

pageant provides a [PageantStream] type that implements [AsyncRead] and [AsyncWrite] traits and can be used to talk to a running Pageant instance. Prior to pageant 0.2.3, the Windows pageant crate's pageant/src/wmmessage.rs MemoryMap::read function trusts a peer-controlled u32 response length supplied through the 8192-byte Pageant shared-memory mapping reached by AgentClient::connect_pageant. A local process that impersonates the Pageant window can make query_pageant_direct allocate up to approximately 4 GiB and copy beyond the mapped view, reliably crashing a russh client and conditionally exposing adjacent committed memory. This issue is fixed in pageant 0.2.3.

Affected products

VendorProductAffectedFixed
Eugeny russh < 0.63.2 —
rust pageant < 0.2.3 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 rust-russh 0.64.1-1 —
ReleasePackageFixed inAdvisory
Ubuntu 26.10 rust-russh No fix yet —

Affected packages

EcosystemPackageAffectedFixedRecord
crates.io pageant < 0.2.3 0.2.3 GHSA-g4mp-vgx3-xrvm

References