Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessVictim client connects to malicious RDP server
-
ExploitServer sends point-bearing polygon order
-
ExecutionServer sends zero-point polygon order
-
ImpactDouble free crashes async-update client
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Double free prevention
|
| Exploitation Conditions | Exploitation requires that the FreeRDP client be started with the non-default +async-update option - the double free lives in the async-update message proxy and does not occur in default client configurations. The victim must also initiate an RDP connection to an attacker-controlled or compromised server, which then sends a PolygonSC or PolygonCB order containing points followed by a second polygon order with numPoints=0 to trigger the shallow-copy double free. Limiting factors: the +async-update flag is off by default; the attacker must control the server side (no attack against a server, only against a connecting client); user interaction is needed to establish the connection; and impact is confined to crashing the client (availability), with no code execution, data disclosure, or integrity loss. |
| Impact | This is a denial-of-service-only flaw (CWE-415 double free) whose real-world priority is modest. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H) scores 7.1 and reflects availability-only impact with no confidentiality or integrity loss - consistent with the description of a client crash. Critically, the network vector is a REVERSE one: the victim FreeRDP client must connect to an attacker-controlled or compromised RDP server (UI:P), and the vulnerable code path only exists when the client is explicitly launched with the non-default +async-update option. That configuration dependency is a significant limiter the CVSS base vector does not fully capture (it encodes AC:L/AT:N, i.e. no special attack requirement, which arguably understates the +async-update prerequisite). No EPSS score was provided, the CVE is not listed in CISA KEV, and no public exploit code was identified in the supplied intelligence, so there is no evidence of active or widespread exploitation. Net assessment: a legitimate bug worth patching on the normal cycle, but not an emergency - the combination of DoS-only impact, required malicious-server positioning, and dependency on a non-default flag keeps real-world risk low relative to the 7.1 headline score. |
| Exploit ScenarioDerived | An attacker who operates or has compromised an RDP server (or lures a user to connect via a malicious .rdp file) waits for a FreeRDP client running with +async-update to connect. The server then sends a PolygonSC or PolygonCB drawing order carrying points, immediately followed by a zero-point polygon order, causing both the async-update queue consumer and the parser cleanup to free the same points array and crash the client. No public exploit code was identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 13, 2026
Denial of service in FreeRDP clients: versions 3.29.0 through 3.31.x contain a double free (CWE-415) in the async-update message proxy that a malicious or compromised RDP server can trigger by sending a point-bearing PolygonSC or PolygonCB order followed by a second polygon order with numPoints set to zero, crashing the connecting client. Exploitation requires the victim to connect to an attacker-controlled server and to have launched the client with the non-default +async-update option, so default client configurations are not exposed; user interaction is needed to initiate the connection, and impact is limited to availability with no code execution, data disclosure, or integrity loss. There is no confirmation of active exploitation (no CISA KEV listing) and no public exploit identified at time of analysis; the observed CVSS 4.0 score of 7.1 is driven by the availability impact.
RemediationAI
Upgrade to FreeRDP 3.32.0 or later, which is the vendor-released fix for this double free; the advisory at https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-pg3f-chj4-mrw6 tracks the corrected release and affected range. If an immediate upgrade is not possible, the most direct compensating control is to stop launching clients with the +async-update option - the flag is off by default, and this code path is where the double free lives, so removing it eliminates exposure entirely; the trade-off is the loss of the asynchronous update performance and rendering behavior that motivated enabling the flag. Additionally, since the attack requires the client to connect to a hostile or compromised RDP server, restrict outbound RDP connections to trusted, known-good endpoints and avoid connecting clients to untrusted servers; this limits reachability but does not fix the underlying memory-management defect and is not a substitute for patching. Because impact is confined to a client crash, monitoring for repeated client aborts or abnormal terminations on hosts using +async-update can serve as a detection signal for exploitation attempts.
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 an open-source implementation of the Remote Desktop Protocol (RDP) used by clients such as wlfreerdp, xfreerdp, and library consumers. Under CWE-415 (double free), the flaw is a memory-lifetime management defect in the client's asynchronous update message proxy. When a polygon order arrives with a non-zero point count, the proxy shallow-copies the parser-owned PolygonSC or PolygonCB points array rather than taking ownership of a deep copy; if numPoints is zero, that shallow reference is retained and subsequently freed by both the queue consumer and the parser's own cleanup path. The result is a double free that corrupts the heap and aborts the client. The affected code path only exists when the client is started with the +async-update option, which is off by default; the CPE cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:* indicates the FreeRDP product as a whole is in scope, with the vulnerable range spanning 3.29.0 up to (but not including) the 3.32.0 release. No server-side code is affected, since the defect is in client-side message proxying.
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:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Malicious server attacks a connecting client so AV:N with UI:R; triggering the double free needs no authentication (PR:N) and only crashes the client, giving A:H with C:N/I:N.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
FreeRDP 3.29.0 before 3.32.0 contains a double free in the client's async-update message proxy, which shallow-copies the parser-owned PolygonSC or PolygonCB points array when numPoints is zero, so both the queue consumer and parser cleanup free it. A malicious RDP server can send a point-bearing polygon order followed by a zero-point order to crash a client with +async-update enabled.
Technical POC Analysis
CWE-415 double free, with CWE-416 use-after-free as a downstream consequence, in the FreeRDP client async-update message proxy: updatemessagePolygonSC and updatemessagePolygonCB in libfreerdp/core/me…
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
FreeRDP client versions 3.29.0 through 3.31.x contain a high-severity availability flaw that can crash the connecting client when a user connects to a malicious or compromised RDP server with the non-default +async-update option enabled. Default configurations are not exposed, there is no confirmed active exploitation and no public exploit identified at time of analysis, so organizational risk is concentrated in specialized deployments that require this option. Leadership should direct inventory and temporary configuration restrictions while awaiting a vendor patch.
Disable or remove the non-default +async-update option; restrict FreeRDP client connections to trusted or allowlisted RDP servers/gateways; monitor and alert on client crashes; track vendor advisory for a 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
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
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
EUVD-2026-98708
GHSA-5rf6-rg39-rmc3
NVD
CVE.org
EPSS
Exploit-DB