---
id: CVE-2026-67294
title: >-
  FreeRDP before 3.29.0 improperly validates the Extended Key Usage (EKU)
  purpose of the peer certificate during client-side server TLS authentication
summary: >-
  FreeRDP before 3.29.0 improperly validates the Extended Key Usage (EKU)
  purpose of the peer certificate during client-side server TLS authentication.
  In x509_utils_verify(), when server-purpose (X509_PURPOSE_SSL_SERVER)
  verification fail…
severity: medium
cvss: 5.9
cvssVector: 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N'
cwe:
  - CWE-295
vendor: freerdp
product: freerdp
affected:
  - freerdp < 3.29.0
patched:
  - freerdp 3.29.0
published: '2026-08-01'
updated: '2026-09-11'
sourceUpdated: '2026-09-11T21:03:16.017'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-67294'
references:
  - url: >-
      https://github.com/FreeRDP/FreeRDP/commit/f3b4347105114fe7453828736bea069999af319f
    label: disclosure@vulncheck.com
  - url: 'https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-89c6-jjrw-96h4'
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/freerdp-before-tls-certificate-eku-bypass
    label: disclosure@vulncheck.com
  - url: 'https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-89c6-jjrw-96h4'
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
tags:
  - nvd
epss: 0.00266
epssPercentile: 0.1873
ingestedAt: '2026-08-02T05:17:49.550Z'
---

## Overview

FreeRDP before 3.29.0 improperly validates the Extended Key Usage (EKU) purpose of the peer certificate during client-side server TLS authentication. In x509_utils_verify(), when server-purpose (X509_PURPOSE_SSL_SERVER) verification fails, the code falls back to client-purpose and any-purpose verification, so a trusted, hostname-matching certificate valid only for clientAuth can be accepted as the RDP server certificate. In environments relying on EKU separation between client and server certificates, this allows a clientAuth-only certificate issued by a trusted CA to bypass server certificate purpose validation.

## Affected

- `freerdp < 3.29.0`

## Remediation

Upgrade past the affected range:

- `freerdp 3.29.0`
