Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure victim to malicious RDP server
-
DeliveryNegotiate RDPGFX channel during session setup
-
ExploitSend crafted CacheToSurface PDU with oversized cacheEntry dimensions
-
ExecutionBypass clamped rectangle validation in gdi_CacheToSurface
-
PersistTrigger heap out-of-bounds write in client
-
ImpactHijack control flow for code execution as client user
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Heap buffer bounds checking
MITRE ATT&CK
1 technique across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the victim to initiate an RDP session to an attacker-controlled or attacker-compromised RDP server (UI:R user interaction) using a FreeRDP-based client older than 3.26.0 with the RDPGFX (MS-RDPEGFX Graphics Pipeline) channel negotiated and enabled - the upstream default in modern builds, commonly invoked via the /gfx flag or auto-enabled by GUI wrappers like Remmina. No client-side authentication or elevated privileges are needed on the victim host (PR:N), and the attack vector is network (AV:N), but the server-to-client direction means the attacker cannot reach the bug by scanning Internet-exposed RDP listeners; they must induce an outbound connection. Deployments that disable the Graphics Pipeline Extension or restrict outbound RDP to trusted servers are not reachable. |
| Impact | The CVSS 3.1 base of 8.8 (AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H) reflects a network-reachable, unauthenticated, low-complexity flaw with full CIA impact but requiring user interaction - consistent with a malicious-server attack where the user must initiate or accept an RDP connection. Real-world risk is moderated because exploitation is server-to-client (reverse direction from typical RDP attacks), so the attacker must lure a victim into connecting to a hostile server, and the client must have RDPGFX enabled (default in modern FreeRDP builds). EPSS, KEV status, and SSVC decision points are not provided in the supplied intelligence, so probability of in-the-wild exploitation cannot be quantified; the GHSA advisory is the sole reference and no POC is linked. Heap-overflow-to-RCE on a hardened Linux heap (glibc with ASLR/NX) typically requires a tailored exploit, so crash-level impact is highly likely while reliable code execution is plausible but not demonstrated in available data. |
| Exploit ScenarioDerived | An attacker stands up a malicious RDP server and lures a target into connecting - for example, via a phishing email containing an .rdp attachment, a malicious rdp:// URI handler invocation, or a compromised jump-host listing. Once the victim's FreeRDP client negotiates the RDPGFX channel, the server sends a crafted CacheToSurface PDU with oversized cacheEntry width/height, triggering the heap overflow in the client process and resulting in a client crash or, with a tailored payload, code execution in the user's session. No public exploit is identified at time of analysis, so weaponization currently requires the attacker to develop their own heap-grooming chain. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 29, 2026
Heap buffer overflow write in FreeRDP client versions prior to 3.26.0 allows a malicious RDP server to corrupt client memory and potentially achieve code execution when the victim connects with RDPGFX enabled. The flaw resides in gdi_CacheToSurface, where validation uses a clamped destination rectangle while the actual copy uses unclamped cacheEntry width/height values, enabling a large out-of-bounds heap write. No public exploit identified at time of analysis, and the issue is not listed in CISA KEV.
RemediationAI
Upgrade to FreeRDP 3.26.0 or later, which contains the upstream fix correcting gdi_CacheToSurface to use the validated dimensions during the copy; see the vendor advisory at https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-p6r2-4hgm-m6ff for commit details. Where immediate upgrade is not possible, disable the Graphics Pipeline Extension on the client by removing the /gfx (and related /gfx-h264, /gfx-progressive) command-line flags or equivalent configuration in wrappers such as Remmina, which closes the vulnerable code path at the cost of falling back to legacy bitmap codecs with reduced visual quality and higher bandwidth use. Operationally, restrict outbound RDP (TCP/UDP 3389) from end-user workstations to a known allowlist of internal RDP gateways so users cannot be steered to attacker-controlled servers via phishing links or rdp:// handlers, accepting that this breaks ad-hoc connections to external hosts. Downstream Linux distributions should be monitored for backported package updates; verify the installed package version after patching rather than relying solely on distro changelog entries.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
FreeRDP is the widely used open-source implementation of Microsoft's Remote Desktop Protocol, embedded in many Linux remote-desktop clients (Remmina, GNOME Connections, Weston, xrdp tooling) and downstream distributions. The root cause is a CWE-122 heap-based buffer overflow in the RDPGFX (Graphics Pipeline Extension, MS-RDPEGFX) surface caching path: gdi_CacheToSurface clamps the destination rectangle to UINT16_MAX for its bounds check but then performs the memcpy using the attacker-controlled cacheEntry->width and cacheEntry->height fields delivered via crafted RDPGFX PDUs. Because the validated rectangle and the copied region are derived from different values, the size check is effectively bypassed, producing a large out-of-bounds heap write into GDI surface buffers. CPE coverage in NVD is the wildcard cpe:2.3:a:freerdp:freerdp:*, indicating all upstream versions before 3.26.0 share the vulnerable code path.
Know when Freerdp gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.26.0, a malicious RDP server can trigger a heap-buffer-overflow write in the FreeRDP client by sending crafted RDPGFX PDUs. The bug is in gdi_CacheToSurface: it validates a destination rectangle that is clamped to UINT16_MAX, but then performs the copy using the original cacheEntry->width/height. This can cause a large out-of-bounds heap write and may lead to client crashes or code execution. This bug is reachable from a malicious RDP server, but only when the client has RDPGFX enabled. This vulnerability is fixed in 3.26.0.
Executive ViewAI
FreeRDP client versions prior to 3.26.0 contain a heap buffer overflow in the graphics rendering pipeline that allows a malicious RDP server to execute arbitrary code on vulnerable systems. Organizations using FreeRDP for remote access lack a vendor patch and must implement immediate compensating controls to prevent code execution via compromised or attacker-controlled RDP servers.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Disable RDPGFX graphics pipeline in FreeRDP client configuration; (2) Require VPN tunnel for all RDP connections; (3) Implement server-side allowlist restricting RDP access to known trusted systems; (4) Deploy network segmentation limiting RDP protocol to dedicated access infrastructure; (5) Configure endpoint detection and response for abnormal process execution following RDP session establishment.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
A heap overflow occurs when a program writes data beyond the bounds of a buffer allocated in the heap memory region.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Use-after-free in FreeRDP xf_clipboard_format_equal before 3.23.0. Clipboard format comparison uses freed memory. Fifth
Use-after-free in FreeRDP xf_AppUpdateWindowFromSurface before 3.23.0. Surface-to-window update triggers memory corrupti
Use-after-free in FreeRDP xf_SetWindowMinMaxInfo before version 3.23.0. X11 client window management triggers memory cor
Use-after-free in FreeRDP xf_cliprdr_provide_data clipboard handling before 3.23.0. Clipboard data exchange triggers mem
FreeRDP IRP thread handler has a use-after-free where the IRP is freed by Complete() then accessed on the error path. Fi
FreeRDP drive read heap overflow when server-controlled read length exceeds IRP output buffer. Fixed in 3.20.1. PoC avai
FreeRDP client before 3.20.1 has a heap buffer overflow in AUDIN format processing. A malicious RDP server can corrupt m
Use-after-free in FreeRDP xf_AppUpdateWindowFromSurface before 3.23.0. Different code path from CVE-2026-25953. PoC and
FreeRDP is a free implementation of the Remote Desktop Protocol. Rated critical severity (CVSS 9.8), this vulnerability
FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical
FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical
FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical
Same weakness CWE-122 – Heap-based Buffer Overflow
View allVendor StatusVendor
SUSE
Severity: High| Product | Status |
|---|---|
| openSUSE Tumbleweed | Fixed |
| SUSE Linux Enterprise Desktop 15 SP7 | Fixed |
| SUSE Linux Enterprise Desktop 15 SP7 | Fixed |
| SUSE Linux Enterprise Module for Package Hub 15 SP7 | Fixed |
| SUSE Linux Enterprise Module for Package Hub 15 SP7 | Fixed |
| SUSE Linux Enterprise Server 15 SP7 | Fixed |
| SUSE Linux Enterprise Server 15 SP7 | Fixed |
| SUSE Linux Enterprise Server 16.0 | Fixed |
| SUSE Linux Enterprise Server 16.1 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Fixed |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Fixed |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Fixed |
| SUSE Linux Enterprise Workstation Extension 15 SP7 | Fixed |
| SUSE Linux Enterprise Workstation Extension 15 SP7 | Fixed |
| openSUSE Leap 16.0 | Fixed |
| SUSE Linux Enterprise Server 12 SP5 | Fixed |
| SUSE Linux Enterprise Server 12 SP5-LTSS | Fixed |
| SUSE Linux Enterprise Server 12 SP5-LTSS Extended Security | Fixed |
| SUSE Linux Enterprise Server 15 SP4 | Fixed |
| SUSE Linux Enterprise Server 15 SP5 | Fixed |
| SUSE Linux Enterprise Server LTSS Extended Security 12 SP5 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 12 SP5 | Fixed |
| SUSE Linux Enterprise Desktop 12 SP2 | Fixed |
| SUSE Linux Enterprise Desktop 12 SP3 | Fixed |
| SUSE Linux Enterprise Desktop 12 SP4 | Fixed |
| SUSE Linux Enterprise Desktop 15 SP4 | Fixed |
| SUSE Linux Enterprise Desktop 15 SP5 | Fixed |
| SUSE Linux Enterprise Module for Package Hub 15 SP4 | Fixed |
| SUSE Linux Enterprise Module for Package Hub 15 SP5 | Fixed |
| SUSE Linux Enterprise Module for Package Hub 15 SP6 | Fixed |
| SUSE Linux Enterprise Server 12 SP2 | Fixed |
| SUSE Linux Enterprise Server 12 SP3 | Fixed |
| SUSE Linux Enterprise Server 12 SP4 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 12 SP2 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 12 SP3 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 12 SP4 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Fixed |
| SUSE Linux Enterprise Software Development Kit 12 SP2 | Fixed |
| SUSE Linux Enterprise Software Development Kit 12 SP3 | Fixed |
| SUSE Linux Enterprise Software Development Kit 12 SP4 | Fixed |
| SUSE Linux Enterprise Software Development Kit 12 SP5 | Fixed |
| SUSE Linux Enterprise Workstation Extension 12 SP2 | Fixed |
| SUSE Linux Enterprise Workstation Extension 12 SP3 | Fixed |
| SUSE Linux Enterprise Workstation Extension 12 SP4 | Fixed |
| SUSE Linux Enterprise Workstation Extension 12 SP5 | Fixed |
| SUSE Linux Enterprise Workstation Extension 15 SP4 | Fixed |
| SUSE Linux Enterprise Workstation Extension 15 SP5 | Fixed |
| openSUSE Leap 15.4 | Fixed |
| openSUSE Leap 15.5 | Fixed |
EUVD-2026-33433
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB