Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure victim to malicious RDP server with /video
-
DeliverySend crafted MS-RDPEGT geometry with negative topLevelLeft
-
ExploitUnsigned coordinate wraps, bypassing blit clamp
-
ExecutionOut-of-bounds write in gdiVideoShowSurface
-
ImpactClient abort or H.264 buffer memory corruption
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Array index validation
|
| Exploitation Conditions | Exploitation requires the FreeRDP client to connect using the non-default /video option (MS-RDPEGT video/geometry redirection) to an attacker-controlled or compromised RDP server, and the user must initiate that connection (UI:P). The specific trigger is a server-supplied signed MS-RDPEGT geometry origin with a negative topLevelLeft value, which is stored unchecked in an unsigned video surface coordinate. Limiting factors that reduce realistic risk: this is a server-attacks-client (reverse) scenario rather than a directly reachable service, /video redirection must be explicitly enabled (not default), the victim must choose to connect to the malicious server, and only FreeRDP versions before 3.32.0 are affected. |
| Impact | This is a medium-severity (CVSS 4.0 base 6.0) client-side flaw in a malicious-server attack model, and the real-world risk is meaningfully lower than the network attack vector alone suggests. While AV:N and PR:N indicate a remote, unauthenticated vector, both AT:P (a specific attack requirement) and UI:P (passive user interaction) materially constrain it: the victim must actively initiate an RDP connection using the non-default /video option to an attacker-controlled or compromised server. There is no CISA KEV listing and no public exploit was identified, so exploitation is not confirmed in the wild; EPSS was not provided in the input but the client-side, victim-must-connect model typically yields low exploitation probability. The documented impact is primarily availability (VA:H - client crash/abort). Note a conflict worth verifying: the description states an out-of-bounds WRITE of decoded H.264 data, which normally implies an integrity/memory-corruption impact, yet the supplied CVSS 4.0 vector rates VI:N (no integrity impact) - this likely understates the ceiling (potential memory corruption leading to code execution) and should be verified with the FreeRDP advisory. Overall this is a legitimate but non-urgent patch-cycle item, better suited to targeted attacks (luring a victim to a rogue server) than widespread automated exploitation. |
| Exploit ScenarioDerived | An attacker runs or compromises an RDP server and lures a victim into connecting to it with FreeRDP's non-default /video option enabled. The server sends a malicious MS-RDPEGT geometry message carrying a negative topLevelLeft origin; stored unchecked in an unsigned surface coordinate, it wraps in 32-bit arithmetic and bypasses the blit clamp in gdiVideoShowSurface(), producing an out-of-bounds write of decoded H.264 data or a client abort. No public exploit was identified at time of analysis, and success requires the victim to initiate the connection (UI:P) with video redirection active. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Out-of-bounds write in FreeRDP clients running versions before 3.32.0 allows a malicious or compromised RDP server to corrupt client memory when the victim explicitly connects using the non-default /video (MS-RDPEGT) option. The server supplies a signed geometry origin with a negative topLevelLeft value that is stored unchecked in an unsigned surface coordinate, causing the blit clamp in gdiVideoShowSurface() to wrap in 32-bit arithmetic and be skipped, which can result in an out-of-bounds write of decoded H.264 picture data or an abort of the client. No public exploit code or confirmed active exploitation has been identified at time of analysis, and although the CVSS 4.0 base score is 6.0, real-world risk is reduced because /video is off by default and the attack is a reverse server-to-client scenario requiring the user to initiate the connection to the attacker's server.
RemediationAI
Upgrade to FreeRDP 3.32.0 or later, which is the vendor-released patch that validates the signed MS-RDPEGT geometry origin and restores the blit clamp. If immediate upgrade is not possible, avoid launching the client with the non-default /video option, because the vulnerable code path is only reached when MS-RDPEGT video redirection is enabled; this disables H.264 video acceleration and geometry tracking in RDP sessions as a side effect. Also refrain from connecting FreeRDP clients to untrusted or unverified RDP servers, since the attack requires the server to supply the malicious negative topLevelLeft value and the user to initiate the connection. Refer to the GitHub security advisory at https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-grvc-qhhp-7h6m and the VulnCheck advisory at https://www.vulncheck.com/advisories/freerdp-before-3.32.0-out-of-bounds-write-via-ms-rdpegt-video-geometry for patch details and indicators.
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 Microsoft Remote Desktop Protocol (RDP), and this issue lives in its MS-RDPEGT (Graphics and Geometry Tracking) video redirection path. The protocol extension lets a server specify video surface geometry, including a signed 32-bit topLevelLeft origin. In affected builds, that signed value is copied into an unsigned video surface coordinate without validation, and the subsequent blit clamp in gdiVideoShowSurface() performs 32-bit arithmetic that wraps, so the bounds check is bypassed. The root cause class is CWE-129 (Improper Validation of Array Index), where a coordinate derived from untrusted server data is used without validating it against the actual surface bounds before a memory copy of decoded H.264 picture data. The CPE cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:* applies to all FreeRDP versions before 3.32.0; the flaw is in the client-side video/geometry redirection code and requires the client to be launched with the /video option to reach the vulnerable code path. Because the CVSS vector is CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N, the attacker needs no privileges (unauthenticated) but does need the user to initiate a connection to the malicious server, and the only direct impact is to availability (and potentially limited integrity through memory corruption).
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:P/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Malicious server attacks a connecting client requiring non-default /video (AC:H) and user-initiated connection (UI:R); OOB write of picture data gives limited integrity (I:L) and client abort (A:H), no confidentiality.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
FreeRDP before 3.32.0 stores the server-supplied signed MS-RDPEGT geometry origin unchecked in an unsigned video surface coordinate, so the blit clamp in gdiVideoShowSurface() wraps in 32-bit arithmetic and is skipped. A malicious RDP server can send a negative topLevelLeft to clients connecting with /video, causing an out-of-bounds write of decoded H.264 picture data or a client abort.
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 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-97695
GHSA-wv34-x2ff-j6qm
NVD
CVE.org
EPSS
Exploit-DB