CVE-2026-102821
Deferred Deferred - Pending Action

Memory Exhaustion in Russh SSH Server Library

Vulnerability report for CVE-2026-102821, 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

Russh is a Rust SSH client and server library. Prior to 0.63.2, an authenticated remote peer can send SSH_MSG_KEXINIT without the required SSH_MSG_KEX_ECDH_INIT and then flood SSH_MSG_CHANNEL_OPEN messages while SessionKexState::InProgress prevents priority_receiver in russh/src/server/session.rs from being drained. The server continues processing network input and enqueues a ChannelOpenReply for each request on an unbounded channel, allowing one connection to grow memory until the process is terminated. This issue is fixed in version 0.63.2.

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 1 associated CPE
Vendor Product Version / Range
russh russh to 0.63.2 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-770 The product allocates a reusable resource or group of resources on behalf of an actor without imposing any intended restrictions on the size or number of resources that can be allocated.
CWE-400 The product does not properly control the allocation and maintenance of a limited resource.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in the russh SSH server library (versions <= 0.63.1) allows an authenticated attacker to cause unbounded memory exhaustion. The issue occurs when a client sends an SSH_MSG_KEXINIT but never follows up with SSH_MSG_KEX_ECDH_INIT during a rekey operation. The server's key exchange state remains stuck, processing incoming SSH_MSG_CHANNEL_OPEN messages and appending replies to an unbounded internal queue. This causes memory to grow until the process crashes.

Detection Guidance

Monitor for unusual memory consumption spikes in the russh SSH server process, particularly during SSH sessions. Check for excessive SSH_MSG_CHANNEL_OPEN messages during rekey operations. Use system monitoring tools like 'top', 'htop', or 'ps' to observe memory usage of the russh process. Inspect SSH server logs for repeated channel open attempts or stalled rekey processes.

Impact Analysis

An attacker could exploit this to crash your SSH server by flooding it with channel open requests during a stalled rekey. This leads to high memory usage, potential service outages, and denial-of-service conditions for legitimate users.

Compliance Impact

This vulnerability could impact compliance with GDPR and HIPAA by enabling denial-of-service (DoS) attacks that disrupt availability of SSH services. GDPR requires data processing systems to ensure availability and resilience, while HIPAA mandates safeguards against unauthorized access or disruptions. Memory exhaustion from this flaw could lead to service outages, potentially violating these requirements.

Mitigation Strategies

Upgrade the russh library to version 0.63.2 or later. If upgrading is not immediately possible, implement network-level mitigations such as rate limiting SSH connections or blocking suspicious channel open attempts. Monitor for signs of memory exhaustion and restart the SSH server if abnormal memory usage is detected.

Chat Assistant

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

EPSS Chart