Description
Russh is a Rust SSH client & server library. Allocating an untrusted amount of memory allows any unauthenticated user to OOM a russh server. An SSH packet consists of a 4-byte big-endian length, followed by a byte stream of this length. After parsing and potentially decrypting the 4-byte length, russh allocates enough memory for this bytestream, as a performance optimization to avoid reallocations later. But this length is entirely untrusted and can be set to any value by the client, causing this much memory to be allocated, which will cause the process to OOM within a few such requests. This vulnerability is fixed in 0.44.1.
References (2)
Core 2
Core References
Exploit, Vendor Advisory x_refsource_confirm
https://github.com/Eugeny/russh/security/advisories/GHSA-vgvv-x7xg-6cqg
Patch x_refsource_misc
https://github.com/Eugeny/russh/commit/f660ea3f64b86d11d19e33076012069f02431e55
Scores
CVSS v3
7.5
EPSS
0.0058
EPSS Percentile
69.0%
Attack Vector
NETWORK
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CISA SSVC
Vulnrichment
Exploitation
poc
Automatable
yes
Technical Impact
partial
Details
CWE
CWE-770
Status
published
Products (3)
crates.io/russh
0 - 0.44.1crates.io
russh_project/russh
< 0.44.1
warpgate_project/warpgate
< 0.10.2
Published
Aug 21, 2024
Tracked Since
Feb 18, 2026