Skip to main content

FreeRDP EUVDEUVD-2026-115942

| CVE-2026-121410 MEDIUM
Divide By Zero (CWE-369)
2026-11-03 VulnCheck GHSA-g85x-mwp4-56v4
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Lure client to malicious RDP server
  2. Delivery
    Negotiate active RDPGFX graphics pipeline
  3. Exploit
    Create surface then send zero-dimension WIRETOSURFACE_2 PDU
  4. Execution
    Trigger assert / division-by-zero on zero size
  5. Impact
    Terminate victim client session

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Division safety checks
Exploitation Conditions

The victim's FreeRDP client must initiate a connection to a malicious or compromised RDP server with the RDPGFX graphics pipeline active (AUTODETECT enables it in the assessed client source). The server must open the RDPGFX dynamic channel, create a valid surface, and then send a crafted uncompressed ALPHA WIRETOSURFACE_2 PDU (payload 4c 41 00 00) carrying zero width and zero height, which passes zero as an element size to Stream_CheckAndLogRequiredLengthEx. Limiting factors: exploitation is client-side and requires a user-initiated connection to the attacker's server (UI:P), not a push against a listening service; the confirmed session termination was observed only on builds compiled with verbose WINPR assertions, and on builds without that assertion the termination relies on a subsequent division-by-zero that the advisory describes as plausible but did not execute in the preserved live test.

Impact

This is a medium-severity, client-side denial-of-service issue, not a high-priority emergency. The CVSS 4.0 base score of 5.3 is consistent with the vector: AV:N but UI:P means exploitation flows in the reverse direction - a FreeRDP client must itself connect to an attacker-controlled or compromised RDP server, and the only impact is availability (VA:L); there is no confidentiality or integrity impact and no demonstrated memory corruption or code execution. PR:N indicates no authentication to the malicious server is needed. The vuln.today decision label is 'this_month' (not act_now/emergency), and the issue is not listed in CISA KEV; no EPSS probability was supplied in the input, so widespread-exploitation likelihood cannot be quantified from the data. A public PoC reference exists but it is a handler-level reproducer plus a documented live wire command, not a verified standalone live RDP-server exploit. A key caveat weakens real-world impact: the confirmed client abort (exit 134) was observed only on verbose-WINPR-assert builds via WINPR_ASSERT(size > 0); in production builds without that assertion, termination depends on a following division-by-zero that the advisory calls plausible but states was not executed in the preserved live test. One data conflict must be flagged: the CVE description and package metadata say the flaw is fixed in 3.32.2, while the GHSA advisory body states 'No fixed release was identified' - treat 3.32.2 as the fix but verify, as the advisory text may predate the release.

Exploit ScenarioDerived

An attacker lures or redirects a victim running a FreeRDP-based client (with the RDPGFX graphics pipeline active) into connecting to a malicious or compromised RDP server. After the graphics channel is up and a surface is created, the server sends a crafted ALPHA WIRETOSURFACE_2 PDU (payload 4c 41 00 00) with zero width and height, terminating the victim's client session. A public handler-level PoC reference exists but is not verified as a working live-server exploit; attack complexity is low (AC:L) but it requires the victim to initiate the connection (UI:P).

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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 clients up to and including 3.32.1 can be terminated by a malicious or compromised RDP server that sends a crafted ALPHA WIRETOSURFACE_2 graphics-pipeline command with zero width and zero height. The session crash is client-side and requires the victim to connect to the attacker's server with RDPGFX active (AUTODETECT enables it), so exploitation depends on a user-initiated connection rather than an exposed listening service. Confirmed termination was observed on builds compiled with verbose WINPR assertions, where an element-size assertion aborts the process; on builds without that assertion the advisory describes a following division by zero as a plausible but not executed termination path. No CISA KEV listing exists; the advisory supplies a handler-level reproducer and documents a preserved live server test, but this is not verified general-purpose exploit code.

RemediationAI

Upgrade FreeRDP to 3.32.2 or later; the upstream fix rejects zero width or height before ALPHA stream and run processing and refuses WIRETOSURFACE_2 codecs that require destination dimensions when the PDU supplies none, so patched clients no longer reach the assert or the division. Where upgrading is not immediately possible, reduce exposure by connecting only to RDP servers you control or trust, since the attack is delivered by the server to the client rather than by an inbound request; disabling or avoiding the RDPGFX graphics pipeline (for example by preventing AUTODETECT from negotiating it) removes the vulnerable channel but costs rendering performance and may break features that depend on the graphics pipeline. Do not rely on assertion-disabled builds as a mitigation: on those builds the advisory only describes a subsequent division by zero as a plausible termination path rather than a confirmed non-impact. Track the vendor advisory at https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-fqw6-jf2h-6fj6 for the exact patched release.

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

FreeRDP implements the Remote Desktop Protocol graphics pipeline through the RDPGFX dynamic virtual channel, which carries surface commands including the ALPHA codec. In rdpgfx_recv_wire_to_surface_2_pdu (channels/rdpgfx/client/rdpgfx_main.c) the RDPGFX_SURFACE_COMMAND is zero-initialized and dispatched without assigning destination dimensions when the PDU carries none, so cmd->width and cmd->height remain zero; is_within_surface in libfreerdp/gdi/gfx.c accepts the resulting empty rectangle. For the uncompressed path, gdi_SurfaceCommand_Alpha calls Stream_CheckAndLogRequiredLengthOfSize(TAG, s, cmd->height, cmd->width), which reaches Stream_CheckAndLogRequiredLengthEx in winpr/libwinpr/utils/stream.c and trips WINPR_ASSERT(size > 0) before dividing by that element size. The root-cause class is CWE-369 (divide by zero) per the CVE record, with the GitHub advisory additionally classifying it as CWE-20 (improper input validation) and CWE-617 (reachable assertion). The 4-byte payload 4c 41 00 00 represents the bitmap data; the zero dimensions, not memory corruption, drive the fault, and no code execution was demonstrated. The original report also described an infinite loop from a zero-width WIRETOSURFACE_1 rectangle, but rdpgfx_read_rect16 rejects that rectangle on the assessed revision and on 3.31.1, and WIRETOSURFACE_2's zero height causes the compressed branch's outer loop to be skipped, so that spin was an artifact of the dispatcher harness rather than the two wire paths.

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 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
vuln.today AI 4.3 MEDIUM

Reverse client-side attack requires the victim to connect to a malicious server (UI:R), no authentication to that server (PR:N), low complexity, and only a session-crash availability impact (A:L).

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L
4.0 AV:N/AC:L/AT:N/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
Low
Attack Requirements
None
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

2
Patch available
Nov 03, 2026 - 16:17 EUVD
CVE Published
Nov 03, 2026 - 14:28 cve.org
MEDIUM 5.3

DescriptionCVE.org

FreeRDP before 3.32.2 contains a denial of service vulnerability in the RDPGFX ALPHA WIRETOSURFACE_2 handler that fails to validate zero surface dimensions. A malicious RDP server can send a crafted WIRETOSURFACE_2 PDU with zero width and height, triggering an assertion or division by zero that terminates the client session.

Threat Intelligence Overview

Prevalence
High
widely deployed open-source RDP client/library (Remmina and many remote-desktop tools)
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 MEDIUM
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
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