
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-25941 is an out-of-bounds read vulnerability in the FreeRDP client's RDPGFX channel, specifically in the handling of WIRE_TO_SURFACE_2 PDUs. A malicious RDP server can exploit this by sending a crafted PDU with a bitmapDataLength value larger than the actual data in the packet, causing the client to read uninitialized heap memory. Affected versions include FreeRDP 2.x prior to 2.11.8 and 3.x prior to 3.23.0. The vulnerability was published on February 25, 2026, and patched versions were released the same day. The GitHub Security Advisory assigns a CVSS v3.1 score of 4.3 (Moderate), while Feedly's aggregated data reflects a higher score of 8.1 (High) based on confidentiality and availability impact (GitHub Advisory).
The root cause is improper input validation (CWE-20) leading to an out-of-bounds read (CWE-125) in the rdpgfx_recv_wire_to_surface_2_pdu function in channels/rdpgfx/client/rdpgfx_main.c. The function reads bitmapDataLength from the incoming PDU and calls Stream_Seek() to advance the stream pointer by that amount without first validating that sufficient data exists in the stream — unlike the analogous rdpgfx_recv_wire_to_surface_1_pdu function, which correctly calls Stream_CheckAndLogRequiredLength() before seeking. In release builds, even the buffer-capacity assertion in Stream_Seek() is disabled, making the issue exploitable without triggering any runtime checks. The attack vector is network-based and requires user interaction (the victim must connect to a malicious RDP server), but no authentication on the server side is needed. A PoC demonstrating the issue with AddressSanitizer was included in the security advisory, showing a heap-buffer-overflow read of 240 bytes beyond a 37-byte valid PDU buffer (GitHub Advisory, Patch Commit).
Successful exploitation allows a malicious RDP server to read uninitialized heap memory from the connecting FreeRDP client, potentially exposing sensitive data such as credentials, session tokens, or other in-memory content (confidentiality impact). Additionally, the out-of-bounds read can cause the FreeRDP client to crash, resulting in a denial of service for the user (availability impact). There is no integrity impact, and the scope is limited to the affected client process; lateral movement from this vulnerability alone is not directly facilitated (GitHub Advisory).
A proof-of-concept exploit was published as part of the GitHub Security Advisory at the time of disclosure on February 25, 2026, demonstrating the heap-buffer-overflow with AddressSanitizer (GitHub Advisory). As of the available data, there is no evidence of active in-the-wild exploitation, and no threat actor attribution has been reported. The EPSS score is approximately 0.041% (0.000410), indicating a low probability of exploitation in the near term. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog.
0x0002 containing:surfaceId, codecId, codecContextId, pixelFormat (13 bytes)bitmapDataLength field set to a large value (e.g., 256)rdpgfx_recv_wire_to_surface_2_pdu function reads bitmapDataLength and calls Stream_Seek() without validation, causing downstream codec processing to read beyond the valid buffer into uninitialized heap memory.0x0002) with anomalously large bitmapDataLength values relative to actual packet size.xfreerdp, wfreerdp, or similar) crashing unexpectedly or exiting with memory access errors; AddressSanitizer output referencing rdpgfx_recv_wire_to_surface_2_pdu or rdpgfx_main.c in debug builds.Upgrade FreeRDP to version 2.11.8 (for the 2.x branch) or 3.23.0 (for the 3.x branch), which add a Stream_CheckAndLogRequiredLength (or Stream_SafeSeek) validation before the Stream_Seek() call in rdpgfx_recv_wire_to_surface_2_pdu (Patch Commit). As an interim workaround, restrict users from connecting to untrusted or unknown RDP servers, and implement network controls (e.g., firewall rules or VPN policies) to limit RDP connections to known, trusted endpoints. Linux distribution users should apply vendor-provided package updates as they become available (e.g., Fedora, Ubuntu, SUSE, Debian, Amazon Linux 2 packages have been updated) (GitHub Advisory).
The vulnerability was reported by Pavel Kohout of Aisle Research and published via GitHub's security advisory system on February 25, 2026. Coverage appeared on Phoronix noting the FreeRDP 3.23 release, and Linux distribution security channels (Fedora, SUSE, Ubuntu, Debian, Amazon Linux) issued advisories and package updates in the weeks following disclosure. No significant independent researcher commentary or social media controversy has been observed beyond routine CVE tracking and distribution patching activity.
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."