Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure victim to connect X11 FreeRDP client to malicious server
-
ExploitServer creates surface then sends oversized MAPSURFACETOSCALEDOUTPUT PDU
-
ExecutionUnbounded target geometry reaches UINT16 cast or image_scale stride assertion
-
ImpactX11 client aborts (denial of service)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
|
| Exploitation Conditions | The victim must run an X11 FreeRDP client with the RDPGFX channel active and connect to an attacker-controlled or compromised RDP server; the server must first create a surface and then map it to oversized scaled output via MAPSURFACETOSCALEDOUTPUT. Two concrete trigger paths are documented: (1) the default software-GDI path additionally requires a later X Expose event reaching xf_OutputExpose's checked UINT16 cast, which in the preserved evidence only aborts in verbose/checked-cast (assert-enabled) builds; (2) the hardware-GDI path requires '/gdi:hw' plus a local X visual whose color format allocates a stage buffer (the preserved 24-bit Xvfb visual did not create one), so that oversized dwidth reaches freerdp_image_scale's destination-stride assertion. Limiting factors: exploitation needs victim-initiated connection to the malicious server (UI:P), high attack complexity (AC:H) and a passive attack requirement (AT:P), and the demonstrated aborts depend on specific build/visual/assert configurations rather than a default stock build; no live wire-to-abort session was preserved. |
| Impact | All signals point to a genuinely low-priority issue rather than a high-CVSS-but-overrated one - the inputs are internally consistent. The CVSS 4.0 base score is only 2.3 with AV:N/AC:H/AT:P/PR:N/UI:P and the sole impact being VA:L (client availability); there is no confidentiality or integrity impact, and the vuln.today decision label is 'monitor'. The flaw is a client-side denial of service: a malicious RDP server can abort an X11 FreeRDP client, not execute code (the conditional heap-write theory for optional SWSCALE/Cairo builds is explicitly stated as untested). This is not in CISA KEV, so exploitation status is 'no confirmed active exploitation'; a public PoC reference exists but it is not verified as working exploit code - only focused unit-style harnesses that bypass the RDPGFX wire parser, with no preserved full-session malicious-server replay. No EPSS score was provided in the input, so probabilistic exploitation likelihood cannot be quantified here. The high attack complexity (AC:H), passive attack requirement (AT:P), and need for the victim to initiate a connection to an attacker-controlled server (UI:P) further depress real-world risk. Net: low priority - appropriate to patch on a normal cycle, not an emergency. |
| Exploit ScenarioDerived | An attacker stands up or compromises an RDP server; when a victim connects an X11 FreeRDP client with RDPGFX enabled, the server creates a surface and then sends a MAPSURFACETOSCALEDOUTPUT PDU carrying oversized targetWidth/targetHeight/output-origin values, which FreeRDP stores unbounded and later feeds into a checked UINT16 cast or a freerdp_image_scale stride assertion, aborting the client. A public PoC reference exists but it is not verified as working exploit code - only focused harnesses were preserved, and the demonstrated aborts (exit 134) occurred in assert-enabled builds; no live full-session network trigger was observed. The high complexity and the requirement that the victim connect to the malicious server make this an opportunistic nuisance crash rather than a reliable remote attack. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 03, 2026
FreeRDP X11 clients through 3.32.1 can be terminated by a malicious or compromised RDP server that supplies oversized target dimensions or output origin in an RDPGFX MAPSURFACETOSCALEDOUTPUT PDU, because the values are stored verbatim and later reach a checked UINT16 cast or a destination-stride assertion. Impact is availability-only client abort (no confidentiality or integrity effect) and the assessed vector is AV:N/AC:H/PR:N/UI:R with the victim required to initiate a connection to the attacker's server; two documented trigger paths depend on specific build, assert and X visual configurations rather than a stock default build. No active exploitation is confirmed (not in CISA KEV), the priority label is monitor, and a public PoC reference in the vendor advisory is a focused harness rather than verified working exploit code.
RemediationAI
Vendor-released patch: upgrade to FreeRDP 3.32.2 or later, as referenced in GHSA-wffv-rjv2-h2x2 (https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-wffv-rjv2-h2x2) and the VulnCheck advisory; the upstream fix validates the server's output origin and scaled target geometry in wide arithmetic before storing it, and rejects extents outside the client's supported coordinate and display limits. Until upgrading, the practical exposure control is connection hygiene: only attach X11 FreeRDP clients to RDP servers you trust, since the attack requires the victim to connect to an attacker-controlled or compromised server. Where hardware acceleration is not needed, avoid '/gdi:hw' for connections to untrusted hosts, because the freerdp_image_scale stage-buffer stride assertion is only reachable on that optional path and only with an X visual whose color format allocates a stage buffer; the trade-off is loss of hardware-GDI acceleration. Note that the default software-GDI path still retains a source-supported X Expose route to the checked UINT16 cast, so build configuration is not a reliable substitute for the 3.32.2 upgrade.
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
The flaw sits in the RDPGFX dynamic virtual channel handling of MAPSURFACETOSCALEDOUTPUT. rdpgfx_recv_map_surface_to_scaled_output_pdu in channels/rdpgfx/client/rdpgfx_main.c reads server-supplied 32-bit targetWidth, targetHeight and output origin, and gdi_MapSurfaceToScaledOutput in libfreerdp/gdi/gfx.c stores them without bounding them to X11 coordinates or buffers. This is an input-validation defect (CWE-20) that escalates into reachable assertions (CWE-617). On the default software-GDI path, gdi_OutputUpdate clamps painting to the local desktop, but a later X Expose event reaching xf_OutputExpose in client/X11/xf_gfx.c casts the stored output extent to UINT16, which aborts only in verbose/checked-cast (assert-enabled) builds. On the optional hardware-GDI path, xf_OutputUpdate computes scaled output dimensions and calls freerdp_image_scale without validating the fixed-size stage buffer, tripping the destination-stride assertion; this requires /gdi:hw plus an X visual whose color format actually allocates a stage buffer - the preserved 24-bit Xvfb visual did not create one. A conditional heap-write theory for SWSCALE/Cairo builds remains untested. The trigger is server-driven geometry in the RDPGFX channel, exercised through an X Expose callback or the hardware-GDI scaling call; no full wire-to-abort session was preserved.
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:H/AT:P/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Malicious server crashes the connecting X11 client, so AV:N/UI:R and A:L only; AC:H reflects the build/visual/Expose preconditions, with no confidentiality or integrity impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
FreeRDP before 3.32.2 fails to bound server-supplied target dimensions and output origin in RDPGFX MAPSURFACETOSCALEDOUTPUT PDUs, allowing malicious RDP servers to abort X11 clients. Attackers can map a surface to oversized scaled output, triggering checked UINT16 cast or freerdp_image_scale stride assertion failures that terminate the client.
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-115943
GHSA-f8g9-jggc-hwp5
NVD
CVE.org
Exploit-DB