
GHSA-x7v6-xfx3-52j6
FreeRDP
•
severity
published
An unauthenticated client can bypass a FreeRDP server's configured transport policy and enter RDSTLS after receiving a terminal negotiation failure. Improper failure-state handling causes an error code to be interpreted as a protocol bitmask, exposing RDSTLS parsers and callbacks before the required NLA authentication; the flaw does not by itself authenticate the peer.
FreeRDP is embedded by remote-desktop projects including GNOME Remote Desktop and KDE's KRdp; downstream exposure depends on whether an integration enables the affected server-side path.
When an NLA-only server rejects an incompatible client, SelectedProtocol becomes PROTOCOL_FAILED_NEGO | HYBRID_REQUIRED_BY_SERVER, or 0x80000005. Because that value contains the PROTOCOL_RDSTLS bit, later bitmask dispatch accepts a TLS ClientHello on the same failed connection and begins RDSTLS. Testing confirmed that the client received the failure response, completed TLS, and received RDSTLS capabilities.
The issue is classified as CWE-693 and CWE-755. FreeRDP 3.0.0 through 3.30.0 are affected; version 3.31.0 makes negotiation failure terminal and is the first patched release.
CVE pending.
References
Explore our other findings
