Vulnerability RUSTSEC-2026-0494

High Risk
HIGH RISK
CVSS Score: 7.5
Score Range: 7.0–8.9
High severity vulnerabilities (CVSS 7.0–8.9). Serious vulnerabilities that should be prioritized soon after critical fixes.
5 months ago
June 11, 2026 at 12:00 PM UTC
SSH message fields allocated before their size is checked
>=0.34.0 <0.61.0
>=0.34.0 <0.61.0

Summary

SSH message fields allocated before their size is checked

Details

Many of russh's client and server message handlers decoded length-prefixed strings, byte fields and name-lists from the peer into owned String, Vec or name-list values first and only checked their size and meaning afterwards. This includes the algorithm name-lists in SSH_MSG_KEXINIT, which a server parses during the initial key exchange, before any authentication.

A peer can fill these fields with oversized or highly fragmented values, for example a name-list of hundreds of thousands of one-letter algorithm names, and make russh allocate far more memory than the packet itself takes. With many concurrent connections this can exhaust the memory of a server process.

From 0.61.0, name-lists are rejected before they are split into separate strings when they are longer than 16 KiB or hold more than 1,024 entries, and the key exchange decodes its algorithm lists through this bounded decoder.

Impacted packages

Timeline

Published
5 months ago
June 11, 2026 at 12:00 PM UTC
Fixed (0.61.0)
5 months ago
May 20, 2026 at 10:36 PM UTC
Last Modified
2 days ago
November 12, 2026 at 08:00 AM UTC