Skip to content
OpenAdvisories
High · 7.5 CVE-2026-102823 EUVD-2026-89206GHSA-47hw-gvq5-r2gmRUSTSEC-2026-0492

russh: Client-side channel-scoped Handler callbacks fire for channel IDs the client never opened

Published Sep 29, 2026 · Updated Oct 2, 2026 · Assigned by GitHub_M

Description

Russh is a Rust SSH client and server library. Prior to 0.63.1, client_read_authenticated in russh/src/client/encrypted.rs forwards CHANNEL_DATA, CHANNEL_EXTENDED_DATA, CHANNEL_EOF, CHANNEL_CLOSE, CHANNEL_OPEN_FAILURE, CHANNEL_SUCCESS, CHANNEL_FAILURE, and CHANNEL_REQUEST subtypes exit-status, exit-signal, and xon-xoff to public client::Handler callbacks without confirming that the ChannelId belongs to a channel the client opened and established. A malicious SSH server can send lifecycle events for predicted, unopened, unconfirmed, or released channel identifiers, causing application panics or corrupting command completion and exit-code tracking. This issue is fixed in version 0.63.1.

Affected products

VendorProductAffectedFixed
Eugeny russh < 0.63.1 —

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 —
ReleasePackageFixed inAdvisory
Red Hat Hardened Images 1 openshell +2 0.1.2-0.2.hum1 RHSA-2026:74586

Affected packages

EcosystemPackageAffectedFixedRecord
crates.io russh >= 0.0.0-0, < 0.63.1 0.63.1 RUSTSEC-2026-0492
crates.io russh < 0.63.1 0.63.1 GHSA-47hw-gvq5-r2gm

Advisories 1

References