Skip to content
OpenAdvisories
Medium · 4.3 CVE-2026-102824 EUVD-2026-89207GHSA-w3jg-pjxf-73p4

Russh: Missing X25519 zero-point validation in hybrid ML-KEM key exchange

Published Sep 29, 2026 · Updated Sep 30, 2026 · Assigned by GitHub_M

Description

Russh is a Rust SSH client and server library. Prior to 0.63.0, the hybrid ML-KEM 768 and X25519 implementation in russh/src/kex/hybrid_mlkem.rs accepts an all-zero 32-byte peer X25519 public key in both server_dh and compute_shared_secret, forcing the X25519 contribution to the combined shared secret to zero. A malicious SSH peer can therefore make the combined secret depend only on ML-KEM, defeating the hybrid exchange's intended fallback protection if ML-KEM is later weakened. This issue is fixed in version 0.63.0.

Affected products

VendorProductAffectedFixed
Eugeny russh < 0.63.0 —

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.63.0 0.63.0 GHSA-w3jg-pjxf-73p4

Advisories 1

References