Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure client to malicious RDP server
-
DeliveryNegotiate DRDYNVC and open dynamic channel
-
ExploitSend DATA_FIRST with oversized Length field
-
ExecutionStreamPool_Take reserves full size before body validation
-
ImpactExhaust client memory and crash
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the victim to connect their FreeRDP client to a malicious or compromised RDP server, that DRDYNVC be negotiated, and that at least one dynamic virtual channel has been created and is in DVC_CHANNEL_RUNNING state (the relevant build/plugin must accept the channel creation). The server then sends a DRDYNVC DATA_FIRST PDU whose 32-bit Length field declares up to 4,294,967,295 bytes, which FreeRDP passes to StreamPool_Take before validating or receiving the body. Limiting factors: this is a server-to-client attack gated by user-initiated connection (UI:P), impact is confined to client availability (memory exhaustion) with no code execution or data disclosure, and it affects only client builds running at least one dynamic channel. Multiple accepted channels can each retain independent reservations, amplifying the exhaustion. |
| Impact | This is a client-side denial-of-service (memory exhaustion) issue, not a code-execution or data-exposure flaw. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H) scores 7.1 and isolates impact to availability (VA:H) with no confidentiality or integrity effect, consistent with the CWE-770/CWE-789 uncontrolled/uncapped allocation. The directionality matters: the attacker is a malicious or compromised RDP *server* and the victim is the FreeRDP *client*, so UI:P reflects that a user must initiate a connection to the hostile server - exploitation is not spontaneously remote against an exposed service. No CISA KEV listing is present and no EPSS score was supplied, so there is no evidence of active or widespread exploitation; the only exploitation signal is a PoC. The PoC is a bounded production-source verifier that compiles the real drdynvc_main.c parser and confirms StreamPool_Take reserves the full declared length before body validation at a 16-MiB bound - it proves the parser-to-pool ordering and the absence of a cap, but it is not a working network exploit and does not demonstrate end-to-end remote client crashes. The vuln.today Decision label is this_week, so this warrants prompt patching but the signals do not indicate an emergency: the real-world risk is a moderate, interaction-gated client DoS rather than a high-CVSS flaw with imminent mass exploitation. |
| Exploit ScenarioDerived | A user is lured or redirected to connect their FreeRDP client to an attacker-controlled or compromised RDP server. Once DRDYNVC is negotiated and a dynamic channel reaches the running state, the server sends a DATA_FIRST PDU declaring a Length of up to 4,294,967,295 bytes with little or no body, causing the client to reserve that memory immediately and exhaust address space/commit. A bounded production-source PoC exists confirming the pre-validation reservation at 16 MiB, though it is not a working network exploit. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 03, 2026
Client-side memory exhaustion in FreeRDP 3.0.0 through 3.32.1 lets a malicious or compromised RDP server force large allocations by declaring an enormous DRDYNVC DATA_FIRST Length, exhausting client memory and causing denial of service. The victim must connect to the server and have DRDYNVC negotiated with at least one dynamic virtual channel in DVC_CHANNEL_RUNNING state; the flaw does not provide code execution or data disclosure. A bounded public proof-of-concept reproducer is included in the advisory, but it is not verified as working exploit code, and no CISA KEV listing is provided.
RemediationAI
Vendor-released patch: upgrade FreeRDP to 3.32.2 or later; the affected range is 3.0.0 through 3.32.1. The GitHub security advisory is at https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-rrp5-666j-g6gp. The advisory recommends rejecting a DATA_FIRST Length above a conservative local per-message limit before calling StreamPool_Take, maintaining atomic per-channel and per-session reassembly budgets, charging reservations before allocation and refunding them on completion, replacement, error, timeout, and close, adding an incomplete-message timeout, and growing reassembly in bounded chunks instead of preallocating the full declared size. No documented configuration-only workaround is provided; until patched, limit exposure by connecting only to trusted RDP servers and avoiding untrusted DRDYNVC-capable endpoints, but that reduces attack surface rather than fixing the allocation behavior.
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 RDP client and server implementation. In the client DRDYNVC dynamic virtual channel handler, drdynvc_process_data_first() reads a 32-bit Length from a DATA_FIRST PDU and calls dvcman_receive_channel_data_first() before validating or receiving the accumulated body; that path releases the prior stream and calls StreamPool_Take(pool, length). When no cached stream is large enough, Stream_New() passes the size to calloc and records the full capacity. Because there is no per-message, per-channel, or per-session reservation cap, a small first fragment can reserve up to 4,294,967,295 bytes, and multiple running channels can retain independent reservations. This is CWE-770 uncontrolled resource allocation, with the advisory also associating CWE-789 excessive memory allocation; the trigger is specifically the DRDYNVC DATA_FIRST Length field, not a race condition or an execution primitive.
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:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
A malicious server needs no authentication (PR:N) but the user must initiate the connection (UI:R); impact is availability-only memory exhaustion (A:H, C:N/I:N) with no scope change.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
FreeRDP from 3.0.0 before 3.32.2 contains an uncontrolled resource allocation vulnerability that allows malicious RDP servers to force large client allocations through the DRDYNVC DATA_FIRST Length field. Attackers can declare lengths up to 4,294,967,295 bytes on running dynamic channels, causing StreamPool_Take to reserve memory before body validation and exhaust client memory.
Executive ViewAI
A memory exhaustion vulnerability in the FreeRDP remote desktop client (version 3.0.0-3.32.1) allows a malicious RDP server to crash client workstations by sending oversized channel data. Employees who connect to untrusted RDP endpoints may experience sudden outages, disrupting productivity and incident response. Leadership should prioritize patching and endpoint controls to mitigate this denial-of-service risk.
No vendor-released patch identified at time of analysis. Interim mitigations: restrict RDP connections to approved, trusted servers; monitor client memory usage for anomalies; enforce application allowlisting and least privilege; segment networks to limit exposure.
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-115920
GHSA-vrcq-2593-3p64
NVD
CVE.org
Exploit-DB