Skip to main content

pageant (russh) EUVDEUVD-2026-111390

| CVE-2026-116775 LOW
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-10-27 GitHub_M
2.3
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Operate or compromise upstream SSH server
  2. Delivery
    Client bridges forwarded-agent channel to raw PageantStream
  3. Exploit
    Send 4-byte prefix claiming ~4 GiB frame
  4. Execution
    Stream bytes or stall with frame incomplete
  5. Impact
    Unbounded buffering exhausts client process memory

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an application that bridges an SSH forwarded-agent channel directly to the raw pageant::PageantStream (the documented transport-only usage, e.g. copy_bidirectional between the SSH server channel and PageantStream), so that the peer-controlled channel payload supplies the trusted 4-byte length prefix read in PageantStream::new (wmmessage.rs). The attacker must control or have compromised the upstream SSH server the client connects to. Platform is limited to Windows (the WM_COPYDATA / _AGENT_MAX_MSGLEN shared-memory transport) and to pageant versions 0.2.0 through 0.2.4. Exploitation does NOT apply to russh's typed AgentClient path, which bounds response frames at 256 KiB; only the raw-stream bridging pattern is affected. The only complete fix stated by the vendor is upgrading to pageant 0.2.5, which rejects frames exceeding _AGENT_MAX_MSGLEN before buffering.

Impact

All signals converge on LOW real-world priority. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:P, VA:L only, VC:N/VI:N) scores 2.3, and the vuln.today Decision label is 'monitor' - not act_now or emergency. The impact ceiling is a memory-exhaustion DoS of the client process (CWE-770): no confidentiality or integrity impact, no code execution, no memory-safety violation (the advisory states this explicitly). A working proof-of-concept is published in the GHSA advisory, so exploit code is public, but a public PoC is a distinct signal from active exploitation: this CVE is NOT in CISA KEV, so there is no confirmed in-the-wild use. No EPSS score was provided in the input, so exploitation-probability cannot be compared against the KEV/PoC signals - that data is MISSING. Two attack-requirement signals materially cap risk: AT:P (a specific condition must hold) and UI:P (the vulnerable bridging usage), both reflecting that exploitation only applies when an application bridges an SSH forwarded-agent channel directly to the raw PageantStream and the attacker controls the upstream SSH server. The crate's own typed AgentClient path is not affected (it bounds frames at MAX_AGENT_FRAME_LEN / 256 KiB). Net: a genuine but low-severity, deployment-dependent DoS - patch in normal maintenance cadence, not an emergency.

Exploit ScenarioDerived

A Windows SSH client built on russh/pageant 0.2.0-0.2.4 services a remote server's forwarded-agent channel by bridging the SSH channel bytes directly into a raw PageantStream (e.g. tokio::io::copy_bidirectional). A malicious or compromised SSH server sends the 4-byte big-endian prefix FF FF F0 00 claiming a ~4 GiB frame, then streams data or simply stalls mid-frame, forcing the client's re-framing task to buffer unbounded memory. A working PoC is published in the GHSA advisory: observed working-set growth from ~7.4 MB to ~264.7 MB after streaming 256 MiB, with memory retained while the peer stalls.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 28, 2026

Memory exhaustion in the pageant crate's raw PageantStream transport affects versions 0.2.0 through 0.2.4: PageantStream::new reads a peer-supplied four-byte length prefix and buffers up to len + 4 bytes without checking it against the fixed 8 KiB _AGENT_MAX_MSGLEN transport limit, so a malicious SSH server can claim a frame of up to ~4 GiB and either stream that much data or stall mid-frame, keeping the partial buffer resident. Exploitation is narrowly scoped - Windows only, and only for applications that bridge an SSH forwarded-agent channel directly to the raw stream (e.g. copy_bidirectional); russh's typed AgentClient path bounds frames at 256 KiB and is not affected. The advisory includes a proof-of-concept that the reporter observed growing a pageant 0.2.4 process from ~7.4 MB to ~264.7 MB working set on Windows 11; the flaw is fixed in pageant 0.2.5, no CISA KEV entry or active exploitation is reported, and the priority label is monitor with an assessed CVSS 3.1 of AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L.

RemediationAI

