
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-25952 is a heap use-after-free vulnerability in FreeRDP's X11 client implementation, specifically in the xf_SetWindowMinMaxInfo function. It affects all FreeRDP versions prior to 3.23.0 and arises from a race condition between the RAIL SVC channel thread and the main thread during concurrent window management operations. The vulnerability was disclosed on February 25, 2026, and fixed in version 3.23.0. It carries a CVSS v3.1 base score of 9.8 (Critical) and a CVSS v4.0 base score of 5.5 (Medium) (GitHub Advisory).
The root cause is a use-after-free (CWE-416) race condition in the X11 RAIL client code. The RAIL SVC channel thread (T6) calls xf_rail_get_window in xf_rail_server_min_max_info, which returns an unprotected raw pointer to an xfAppWindow struct from the railWindows hash table. Concurrently, the main thread (T2) processes a window delete order, triggering xf_rail_window_delete → xf_rail_del_window → HashTable_Remove, which invokes the hash table's value destructor rail_window_free → xf_DestroyWindow → free(appWindow). When the RAIL thread subsequently dereferences appWindow->handle inside xf_SetWindowMinMaxInfo via XSetWMNormalHints, the memory has already been freed, resulting in a heap-use-after-free. A proof-of-concept demonstrating the issue with AddressSanitizer output is included in the GitHub security advisory (GitHub Advisory, Patch Commit).
A malicious RDP server can trigger this vulnerability remotely without authentication or user interaction by sending crafted RAIL ServerMinMaxInfo PDUs while simultaneously issuing window delete orders. The primary impact is a client-side crash (denial of service), but depending on heap allocator behavior and surrounding heap layout, the heap corruption could potentially be leveraged for arbitrary code execution on the connecting client. Secondary risks include possible sensitive memory disclosure from the freed heap region (GitHub Advisory).
A proof-of-concept exploit is publicly available via the GitHub security advisory, demonstrating the vulnerability using AddressSanitizer-instrumented builds. The EPSS score is approximately 0.066%, indicating low current exploitation probability. There is no evidence of in-the-wild exploitation at this time, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The vulnerability requires the attacker to control or impersonate an RDP server that supports RAIL (RemoteApp) mode (GitHub Advisory).
xfAppWindow entry in the railWindows hash table (e.g., launch notepad.exe as a RemoteApp).ServerMinMaxInfo PDUs to the client (causing the RAIL channel thread to call xf_rail_get_window and enter xf_SetWindowMinMaxInfo) while simultaneously sending a window delete order (causing the main thread to call HashTable_Remove → xf_DestroyWindow → free(appWindow)).appWindow->handle pointer inside XSetWMNormalHints, triggering a heap-use-after-free. This results in a crash (DoS) or, depending on heap layout, potential code execution on the client (GitHub Advisory).xfreerdp process, particularly when using RemoteApp (/app: mode); crash dumps referencing xf_SetWindowMinMaxInfo, xf_rail_server_min_max_info, or XSetWMNormalHints in the stack trace.heap-use-after-free at xf_window.c:1128 or xf_rail.c:1178; FreeRDP debug logs showing rapid window create/delete cycles for the same window ID.ServerMinMaxInfo PDUs interleaved with window delete orders from the RDP server, observable via packet capture on the RDP session (TCP port 3389).xfreerdp process in the working directory or /var/crash/ following an unexpected termination.Upgrade FreeRDP to version 3.23.0 or later, which resolves the issue by holding the railWindows hash table lock for the entire duration of appWindow usage in all RAIL SVC handler functions (via the new xf_rail_return_window mechanism). If immediate patching is not possible, restrict network access to systems running FreeRDP clients so they can only connect to trusted RDP servers, and avoid using RemoteApp (/app:) mode against untrusted servers. Linux distribution packages (Fedora, Ubuntu, SUSE, AlmaLinux, Rocky Linux, Red Hat, Debian) have released updated packages incorporating the fix (GitHub Advisory, Patch Commit).
The vulnerability was reported by security researcher ehdgks0627 and published by FreeRDP maintainer akallabeth as a GitHub Security Advisory rated "Moderate" on February 25, 2026. Coverage appeared on Phoronix (noting the FreeRDP 3.23.0 release), Linux security news aggregators, and various CVE tracking feeds shortly after disclosure. Multiple Linux distributions (Fedora, Ubuntu, SUSE, AlmaLinux, Rocky Linux, Red Hat, Debian) issued security advisories and updated packages within weeks of the disclosure (GitHub Advisory).
Fix availability across major Linux distributions and their releases.
bookworm
freerdp2
sid
freerdp3: 3.23.0+dfsg-1
trixie
freerdp3: 3.15.0+dfsg-2.1+deb13u1
bionic (esm-apps)
freerdp
bionic (esm-infra)
freerdp2
devel
freerdp3
focal (esm-infra)
freerdp2
jammy
freerdp2
noble
freerdp3: 3.5.1+dfsg1-0ubuntu1.4
noble (esm-apps)
freerdp2
questing
freerdp3: 3.16.0+dfsg-2ubuntu0.3
RHEL 8
:appstream:freerdp-2:2.11.7-9.el8_10.src
RHEL 9
:appstream:freerdp-2:2.4.1-3.el9_0.7.src
RHEL 10
freerdp-2:3.10.3-3.el10_0.7.src
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."