Skip to main content

FreeRDP EUVDEUVD-2026-115943

| CVE-2026-121411 LOW
Improper Input Validation (CWE-20)
2026-11-03 VulnCheck GHSA-f8g9-jggc-hwp5
2.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Lure victim to connect X11 FreeRDP client to malicious server
  2. Exploit
    Server creates surface then sends oversized MAPSURFACETOSCALEDOUTPUT PDU
  3. Execution
    Unbounded target geometry reaches UINT16 cast or image_scale stride assertion
  4. Impact
    X11 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.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

FreeRDP 0 <3.32.2

Affected Packages

euvd freerdp fix: 3.32.2

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

Vendor (VulnCheck) PRIMARY 2.3 LOW
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
vuln.today AI 3.1 LOW

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.

3.1 AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:L
4.0 AV:N/AC:H/AT:P/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Nov 03, 2026 - 16:17 EUVD

DescriptionCVE.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

Prevalence
Medium
widely-used open-source RDP client, chiefly Linux/X11 desktops and embedders
Social Media
1
Sightings
Data Quality
3 sources
Confidence: Low

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.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Low

Priority Score

12
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +12
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2026-25997 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_clipboard_format_equal before 3.23.0. Clipboard format comparison uses freed memory. Fifth

CVE-2026-25953 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_AppUpdateWindowFromSurface before 3.23.0. Surface-to-window update triggers memory corrupti

CVE-2026-25952 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_SetWindowMinMaxInfo before version 3.23.0. X11 client window management triggers memory cor

CVE-2026-25959 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_cliprdr_provide_data clipboard handling before 3.23.0. Clipboard data exchange triggers mem

CVE-2026-22857 CRITICAL POC
9.8 Jan 14

FreeRDP IRP thread handler has a use-after-free where the IRP is freed by Complete() then accessed on the error path. Fi

CVE-2026-22854 CRITICAL POC
9.8 Jan 14

FreeRDP drive read heap overflow when server-controlled read length exceeds IRP output buffer. Fixed in 3.20.1. PoC avai

CVE-2026-22852 CRITICAL POC
9.8 Jan 14

FreeRDP client before 3.20.1 has a heap buffer overflow in AUDIN format processing. A malicious RDP server can corrupt m

CVE-2026-25955 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_AppUpdateWindowFromSurface before 3.23.0. Different code path from CVE-2026-25953. PoC and

CVE-2024-32041 CRITICAL POC
9.8 Apr 22

FreeRDP is a free implementation of the Remote Desktop Protocol. Rated critical severity (CVSS 9.8), this vulnerability

CVE-2023-40574 CRITICAL POC
9.8 Aug 31

FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical

CVE-2023-40569 CRITICAL POC
9.8 Aug 31

FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical

CVE-2023-40567 CRITICAL POC
9.8 Aug 31

FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy