/

CVE-2026-73241

Severity:

HIGH RISK

(7.5)

Authentication Bypass (CWE-287) in FreeRDP Server RDSTLS

CVE-2026-73241

Analyzed

Vulnerability type

Category:

Authentication Bypass

CWE:

CWE-287

Impact:

Unauthorized Remote Access

Severity:

HIGH RISK

(7.5)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

A state-handling flaw in the FreeRDP server-side RDSTLS authentication flow can cause an unexpected capabilities message to be treated as if authentication succeeded. A remote unauthenticated client may therefore bypass checks involving the RedirectionGuid, username, domain, or password when connecting to an affected server.

Affected context

The vulnerability occurs in FreeRDP server deployments that use the RDSTLS authentication path and process client-supplied protocol messages while waiting for an authentication request. It is relevant when the server relies on the affected state transition to enforce identity and redirection-related checks.

Exploit preconditions

  • Attack surface: Network-accessible FreeRDP server using server-side RDSTLS
  • Required access: No valid credentials are required; the client must be able to initiate an RDP connection
  • Trigger point: Processing an unexpected capabilities PDU during the RDSTLS authentication exchange
  • Why exploitation is possible: The authentication result may remain in a success state when the server receives a message type other than the expected authentication request, allowing subsequent checks to be bypassed

Why this happens

The underlying issue is improper state and message validation in the authentication protocol handler. While waiting for an authentication request, the server accepts an unexpected capabilities message without resetting or failing the authentication result, leaving a success value in place. This behavior maps to CWE-287: Improper Authentication, because the system can grant access without adequately verifying the client's identity or required authentication attributes.

Potential impact

  • An unauthenticated remote client may gain unauthorized access to an RDP service
  • Security checks based on usernames, domains, passwords, or redirection identifiers may be bypassed
  • Unauthorized sessions could expose desktop resources or connected services
  • Attackers could use the access as a foothold for further activity, depending on server privileges and network placement

General mitigation guidance

Mitigation generally focuses on ensuring that every protocol state accepts only the message types valid for that state and that authentication fails closed whenever unexpected input is received.

Common defensive patterns include:

  • Rejecting unexpected protocol messages during authentication
  • Explicitly resetting authentication state before processing each exchange
  • Requiring successful validation of all identity and redirection attributes before granting access
  • Applying least privilege to the FreeRDP service account and limiting accessible resources
  • Restricting exposure of RDP services through network segmentation and access-control policies
  • Using a maintained FreeRDP release that contains the relevant security correction

How teams detect issues like this

Detection can combine protocol-aware monitoring with implementation review:

  • Review authentication state machines for success states that are not explicitly cleared on malformed or unexpected input
  • Use static analysis and code review rules to identify unchecked message-type transitions and fail-open authentication branches
  • Test that unexpected PDUs during authentication produce rejection rather than a successful result
  • Monitor RDP authentication logs for unauthenticated or anomalous sessions, identity mismatches, and unusual redirection behavior
  • Enforce network policies that limit which clients and segments can reach FreeRDP services
  • Automated security testing and code-review tools may help identify inconsistent protocol-state handling

Sources

SourceLink
github.comgithub.com/FreeRDP/FreeRDP/commit/b05a9510787c83c87ffc5fa8d7cc9f06ed971695
github.comgithub.com/FreeRDP/FreeRDP/pull/13065
github.comgithub.com/FreeRDP/FreeRDP/releases/tag/3.30.0
github.comgithub.com/FreeRDP/FreeRDP/security/advisories/GHSA-rqgv-grx4-xm6x

Frequently asked

questions

Yes. An attacker may be able to trigger the vulnerable authentication state remotely by connecting to an exposed FreeRDP server, and valid credentials are not necessarily required.

The attacker generally needs network reachability to the affected FreeRDP service. The key prerequisite is the ability to initiate the protocol exchange, not prior authentication.

Authentication should fail closed for unexpected protocol messages, with explicit state validation and successful verification of every required identity and redirection attribute before access is granted.

Model authentication as a strict state machine, reject invalid message sequences, add negative protocol tests, monitor anomalous sessions, and minimize the privileges and network exposure of remote desktop services.

Find out what's already
exploitable in your codebase.