CVE-2026-25959: 
NixOS vulnerability analysis and mitigation

Overview

CVE-2026-25959 is a heap use-after-free vulnerability in FreeRDP's X11 clipboard redirection handler (xf_cliprdr_provide_data_). It affects all FreeRDP versions prior to 3.23.0 and was disclosed on February 25, 2026, by researcher ehdgks0627 via a GitHub Security Advisory. The vulnerability carries a CVSS v3.1 base score of 9.8 (Critical) per NVD, though the authoritative CVSS v4.0 score assigned by GitHub is 5.5 (Medium), reflecting more constrained practical impact (GitHub Advisory, Red Hat CVE).

Technical details

The root cause is a race condition (CWE-416: Use After Free; CWE-825: Expired Pointer Dereference) between two threads in the FreeRDP X11 client. The cliprdr channel thread calls xf_cliprdr_server_format_data_response, which allocates pDstData via ClipboardGetData, inserts it into clipboard->cachedData via HashTable_Insert, and then passes the same pointer to xf_cliprdr_provide_data_ → XChangeProperty — all without holding any lock. Concurrently, the X11 event thread can call xf_cliprdr_send_format_list → xf_cliprdr_clear_cached_data → HashTable_Clear, which frees all cached entries including pDstData via xf_cached_data_free. This causes XChangeProperty to perform a memcpy on the freed heap region. The fix (commit d3e8b3b) adds HashTable_Lock/HashTable_Unlock around the cache lookup and data provision sequence in xf_cliprdr_process_selection_request (GitHub Advisory, Fix Commit).

Impact

A malicious RDP server can trigger a client-side heap use-after-free during clipboard operations, causing the FreeRDP client to crash (denial of service). Depending on heap allocator behavior and surrounding memory layout, the corruption could theoretically escalate to arbitrary code execution on the connecting client machine, though practical exploitation beyond DoS has not been demonstrated. The vulnerability affects only the X11 client (Linux/Unix desktop environments using xfreerdp with clipboard redirection enabled); Windows and other platform clients are not affected (GitHub Advisory).

Exploitability

A proof-of-concept exploit is publicly documented in the GitHub Security Advisory, including a detailed reproduction procedure using AddressSanitizer. Exploitation requires no authentication and no user interaction — a malicious RDP server can trigger the race condition by responding to CB_FORMAT_DATA_REQUEST with clipboard data while the client concurrently processes clipboard ownership changes. There is no evidence of in-the-wild exploitation at this time. The EPSS score is approximately 0.066% (low probability of near-term exploitation). The vulnerability is not listed in the CISA KEV catalog (GitHub Advisory, Red Hat CVE).

Exploitation steps

  1. Set up a malicious RDP server: Deploy a custom RDP server (e.g., using a modified FreeRDP server or a scripted implementation) that supports the clipboard redirection (cliprdr) virtual channel and responds to CB_FORMAT_DATA_REQUEST with dummy UTF-16LE clipboard data, then disconnects after a short interval to trigger auto-reconnect.
  2. Lure the victim to connect: Induce a target user running xfreerdp (version ≤ 3.22.0 on Linux/X11) to connect to the malicious server with clipboard and auto-reconnect enabled: xfreerdp /v:<attacker_ip>:<port> /u:a /p:a /cert:ignore +clipboard +auto-reconnect /auto-reconnect-max-retries:20.
  3. Trigger concurrent clipboard activity: While the RDP session is active, the malicious server repeatedly sends CB_FORMAT_DATA_RESPONSE messages. Simultaneously, clipboard ownership changes on the X11 side (e.g., via rapid clipboard writes/reads using xclip) cause the X11 event thread to call xf_cliprdr_clear_cached_data → HashTable_Clear.
  4. Race condition triggers UAF: The cliprdr channel thread uses pDstData in XChangeProperty after the X11 thread has freed it via HashTable_Clear, triggering a heap use-after-free. Under AddressSanitizer this is detected as a READ in memcpy inside XChangeProperty on freed memory.
  5. Achieve DoS or potential code execution: The client process crashes (DoS). With a carefully crafted heap layout and allocator timing, an attacker could potentially achieve code execution on the client system, though this has not been publicly demonstrated (GitHub Advisory).

