
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-25953 is a heap use-after-free (UAF) vulnerability in FreeRDP, a free implementation of the Remote Desktop Protocol, affecting all versions prior to 3.23.0. The flaw exists in the xf_AppUpdateWindowFromSurface function within the X11 client, where a race condition between two threads allows access to freed memory. It was disclosed on February 25, 2026, and patched in version 3.23.0. The vulnerability carries a CVSS v3.1 base score of 9.8 (Critical) (FreeRDP Advisory).
The root cause is a thread-safety flaw classified as CWE-416 (Use After Free). The RDPGFX DVC thread processes EndFrame PDUs, triggering gdi_UpdateSurfaces → gdi_WindowUpdate → xf_AppUpdateWindowFromSurface, which calls xf_rail_get_window to obtain a bare (unprotected) pointer to an xfAppWindow object. Concurrently, the main thread can process a fastpath window-delete order, calling xf_rail_window_delete → xf_rail_del_window → HashTable_Remove → rail_window_free → xf_DestroyWindow → free(appWindow). Because the two threads hold different locks (context->mux for the GFX thread and rdp_update_lock for the main thread), there is no serialization between them, allowing the DVC thread to dereference the freed appWindow pointer at fields such as surfaceId, width, and height. The same pattern also exists in xf_rail_paint_surface. The fix (commit 1994e98) introduces hash table locking around xf_rail_get_window and a paired xf_rail_return_window function to hold the lock until the caller is done with the pointer (FreeRDP Advisory, FreeRDP Commit).
Successful exploitation by a malicious RDP server (or via a man-in-the-middle position) can cause a client-side heap use-after-free, resulting in a crash (denial of service) or heap corruption. Depending on allocator behavior and surrounding heap layout, the corruption may be leveraged for arbitrary code execution on the connecting client system. The attack requires no authentication and no user interaction beyond the client initiating an RDP connection to a malicious server (FreeRDP Advisory).
A proof-of-concept scenario is documented in the GitHub Security Advisory (GHSA-p6rq-rxpc-rh3p), including AddressSanitizer output confirming the UAF, but no standalone weaponized exploit code has been publicly released. The CVSS v4.0 exploit maturity is rated as PROOF_OF_CONCEPT. There is no evidence of in-the-wild exploitation as of the time of this report, and the vulnerability is not listed in the CISA KEV catalog. The EPSS score is approximately 0.066%, indicating low current exploitation probability. The vulnerability is network-exploitable with no privileges or user interaction required (FreeRDP Advisory).
/gdi:sw /gfx /app:program:notepad.exe /cert:ignore.MapSurfaceToWindow PDU, establishing the window-to-surface association in the client.gdi_EndFrame → gdi_UpdateSurfaces → xf_AppUpdateWindowFromSurface, holding a bare pointer to the xfAppWindow.xfAppWindow via xf_DestroyWindow.appWindow pointer (e.g., at appWindow->surfaceId, appWindow->width, appWindow->height), triggering the heap use-after-free, which causes a crash or, under favorable heap conditions, code execution (FreeRDP Advisory).xfreerdp) crashes unexpectedly, particularly when using RemoteApp mode (/app: flag) with GFX acceleration (/gfx).heap-use-after-free in xf_AppUpdateWindowFromSurface at xf_window.c:1484; crash dumps referencing gdi_EndFrame, gdi_UpdateSurfaces, or rdpgfx_recv_end_frame_pdu in the stack trace.xfreerdp process in the working directory or /var/crash/.Upgrade FreeRDP to version 3.23.0 or later, which introduces hash table locking in xf_rail_get_window and a paired xf_rail_return_window function to prevent concurrent access to freed window objects (FreeRDP Commit). As a workaround until patching is complete, restrict FreeRDP client connections to trusted RDP servers only, and avoid using RemoteApp mode (/app:) with GFX acceleration (/gfx) when connecting to untrusted servers. Implement network segmentation to limit exposure of RDP client systems to potentially malicious servers. Linux distribution packages (Fedora, Ubuntu, SUSE, Debian, Amazon Linux 2) have begun shipping updated packages; consult your distribution's security advisories for specific package versions.
The vulnerability was reported by researcher ehdgks0627 and published by FreeRDP maintainer akallabeth via GitHub Security Advisory GHSA-p6rq-rxpc-rh3p on February 25, 2026 (FreeRDP Advisory). Coverage appeared on Phoronix noting the FreeRDP 3.23.0 release, and security tracking sites including Tenable Nessus (multiple plugin IDs), Qualys, and VulDB added detection shortly after disclosure. Linux distribution security teams for Fedora, Ubuntu, SUSE, Debian, and Amazon Linux 2 issued advisories and updated packages in the weeks following disclosure.
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
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."