russh server userauth state is not reset when authentication principal changes
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- None · Low · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-287.
Summary
Russh is a Rust SSH client & server library. From version 0.34.0-beta.1 to before version 0.61.0, the russh server authentication path keeps internal userauth state across SSH_MSG_USERAUTH_REQUEST messages without separating that state when the request principal changes. RFC 4252 allows the user name and service name fields to change between authentication requests. The issue is not that such changes are invalid. The issue is that russh-owned authentication state, such as remaining methods, partial-success state, and in-progress method state, can remain associated with the connection and then influence a later request for a different (user, service). This is an internal library state mismatch. This issue has been patched in version 0.61.0.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Eugeny | russh | 0.34.0-beta.1 to before 0.61.0 | 0.61.0 | Patch available | CNA |
| — | russh (crates.io) | 0.34.0-beta.1 to before 0.61.0 | 0.61.0 | Patch available | GHSA-hpv4-5h6f-wqr3 |
- russh VendorEugeny Affected 0.34.0-beta.1 to before 0.61.0 Fixed in 0.61.0 Patch available CNA
- russh (crates.io) Vendor— Affected 0.34.0-beta.1 to before 0.61.0 Fixed in 0.61.0 Patch available GHSA-hpv4-5h6f-wqr3
Remediation
- Fix · CNA russh (Eugeny) Fixed in 0.61.0
- Fix · GHSA-hpv4-5h6f-wqr3 russh (crates.io) Fixed in 0.61.0 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-46705
- 2026-10-03 Alias added: GHSA-hpv4-5h6f-wqr3
References
More Eugeny vulnerabilities
- TI-2026-65512 russh: Client-side channel-scoped Handler callbacks fire for channel IDs the client never opened CVSS 3.1HIGH 7.5
- TI-2026-35550 Russh: SSH message fields were decoded through allocation-first parsers before field-specific bounds CVSS 3.1HIGH 7.5
- TI-2026-34331 Russh: Post-decompression SSH packet size was not bounded, allowing remote oversized compressed packets CVSS 3.1HIGH 7.5
- TI-2026-34308 Resource allocation without limits in Eugeny russh CVSS 3.1HIGH 7.5
- TI-2025-16084 Tabby has a TCC Bypass via Misconfigured Node Fuses CVSS 4.0HIGH 8.6
- TI-2024-36991 Tabby has a TCC Bypass via Unnecessary Permissive Entitlements in Tabby CVSS 4.0HIGH 8.6
Sources
- CVE-2026-46705 · CVE Program
- CVE-2026-46705 · NVD
- FIRST EPSS
- GHSA-hpv4-5h6f-wqr3 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences