CVE-2026-66402 Overview
CVE-2026-66402 is a certificate validation bypass in FreeRDP versions at or below 3.28.0, fixed in 3.29.0. The vulnerability affects TLS server identity verification in the tls_verify_certificate(), tls_match_hostname(), and x509_utils_get_dns_names() functions. FreeRDP implements custom Common Name (CN) and DNS Subject Alternative Name (SAN) string matching instead of relying on OpenSSL's length-aware identity validation APIs. This design flaw allows attackers holding a trusted or misissued certificate to impersonate legitimate RDP servers. The weakness is tracked under CWE-295 (Improper Certificate Validation).
Critical Impact
Attackers with a trusted or misissued certificate can bypass TLS server authentication and intercept FreeRDP sessions.
Affected Products
- FreeRDP versions <= 3.28.0
- FreeRDP client libraries embedding vulnerable tls_verify_certificate() logic
- Downstream applications and distributions bundling FreeRDP before 3.29.0
Discovery Timeline
- 2026-08-01 - CVE-2026-66402 published to NVD
- 2026-08-05 - Last updated in NVD database
Technical Details for CVE-2026-66402
Vulnerability Analysis
FreeRDP performs TLS peer identity verification using homegrown string comparison routines rather than OpenSSL's length-aware validation APIs such as X509_check_host() and X509_check_ip(). Three distinct weaknesses combine to weaken server authentication.
The first weakness truncates DNS SAN values at embedded NUL bytes. A certificate containing a SAN value such as victim.example\0.attacker.example is treated as victim.example, enabling attacker-controlled certificates issued for domains they legitimately own to impersonate arbitrary hosts.
The second weakness accepts a matching Common Name even when the certificate contains non-matching DNS SAN entries. RFC 6125 requires that once SAN entries are present, the CN field must not be used for identity matching.
The third weakness accepts IP-literal connection targets via DNS or CN string matching, without comparing against iPAddress SAN entries as required by standard TLS peer identification.
Root Cause
The root cause is the use of custom string comparison logic that is neither NUL-safe nor SAN-aware, instead of delegating identity validation to OpenSSL functions that correctly handle certificate encoding and standard peer identification rules.
Attack Vector
An attacker positioned on the network path between an RDP client and its intended server presents a certificate that either contains a NUL-embedded SAN, a spoofed CN alongside unrelated SANs, or a DNS name matching an IP literal. If the certificate chains to a trusted certificate authority (or is misissued), FreeRDP accepts the peer identity and completes the TLS handshake, enabling session interception, credential capture, and downstream RDP protocol manipulation.
The vulnerability mechanism is documented in the FreeRDP Security Advisory GHSA-43hh-p3vw-hfx3 and the VulnCheck Advisory on FreeRDP. No public proof-of-concept exploit is currently available.
Detection Methods for CVE-2026-66402
Indicators of Compromise
- Unexpected TLS certificates presented on RDP sessions whose SAN values contain embedded NUL bytes or unusual encodings.
- RDP client connections that succeed against hostnames or IP literals not matching any iPAddress SAN in the presented certificate.
- FreeRDP client version strings reporting <= 3.28.0 in enterprise inventory scans.
Detection Strategies
- Inspect TLS certificate chains observed on port 3389 traffic for SAN entries containing \\x00 bytes or malformed identity fields.
- Correlate RDP session establishment events with certificate transparency logs to flag misissued or attacker-controlled certificates for internal hostnames.
- Audit endpoints for the presence of vulnerable FreeRDP binaries by checking package versions or hashing the shipped libfreerdp shared library.
Monitoring Recommendations
- Log full TLS certificate fingerprints presented to RDP clients and alert on unexpected issuer changes.
- Monitor outbound RDP connections from workstations to unusual destinations, especially IP-literal targets.
- Track deployment of FreeRDP 3.29.0 or later across managed Linux and macOS fleets.
How to Mitigate CVE-2026-66402
Immediate Actions Required
- Upgrade all FreeRDP installations to version 3.29.0 or later.
- Rebuild and redistribute any internal applications that statically link or bundle affected FreeRDP libraries.
- Restrict outbound RDP traffic to known trusted destinations while patching is in progress.
Patch Information
The fix landed in FreeRDP 3.29.0 and replaces the custom certificate identity matching with length-aware validation. Distribution maintainers should track the upstream fix referenced in the GitHub Commit Update and the FreeRDP Security Advisory GHSA-43hh-p3vw-hfx3.
Workarounds
- Configure FreeRDP to require certificate pinning against a known-good fingerprint using /cert:fingerprint,sha256,<hash> where operationally feasible.
- Route RDP sessions through a VPN or Zero Trust broker that enforces its own TLS server authentication.
- Restrict trusted certificate authorities used by RDP clients to an internal CA whose issuance is tightly controlled.
# Verify installed FreeRDP version and pin server certificate fingerprint
xfreerdp --version
xfreerdp /v:rdp.example.internal /cert:fingerprint,sha256,<expected_sha256_fingerprint>
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

