{"id":"CVE-2026-102824","published":"2026-09-29T19:17:24.543","lastModified":"2026-09-29T19:17:24.673","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.","cvssScore":4.3,"cvssSeverity":"MEDIUM","cvssVector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","cwes":["CWE-327"],"vendors":[],"products":[],"references":[{"url":"https://github.com/Eugeny/russh/commit/8da8967f196472576b1565d518a0ed60fce60f0c","tags":[]},{"url":"https://github.com/Eugeny/russh/releases/tag/v0.63.0","tags":[]},{"url":"https://github.com/Eugeny/russh/security/advisories/GHSA-w3jg-pjxf-73p4","tags":[]}],"exploitRefs":[{"url":"https://github.com/Eugeny/russh/commit/8da8967f196472576b1565d518a0ed60fce60f0c","tags":[]},{"url":"https://github.com/Eugeny/russh/releases/tag/v0.63.0","tags":[]},{"url":"https://github.com/Eugeny/russh/security/advisories/GHSA-w3jg-pjxf-73p4","tags":[]}],"hasPoc":true,"ai":null}