Indicators of compromise

  • Process: Unexpected crash or abort of the xfreerdp process, particularly during active clipboard operations in an RDP session; AddressSanitizer output showing heap-use-after-free in memcpy called from XChangeProperty → xf_cliprdr_provide_data_ → xf_cliprdr_server_format_data_response.
  • Logs: System crash reports or core dumps from the xfreerdp binary; application logs showing repeated RDP reconnection attempts followed by abrupt termination; FreeRDP debug logs (if enabled) showing rapid CB_FORMAT_DATA_RESPONSE processing interleaved with xf_cliprdr_clear_cached_data calls.
  • Network: Unusual RDP traffic patterns from an unexpected server IP, particularly repeated CB_FORMAT_DATA_RESPONSE messages at high frequency; RDP connections to non-standard ports or unrecognized server certificates accepted via /cert:ignore.

Mitigation and workarounds

Upgrade FreeRDP to version 3.23.0 or later, which contains the fix (commit d3e8b3b) that adds proper locking around the clipboard cache access in xf_cliprdr_process_selection_request. Linux distributions including Fedora, Ubuntu, SUSE, and Debian have issued updated packages. If immediate patching is not possible: disable clipboard redirection by omitting the +clipboard flag when launching xfreerdp; restrict network access so users only connect to trusted RDP servers; and monitor for xfreerdp crashes during clipboard use (GitHub Advisory, Fix Commit, Red Hat CVE).

Community reactions

The vulnerability was reported by researcher ehdgks0627 and published by FreeRDP maintainer akallabeth via GitHub Security Advisory on February 25, 2026. Coverage appeared on Phoronix in the context of the FreeRDP 3.23 release, and the vulnerability was picked up by Linux security news aggregators including LinuxSecurity.com (Ubuntu and SUSE advisories), pro-linux.de, and linuxcompatible.org. No significant controversy or broad social media discussion was observed; community response was focused on downstream package updates across major Linux distributions (GitHub Advisory).

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Affected

bookworm

freerdp2

Affected

sid

freerdp3: 3.23.0+dfsg-1

Fixed

trixie

freerdp3: 3.15.0+dfsg-2.1+deb13u1

Fixed

Ubuntu

Fixed

bionic (esm-apps)

freerdp

Unknown

bionic (esm-infra)

freerdp2

Unknown

devel

freerdp3

Not Affected

focal (esm-infra)

freerdp2

Unknown

jammy

freerdp2

Unknown

noble

freerdp3: 3.5.1+dfsg1-0ubuntu1.4

Fixed

noble (esm-apps)

freerdp2

Unknown

questing

freerdp3: 3.16.0+dfsg-2ubuntu0.3

Fixed

RHEL / CentOS

Affected

RHEL 8

freerdp.src

Affected

RHEL 9

freerdp.src

Affected

RHEL 10

freerdp.src

Affected

Alpine

Fixed

edge

freerdp: 3.23.0-r0

Fixed

v3.23

freerdp: 3.23.0-r0

Fixed

Source: This report was generated using AI

Related NixOS vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-112940HIGH7.1
  • Python logoPython
  • py3-filelock
NoYesOct 20, 2026
CVE-2026-112937MEDIUM6.1
  • Python logoPython
  • python-filelock
NoYesOct 20, 2026
CVE-2026-112936MEDIUM6.1
  • Python logoPython
  • python-filelock
NoYesOct 20, 2026
CVE-2026-112939MEDIUM4.7
  • Python logoPython
  • python-filelock
NoYesOct 20, 2026
CVE-2026-112941LOW3.3
  • Python logoPython
  • filelock
NoYesOct 20, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Additional Wiz resources

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management