← News
/DISPATCH · 2026-08-03

CVE-2026-67305: FreeRDP Windows Client Clipboard Heap Buffer Overflow, CVSS 9.4

FreeRDP Windows client (wfreerdp) disclosed CVE-2026-67305 heap buffer overflow, CVSS v4.0 9.4. Clipboard virtual channel fails to validate server-returned size when handling CLIPRDR_FILE_CONTENTS_RESPONSE PDU. A malicious RDP server can trigger heap corruption on paste, yielding RCE as the client process. Affects 3.28.0 and earlier; fixed in 3.29.0.

On 1 August 2026, the FreeRDP project disclosed a heap buffer overflow in the Windows client (`wfreerdp.exe`), tracked as CVE-2026-67305, CVSS v4.0 9.4 (Critical). The flaw sits in the Clipboard Virtual Channel path that handles the `CLIPRDR_FILE_CONTENTS_RESPONSE` PDU. Missing bounds checks on the server-returned data size let a malicious RDP server trigger arbitrary heap corruption when the user pastes (Ctrl+V), yielding remote code execution as the FreeRDP client process. Reported by researcher hyperlyz; FreeRDP shipped 3.29.0 the same day.

1. Incident Overview

FreeRDP is a widely used open-source RDP (Remote Desktop Protocol) implementation, common for Linux desktops connecting to Windows jump hosts, ops bastions, and remote support. The Windows `wfreerdp` client enables Clipboard Redirection by default, so copy/paste in the remote desktop window moves clipboard data over a virtual channel between client and server. The bug is in that channel's Windows client parse logic.

2. Technical Details

Classified as CWE-122 Heap-based Buffer Overflow. Root cause: a server-controlled length is passed straight to `CopyMemory()` without comparing against the destination buffer size. The path spans three functions:

When the client requests cb bytes of file content, a malicious server returns a PDU with `dataLen` far larger than cb: the parser computes `cbRequested = dataLen - 4` with no upper bound and assigns it to `clipboard->req_fsize`; then `CliprdrStream_Read()` calls `CopyMemory(pv, req_fdata, req_fsize)`, writing up to 65,536 bytes into a buffer allocated for only cb (e.g. 16,384 bytes), an out-of-bounds heap write of about 49,152 bytes.

Exploit requires:

3. Impact Assessment

CVSS v4.0 vector `AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H` — only `UI:P` (user must paste) limits the bar; all other dimensions are worst-case. Once RCE is achieved, code runs as the FreeRDP client process:

Given RDP clients are common in remote support, ops jump hosts, and remote development — high-privilege contexts — real-world impact often exceeds the CVSS score.

4. Remediation

4.1 Immediate Fix

4.2 Temporary Mitigation (when upgrade is not immediate)

4.3 Hardening

5. References