Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAttacker operates malicious RDP server
-
DeliveryVictim connects with /async-update enabled
-
ExploitServer sends crafted RAIL WINDOW_ORDER_ICON order
-
InstallShallow CopyMemory() aliases iconInfo to parser-owned pointer
-
C2Parser callback frees iconInfo on return
-
ExecuteAsync thread dispatches stale freed pointer
-
ImpactHeap use-after-free crashes client
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory lifecycle management
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | AsyncUpdate must be explicitly enabled on the FreeRDP client via the /async-update command-line flag or equivalent API configuration - this is not the default behavior. The victim must connect to an attacker-controlled or compromised RDP server. The server must transmit a specially crafted RAIL Window Alternate Secondary Order with WINDOW_ORDER_ICON set. Limiting factors: the vulnerability is entirely client-side and cannot be triggered without the victim initiating a connection to the malicious server; all default FreeRDP deployments lacking /async-update are unaffected regardless of server behavior; no authentication or privileges are required of the attacker beyond operating an accessible RDP server endpoint. |
| Impact | The vendor-assigned CVSS 4.0 score of 8.7 (AV:N/AC:L/AT:N/PR:N/UI:N/VA:H) reflects a network-reachable, unauthenticated availability impact, but the AT:N metric appears inconsistent with the exploitation condition: AsyncUpdate must be explicitly enabled via /async-update, which is not the default FreeRDP configuration. This gating condition materially reduces the exploitable population below what AT:N implies. No EPSS data was supplied; no CISA KEV listing exists; no public proof-of-concept has been identified, making this a theoretical-but-credible threat rather than an actively exploited one. The impact is limited to client crash and heap memory corruption with no confidentiality or integrity consequence, which constrains attacker value to denial-of-service. In environments running headless or automated RDP sessions with AsyncUpdate enabled (e.g., Guacamole backends, thin-client farms), repeated crashes could cause meaningful service disruption. Overall real-world priority is moderate: high urgency only in AsyncUpdate-enabled deployments; low urgency elsewhere. |
| Exploit ScenarioDerived | An attacker operates or compromises an RDP server endpoint and social-engineers a user running xfreerdp with the /async-update flag to connect to it. Once the session is established, the server sends a crafted RAIL Window Alternate Secondary Order carrying a WINDOW_ORDER_ICON payload, triggering the shallow copy bug in the async update proxy. The freed iconInfo pointer is subsequently dispatched by the async update thread, corrupting heap memory and crashing the FreeRDP client process; no public proof-of-concept has been identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 01, 2026
Heap use-after-free in FreeRDP's async update message proxy allows a malicious or compromised RDP server to crash the client and corrupt heap memory through a crafted RAIL WINDOW_ORDER_ICON message. The flaw is gated on the AsyncUpdate feature being explicitly enabled via the /async-update flag - a non-default client configuration - which limits real-world exposure relative to the CVSS 4.0 score of 8.7. All FreeRDP versions prior to 3.29.0 (CPE: cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:*) are affected; no public exploit or CISA KEV listing has been identified at time of analysis.
RemediationAI
Upgrade FreeRDP to version 3.29.0 or later per the security advisory at https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-34hq-hwjw-q8v3. The upstream fix is available in commit 5370fb26fbf034ecd11d3026b6ad639b5fff493f (https://github.com/FreeRDP/FreeRDP/commit/5370fb26fbf034ecd11d3026b6ad639b5fff493f), though the commit diff reflects a version string of 3.28.0 rather than 3.29.0 - verify the authoritative fix version against the FreeRDP GitHub releases before deploying. As an immediate compensating control requiring no upgrade, remove the /async-update flag from all xfreerdp invocations and equivalent programmatic configurations; this eliminates the vulnerable code path entirely since AsyncUpdate is a performance optimization and not required for core RDP functionality, with no side effects on session correctness.
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 implements the Microsoft Remote Desktop Protocol client stack, including RAIL (Remote Applications Integrated Locally) extensions for windowed remote applications. CWE-416 (Use After Free) manifests in the async update message proxy path active when AsyncUpdate mode is enabled. In update_message_WindowIcon(), a shallow CopyMemory() call copies the parser-owned windowIcon->iconInfo pointer directly into lParam->iconInfo of a newly queued async message rather than performing a deep allocation and copy. When the parser callback update_recv_window_info_order() returns, it frees window_icon.iconInfo. The async dispatch queue, however, retains the now-freed pointer. When the queued WINDOW_ICON_ORDER message is later dispatched on the update thread, it dereferences the stale iconInfo pointer, producing a heap use-after-free. The affected CPE (cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:*) covers all FreeRDP builds and platforms that include this async proxy 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
AsyncUpdate non-default config raises AC:H; user must actively connect to attacker server (UI:R); impact is crash only with no C or I consequence.
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
FreeRDP before 3.29.0 contains a client-side heap use-after-free in the async update message proxy for WINDOW_ICON_ORDER when AsyncUpdate is enabled (e.g. xfreerdp /async-update). In update_message_WindowIcon() a shallow CopyMemory() overwrites a freshly allocated lParam->iconInfo with the parser-owned windowIcon->iconInfo pointer. After the parser callback returns, update_recv_window_info_order() frees window_icon.iconInfo, but the queued async message still retains and later dispatches that stale pointer. A malicious or compromised RDP server sending a crafted RAIL Window Alternate Secondary Order with WINDOW_ORDER_ICON can trigger use-after-free, leading to memory corruption and client crash.
Executive ViewAI
FreeRDP client versions prior to 3.29.0 contain a vulnerability allowing malicious RDP servers to crash client systems and corrupt memory. Organizations with FreeRDP deployments-especially those using the async-update feature-could face denial of service and data integrity risks from compromised or hostile remote servers. Immediate patching to version 3.29.0 eliminates exposure to this high-severity flaw.
Apply vendor patch.
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.
Use-after-free vulnerabilities occur when a program continues to access memory through a pointer after that memory has been deallocated.
Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.
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-416 – Use After Free
View allSame technique Buffer Overflow
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise Desktop 15 SP7 | Affected |
| SUSE Linux Enterprise Desktop 15 SP7 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP7 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP7 | Affected |
| SUSE Linux Enterprise Server 15 SP7 | Affected |
| SUSE Linux Enterprise Server 15 SP7 | Affected |
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| SUSE Linux Enterprise Workstation Extension 15 SP7 | Affected |
| SUSE Linux Enterprise Workstation Extension 15 SP7 | Affected |
| openSUSE Leap 16.0 | Affected |
| SUSE Linux Enterprise High Performance Computing 12 SP5 | Affected |
| SUSE Linux Enterprise Server 12 SP5 | Affected |
| SUSE Linux Enterprise Server 12 SP5-LTSS | Affected |
| SUSE Linux Enterprise Server 12 SP5-LTSS Extended Security | Affected |
| SUSE Linux Enterprise Server 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP5 | Affected |
| SUSE Linux Enterprise Server 15 SP6 | Affected |
| SUSE Linux Enterprise Server LTSS Extended Security 12 SP5 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 12 SP5 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Affected |
| SUSE Linux Enterprise Desktop 12 SP2 | Affected |
| SUSE Linux Enterprise Desktop 12 SP3 | Affected |
| SUSE Linux Enterprise Desktop 12 SP4 | Affected |
| SUSE Linux Enterprise Desktop 15 SP4 | Affected |
| SUSE Linux Enterprise Desktop 15 SP5 | Affected |
| SUSE Linux Enterprise Desktop 15 SP6 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP4 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP6 | Affected |
| SUSE Linux Enterprise Server 12 SP2 | Affected |
| SUSE Linux Enterprise Server 12 SP3 | Affected |
| SUSE Linux Enterprise Server 12 SP4 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 12 SP2 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 12 SP3 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 12 SP4 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Affected |
| SUSE Linux Enterprise Software Development Kit 12 SP2 | Affected |
| SUSE Linux Enterprise Software Development Kit 12 SP3 | Affected |
| SUSE Linux Enterprise Software Development Kit 12 SP4 | Affected |
| SUSE Linux Enterprise Software Development Kit 12 SP5 | Affected |
| SUSE Linux Enterprise Workstation Extension 12 SP2 | Affected |
| SUSE Linux Enterprise Workstation Extension 12 SP3 | Affected |
| SUSE Linux Enterprise Workstation Extension 12 SP4 | Affected |
| SUSE Linux Enterprise Workstation Extension 12 SP5 | Affected |
| SUSE Linux Enterprise Workstation Extension 15 SP4 | Affected |
| SUSE Linux Enterprise Workstation Extension 15 SP5 | Affected |
| SUSE Linux Enterprise Workstation Extension 15 SP6 | Affected |
| openSUSE Leap 15.4 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
EUVD-2026-51820
GHSA-jq8c-588g-4wgj
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB