Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure/control backend RDP server proxy connects to
-
ExploitSend CREATE_REQUEST_PDU with non-NUL-terminated channel name
-
ExecutionTrigger unbounded snprintf heap over-read
-
ImpactLeak heap bytes into proxy logs or crash process
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires a deployment running the freerdp-proxy component at version 3.17.1 up to (not including) 3.32.0, with the proxy connecting to a backend RDP server that is attacker-controlled or can be influenced/redirected (e.g. a malicious or MITM'd backend) - the attacker is the server side, not an inbound client. The malformed trigger is a DRDYNVC CREATE_REQUEST_PDU carrying a channel name with no terminating NUL byte, processed by DynvcTrackerHandleCreateBack. No authentication or user interaction is needed once that backend path exists. The principal limiting factor is trust direction: environments where the proxy only ever reaches fully trusted backends are not practically exposed, and realized impact is bounded to heap memory disclosure into logs or a process crash (denial of service) rather than code execution. |
| Impact | This is a genuine but moderate-priority issue, not a critical emergency. The CVSS 4.0 base score of 6.9 (MEDIUM) reflects a network-reachable (AV:N), low-complexity (AC:L), unauthenticated (PR:N), no-user-interaction (UI:N) flaw whose only scored impact is low availability (VA:L) - i.e. the vendor vector models a crash, not data theft. However, the description explicitly states the over-read 'leaks memory into proxy logs,' which is a confidentiality exposure that the input vector's VC:N does NOT capture; this is a conflict between the stated impact and the scored impact that defenders should note. The key limiting factor is directional: the attacker must be (or control) the BACKEND RDP server the proxy connects to, not an arbitrary internet client - so this is exploitable only where freerdp-proxy routes to untrusted/attacker-influenced servers. No EPSS score was provided, there is no CISA KEV listing, and no public exploit was supplied, so there is no evidence of active or widespread exploitation. Overall: a real defect worth patching on exposed proxy deployments, but absent exploitation signals it ranks below internet-facing critical RCEs. |
| Exploit ScenarioDerived | An attacker who operates or can redirect traffic to a backend RDP server that a FreeRDP proxy (3.17.1-3.31.x) connects to sends a crafted DRDYNVC CREATE_REQUEST_PDU whose channel name omits the terminating NUL byte. When DynvcTrackerHandleCreateBack formats this name, an unbounded snprintf reads past the heap buffer, disclosing adjacent heap memory into the proxy's logs or crashing the proxy process. No public proof-of-concept was provided in the source data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 13, 2026
FreeRDP's freerdp-proxy component (versions 3.17.1 up to but not including 3.32.0) can be induced to read heap memory out of bounds by a malicious or man-in-the-middle-controlled backend RDP server, which sends a DRDYNVC CREATE_REQUEST_PDU whose channel name is not NUL-terminated. The unbounded snprintf in DynvcTrackerHandleCreateBack then walks past the allocated buffer, leaking adjacent heap contents into proxy log output or crashing the process; only the proxy's own backend connection path is exposed, so environments that connect solely to fully trusted RDP servers are not practically at risk. No public exploit has been identified at time of analysis, EPSS is not elevated, and the issue is not listed in CISA KEV; impact is bounded to memory disclosure and denial of service rather than code execution.
RemediationAI
Upgrade FreeRDP to 3.32.0 or later, which is the version boundary at which the fixed code ships (vendor advisory: https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-g4wg-67xq-8q53). Because the trigger originates from the backend RDP server rather than the client, the most effective compensating control prior to patching is to constrain the proxy's reachable backends to explicitly trusted hosts via egress firewall rules or network segmentation, accepting that this breaks legitimate proxying to dynamic or untrusted backends. Where logging of channel names is not required, suppressing or restricting proxy log verbosity reduces the chance that leaked heap contents are captured in log files, though it does not prevent the underlying out-of-bounds read or the potential crash. Running the proxy under a service account with minimal privileges and with a restart-on-failure supervisor limits the blast radius of a denial-of-service crash. Treat backends reached over untrusted transit as potentially hostile and terminate RDP inside a protected tunnel where a man-in-the-middle cannot inject forged DRDYNVC PDUs.
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 vulnerability is an out-of-bounds heap read (CWE-125) in FreeRDP's Dynamic Virtual Channel (DRDYNVC) handling. FreeRDP's proxy mode acts as an intermediary between a client and a backend RDP server, and the DRDYNVC channel is used to negotiate and track dynamic virtual channels. In DynvcTrackerHandleCreateBack, the code processes a CREATE_REQUEST_PDU received from the backend server and copies the channel name into a tracking structure using snprintf without validating that the incoming name is NUL-terminated. Because snprintf reads until it finds a terminator or exhausts the supplied size, a channel name with no NUL byte causes the read to continue beyond the source buffer, disclosing heap memory (which may be written into proxy logs) or triggering an access violation and process termination. The affected component is the freerdp-proxy binary in the 3.17.1-3.31.x range, tracked generically under the FreeRDP CPE cpe:2.3:a:freerdp:freerdp. The trust direction is inverted from a typical remote-client bug: the attacker is the backend server rather than an inbound client, which is why the assessed CVSS 3.1 vector shows confidentiality and availability impact (C:L/A:L) with no integrity impact.
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:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Malicious backend server triggers it over the network with no auth or interaction (AV:N/AC:L/PR:N/UI:N); heap leak into logs gives C:L and the crash gives A:L, with no integrity impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
FreeRDP 3.17.1 before 3.32.0 contains a heap buffer over-read vulnerability in DynvcTrackerHandleCreateBack of the freerdp-proxy DRDYNVC channel handler that allows malicious backend RDP servers to read heap memory out of bounds. Attackers can send a CREATE_REQUEST_PDU whose channel name lacks a NUL byte, causing an unbounded snprintf read that leaks memory into proxy logs or crashes the process.
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.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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-98655
GHSA-h552-rp6x-j2cx
NVD
CVE.org
EPSS
VulDB
Exploit-DB