Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessVictim FreeRDP client connects to attacker-controlled RD Gateway
-
DeliveryGateway sends 8-byte RDG header with packetLength 0x7FFFFFFF
-
ExploitLength passes INT_MAX check in rdg_receive_packet
-
ExecutionStream_EnsureCapacity / WinPR allocates and zero-fills ~2 GiB pre-auth
-
PersistGateway withholds body bytes
-
ImpactClient memory exhausted, denial of service
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 FreeRDP client to be used in RD Gateway mode (e.g. /gateway over the HTTP or WebSocket transport) and to connect to an attacker-controlled, compromised, or man-in-the-middled RD Gateway; the malicious gateway then sends one eight-byte RDG header declaring packetLength 0x7FFFFFFF, which is processed in rdg_receive_packet before any tunnel authentication. No credentials or prior authentication on the client are needed (pre-auth), but the attack is limited by the need for the victim to initiate a gateway connection to the hostile endpoint (UI:P), by applying only to RD Gateway deployments rather than direct RDP connections, and by its recoverable nature - if the host refuses the ~2 GiB allocation the connection fails cleanly, and no OOM kill or data-access effect was observed. Updating to FreeRDP 3.32.2 is the fix. |
| Impact | This is a medium-severity, availability-only denial-of-service issue, and the signals are largely consistent rather than conflicting. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L) scores 5.3 and correctly reflects that there is no confidentiality or integrity impact and only a low availability impact. The attack is network-reachable and pre-authentication, but it is not a classic 'remote unauthenticated attacker hits a listening service' case: the victim is a FreeRDP client, and the hostile party is the RD Gateway the client connects to, so exploitation depends on the client reaching a malicious, compromised, or MITM'd gateway (captured by UI:P / user-initiated connection). It is NOT CISA KEV-listed, so it is not confirmed as actively exploited. No EPSS score was supplied, so exploitation probability cannot be quantified from the input. The GHSA advisory includes complete, independently reproduced proof-of-concept code (a measured 2.032 GiB resident allocation from an eight-byte header), so a working public PoC exists even though there is no evidence of in-the-wild use. The vuln.today decision label is 'this_month' (not act_now/emergency), which matches the picture of a credible but non-critical, recoverable client-side DoS. Net: a real issue worth patching on a normal cycle for anyone using RD Gateway, but not an emergency - the impact is temporary memory exhaustion with clean failure if the host refuses the allocation, no OOM kill or data access was observed, and there is no code execution or data exposure. |
| Exploit ScenarioDerived | An attacker who operates, compromises, or man-in-the-middles an RD Gateway waits for a FreeRDP client to connect through it, then sends a single eight-byte RDG header (02 00 00 00 ff ff ff 7f) declaring a packet length of 0x7FFFFFFF before tunnel authentication. The client's rdg_receive_packet passes the INT_MAX check and calls Stream_EnsureCapacity, causing WinPR to allocate and zero-fill roughly 2 GiB while it waits for body bytes the gateway never sends, exhausting client memory. A full working proof-of-concept gateway is published in the FreeRDP GHSA advisory and was independently reproduced over both WebSocket and non-WebSocket HTTP transports. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 03, 2026
Memory exhaustion in FreeRDP's RD Gateway client (versions through 3.32.1) lets a malicious or compromised gateway force roughly 2 GiB of client-side allocation before tunnel authentication, tying up memory while the session waits on body bytes that never arrive. A single eight-byte RDG header declaring packetLength 0x7FFFFFFF slips past the INT_MAX check in rdg_receive_packet and reaches Stream_EnsureCapacity, where WinPR rounds the request to 0x80000000 and zero-fills the expanded stream. The attack is unauthenticated (CVSS PR:N) but narrow: the victim must be running xfreerdp/FreeRDP in RD Gateway mode (/gateway over HTTP or WebSocket) and must initiate a connection to the hostile endpoint, impact is availability-only, and if the host refuses the allocation the connection fails cleanly; there is no CISA KEV entry, and the GHSA advisory publishes a full reproduction harness that was executed and measured at 2.032 GiB resident memory.
RemediationAI
Vendor-released patch: FreeRDP 3.32.2 - upgrade from any version up to and including 3.32.1 (details in https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-4vh4-3pc3-32p7 and https://www.vulncheck.com/advisories/freerdp-before-3.32.2-memory-exhaustion-via-rd-gateway-packet-length), and treat updating as the complete fix. Because exploitation requires the client to connect to an attacker-controlled, compromised or man-in-the-middled gateway, the practical interim control is deployment hygiene: restrict RD Gateway usage to gateways you operate or explicitly trust, and keep certificate validation enabled so an impostor gateway cannot be reached in the first place (the /cert:ignore flag used in the published reproduction disables exactly that protection and should never appear in production client profiles). Where connecting to semi-trusted gateways is unavoidable, capping the client process's memory (ulimit -v or a cgroup memory limit sized to normal session needs) bounds the blast radius: in the observed behavior a refused allocation makes the connection fail cleanly rather than crashing, at the cost of also terminating legitimate sessions that genuinely need more memory. There is no client-side configuration that stops the pre-authentication header from being processed other than the 3.32.2 fix, and no CISA KEV entry or confirmed in-the-wild exploitation was identified at time of analysis, so this sits at the vuln.today 'this_month' priority rather than an emergency.
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 a client implementation of Microsoft's Remote Desktop Protocol; RD Gateway mode tunnels RDP over HTTPS (or WebSocket) through an intermediary gateway, and that gateway speaks a small framing protocol (RDG) ahead of the actual tunnel handshake. Each RDG packet begins with an eight-byte header - a 16-bit type, a 16-bit flags field and a 32-bit little-endian packetLength - and rdg_receive_packet trusts that declared length when preparing the receive stream. The vulnerability is an instance of CWE-770 (allocation of resources without limits or throttling), also classified CWE-400 (uncontrolled resource consumption): a declared length of 0x7FFFFFFF (2,147,483,647) satisfies the existing INT_MAX guard, so the value is passed to Stream_EnsureCapacity before a single body byte is read, and WinPR rounds the growth to 0x80000000 and zero-fills it. The client is then blocked waiting for 2,147,483,639 payload bytes the gateway simply withholds. The CPE cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:* marks the whole pre-3.32.2 product line; the allocation path was individually inspected in 3.0.0, 3.20.0, 3.28.0, 3.31.1, 3.32.0 and 3.32.1, but the first affected release and intermediate snapshots were not established, and the 3.32.1 release binary was not separately executed even though its receive code matches the audited revision. Note that the CVSS 4.0 vector (AT:N, UI:P) and the assessed CVSS 3.1 vector (AC:L, UI:R) describe a low-complexity request that a user must trigger by connecting to the hostile gateway; the advisory does not attribute any confidentiality or integrity impact, and a host that refuses the allocation causes the connection to fail cleanly.
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:L/SC:N/SI:N/SA:N
Network-reachable pre-auth flaw triggered by a malicious gateway the client must connect to (UI:R, PR:N, AC:L); only a low, recoverable availability impact, so C:N/I:N/A:L.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
FreeRDP before 3.32.2 contains a memory allocation vulnerability in rdg_receive_packet that allows a malicious RD Gateway to force a 2 GiB client allocation before tunnel authentication. Attackers can send an eight-byte RDG header declaring packet length 0x7FFFFFFF to trigger pre-authentication memory exhaustion and denial of service.
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-115931
GHSA-c9xf-6g3r-f7hf
NVD
CVE.org
Exploit-DB