[ CVE-2026-102823 · Published 29 Sep 2026 ]
russh: Client-side channel-scoped Handler callbacks fire for channel IDs the client never opened
CVSS 7.5
EPSS <1%Fix available
[ Why it matters ]Priority signals
- Public proof-of-concept exploit exists (CISA SSVC)
[ Description ]Official 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.
[ Fixes ]Fixes and patches
- russh 0.63.1Fixed version · GitHub Advisories · rust package russh: upgrade to 0.63.1 or later (affected <= 0.63.0)
[ Packages ]Affected open-source packages
- russh rustAffected <= 0.63.0 · fixed in 0.63.1 · GHSA-47hw-gvq5-r2gm