CVE-2026-102820
Deferred Deferred - Pending Action

BaseFortify

Vulnerability report for CVE-2026-102820, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-09-29

Last updated on: 2026-09-30

Assigner: GitHub, Inc.

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.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-09-29
Last Modified
2026-09-30
Generated
2026-10-19
AI Q&A
2026-09-30
EPSS Evaluated
2026-10-18
NVD
EUVD

Affected Vendors & Products

Showing 2 associated CPEs
Vendor Product Version / Range
Eugeny russh < 0.63.2
rust pageant < 0.2.3

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-789 The product allocates memory based on an untrusted, large size value, but it does not ensure that the size is within expected limits, allowing arbitrary amounts of memory to be allocated.
CWE-125 The product reads data past the end, or before the beginning, of the intended buffer.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability is an out-of-bounds read and potential oversized memory allocation in the pageant crate (part of the russh workspace) on Windows. A local malicious process can impersonate the Pageant agent and exploit a lack of bounds checking in the MemoryMap::read function. By writing a peer-controlled u32 length prefix into a shared-memory view, the function may read beyond the 8192-byte limit or allocate up to approximately 4 GiB of memory. This can crash the process or expose adjacent memory.

Detection Guidance

This vulnerability is specific to the pageant crate on Windows systems using russh <= 0.2.2. Detection involves checking the installed version of the pageant crate or russh package. Use commands like 'cargo tree -p pageant' or 'cargo tree -p russh' in your project directory to verify versions. If you are not using these crates, the vulnerability does not apply.

Impact Analysis

This vulnerability can cause a process crash (access violation) due to memory corruption or oversized allocation. In some cases, it may also expose adjacent committed memory, potentially leaking sensitive data. The attack requires no privileges and exploits the trust boundary where russh locates the agent via FindWindowW without validation.

Compliance Impact

The vulnerability primarily impacts system availability by causing crashes or memory exposure, which could lead to denial-of-service conditions. This may indirectly affect compliance with standards like GDPR or HIPAA by disrupting secure operations or exposing sensitive data during memory leaks. However, the direct impact on compliance depends on the specific environment and mitigations in place.

Mitigation Strategies

Upgrade the pageant crate to version 0.2.3 or later and russh to version 0.63.2 or later. If using Cargo, run 'cargo update -p pageant' and 'cargo update -p russh'. For system-wide installations, update the package manager accordingly. Ensure no untrusted processes are running that could impersonate the Pageant agent.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-102820. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart