Skip to content
OpenAdvisories
Medium · 5.3 CVE-2026-73430 EUVD-2026-57625GHSA-5xvq-cp9x-6p6r

Russh: Pre-auth remote panic via all-zero Curve25519 peer public value (encode_mpint OOB)

Published Aug 12, 2026 · Updated Aug 13, 2026 · Assigned by GitHub_M

Description

Russh is a Rust SSH client & server library. Prior to 0.62.4, an unauthenticated SSH client can cause a denial of service by sending SSH_MSG_KEX_ECDH_INIT with a 32-byte all-zero Q_C value. Curve25519Kex::server_dh in russh/src/kex/curve25519.rs accepts the all-zero peer public value and computes an all-zero shared secret, after which compute_exchange_hash calls encode_mpint in russh/src/kex/mod.rs and indexes beyond the end of the input while skipping leading zero bytes. The resulting panic occurs before authentication and terminates the server key-exchange task. This issue is fixed in version 0.62.4.

Affected products

VendorProductAffectedFixed
Eugeny russh < 0.62.4 —

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 —

Wolfi

ReleasePackageFixed inAdvisory
Wolfi rolling yazi 26.5.6-r7 —

Affected packages

EcosystemPackageAffectedFixedRecord
crates.io russh < 0.62.4 0.62.4 GHSA-5xvq-cp9x-6p6r

References