Upgrade pageant to 0.2.5 (shipped with russh v0.65.0, https://github.com/Eugeny/russh/releases/tag/v0.65.0), which rejects any frame where len.saturating_add(4) exceeds _AGENT_MAX_MSGLEN before it is buffered and also removes a theoretical 32-bit len + 4 overflow; the vendor states upgrading is the only complete fix. For code that cannot be updated immediately, the exposure comes specifically from bridging an SSH forwarded-agent channel to the raw stream, so removing or avoiding that raw bridging pattern (in particular the copy_bidirectional hand-off of server-controlled channel bytes into PageantStream) removes the attack path, at the cost of losing forwarded-agent service for remote sessions on Windows; if agent forwarding must stay, the typed AgentClient path used by russh bounds response frames at MAX_AGENT_FRAME_LEN (256 KiB) and does not exhibit the unbounded buffering, though it does not cover general raw-stream transport use.

Affected VersionsENISA

russh 0.2.0, < 0.2.5

Affected Packages

euvd russh fix: 0.2.5

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

pageant is a Windows-specific Rust crate in the russh project that speaks the PuTTY Pageant agent protocol over WM_COPYDATA, backed by a fixed-size shared memory mapping of _AGENT_MAX_MSGLEN (8192) bytes; the crate implements only the transport, not the agent protocol itself. Since commit 6eac7a157dd2cc81b8fafdb2977f1c388fe9784b (PR #565, September 2025) the stream uses length-prefixed framing: the re-framing task reads a 4-byte big-endian length and continues accumulating into a BytesMut until len + 4 bytes are present, with no upper bound on len. This is CWE-770 (allocation of resources without limits or throttling) rather than a memory-safety bug: the oversized frame can never actually be delivered, because query_pageant_direct() writes it into the 8192-byte shared mapping and returns Error::Overflow, so the attacker-controlled growth is pure wasted allocation and the task can also be left holding a partial frame indefinitely. The 0.1.x line predates the length-prefixed loop and is not affected. The documented bridging pattern (copy_bidirectional between the server's agent-forward channel and PageantStream) hands the SSH server's payload to the parser, making the length prefix server-controlled; the crate's own typed AgentClient instead caps response frames at MAX_AGENT_FRAME_LEN (256 KiB). The trigger requires the peer to control or compromise the upstream SSH server, which is why the assessed vector carries AC:H, and impact is limited to availability.

Know when Russh gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 2.3 LOW
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
vuln.today AI 3.7 LOW

Malicious SSH server controls bytes over network (AV:N, PR:N); AC:H because it requires the specific raw-stream bridging deployment; only partial availability impact (A:L), no C/I.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
4.0 AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 27, 2026 - 21:18 EUVD

DescriptionCVE.org

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.

Threat Intelligence Overview

EPSS Score
0.3%
Top 78% exploitable
Prevalence
Low
niche Windows-only Rust SSH agent transport crate
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Low

Priority Score

12
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +12
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Russh

View all
CVE-2023-48795 MEDIUM POC
5.9 Dec 18

The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remot

CVE-2024-43410 HIGH POC
7.5 Aug 21

Russh is a Rust SSH client & server library. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable,

CVE-2023-28113 MEDIUM POC
5.9 Mar 16

russh is a Rust SSH client and server library. Rated medium severity (CVSS 5.9), this vulnerability is remotely exploita

CVE-2026-73430 MEDIUM POC
5.3 Aug 12

Unauthenticated remote denial of service in the Russh SSH library (versions ≤ 0.62.3) allows any network attacker to cra

CVE-2026-73429 MEDIUM POC
5.3 Aug 12

Denial-of-service in russh's Curve25519 key exchange client path allows any malicious SSH server to crash a connecting r

CVE-2026-116794 HIGH
8.3 Oct 28

russh's SSH agent server signs with keys loaded under the confirm constraint without ever invoking the application's app

CVE-2026-102823 HIGH
7.5 Sep 29

Improper validation in the Russh Rust SSH library (versions prior to 0.63.1) lets a malicious or compromised SSH server

CVE-2026-42189 HIGH
7.5 May 08

Pre-authentication denial-of-service in russh SSH server library allows remote attackers to crash servers implementing k

CVE-2026-48110 HIGH
7.5 Jun 10

Denial of service in Russh (Rust SSH client/server library) versions 0.34.0 through 0.60.x allows remote SSH peers to tr

CVE-2026-48107 MEDIUM
6.5 Jun 10

Denial of service in Russh (versions 0.37.0-0.60.x), a Rust SSH client and server library, allows a malicious SSH server

CVE-2026-102821 MEDIUM POC
6.5 Sep 29

Memory exhaustion in the Russh Rust SSH client/server library prior to 0.63.2 allows an authenticated remote peer to sta

CVE-2026-102820 MEDIUM POC
6.2 Sep 29

The Windows Pageant client inside the pageant Rust crate (pageant/src/wmmessage.rs) trusts a peer-controlled u32 respons

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy