Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure/await client connection to malicious RD Gateway
-
DeliverySend 8-byte PKT_TYPE_CLOSE_CHANNEL header
-
ExploitNull payload passed unchecked to close handler
-
ExecutionNULL dereference in rdg_process_close_packet
-
ImpactFreeRDP client process crashes
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Null pointer safety, defensive checks
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 FreeRDP client to establish an RDP connection routed through an RD Gateway that is attacker-controlled or already compromised/MITM'd; the malicious gateway then returns a header-only PKT_TYPE_CLOSE_CHANNEL packet with no payload. Limiting factors: the attacker must occupy the gateway position (not an arbitrary remote host), the user must initiate the connection (UI:P / UI:R), the client must run FreeRDP 2.3.0 through 3.31.x, and the gateway/RDG transport path must be in use. Impact is limited to crashing the client process (denial of service) - no code execution, data disclosure, or integrity loss. |
| Impact | This is a genuine but bounded availability-only issue, not a top-tier priority. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H, base 7.1) correctly captures that exploitation is network-reachable and low-complexity but requires passive user interaction (UI:P) - the victim FreeRDP client must initiate a connection through the attacker's RD Gateway - and the impact is confined to availability (VA:H), with zero confidentiality or integrity effect. That is the defining caveat: the attacker is not a random remote party but 'a malicious or compromised RD Gateway,' so the real-world attacker model is either an operator of a hostile gateway or an adversary who has already compromised/MITM'd the gateway a client is steered toward. No EPSS score, KEV listing, SSVC decision, or POC was supplied in the intelligence, so exploitation-probability signals are absent rather than low - do not read the missing EPSS as 'low risk,' it is simply not provided. Reported by VulnCheck with a FreeRDP GHSA advisory, the defect itself is well-corroborated, but there is no evidence of exploitation and the payoff (a client crash) is low, so this should be patched on a normal cadence rather than treated as an emergency. |
| Exploit ScenarioDerived | An attacker who operates or has compromised an RD Gateway waits for a FreeRDP client (2.3.0 up to but not including 3.32.0) to connect through it. The gateway replies with a bare eight-byte PKT_TYPE_CLOSE_CHANNEL header carrying no payload; rdg_process_control_packet forwards the null payload to rdg_process_close_packet, which dereferences the NULL stream and crashes the client. No public exploit code was identified in the provided data, but the trigger is a single crafted header and is trivial to reproduce. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 13, 2026
NULL pointer dereference in FreeRDP's Remote Desktop Gateway (RDG) transport path affects client builds from 2.3.0 up to (but not including) 3.32.0, allowing an attacker who controls or has compromised the RD Gateway to crash a connecting client. The malicious gateway only needs to return an eight-byte, header-only PKT_TYPE_CLOSE_CHANNEL control packet; rdg_process_control_packet forwards the absent payload to rdg_process_close_packet without a NULL check, and the client dereferences it. The attacker must already occupy the gateway position (not an arbitrary remote host) and the user must initiate the outbound RDP session, so this is a bounded, availability-only denial of service - CVSS v4.0 base 7.1, with the independent assessment scoring it AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H. No public exploit code and no confirmed active exploitation were identified at time of analysis, and the gateway-position prerequisite constrains realistic abuse.
RemediationAI
Upgrade the FreeRDP client to 3.32.0 or later, the version boundary at which the affected 2.3.0-through-3.31.x range ends; see the vendor advisory at https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-f46f-pxh9-w2rh and the VulnCheck advisory at https://www.vulncheck.com/advisories/freerdp-2.3.0-before-3.32.0-null-pointer-dereference-via-rd-gateway-close-channel-packet for the fix details and confirm the resolved package version with your distribution's backport status before assuming patched binaries. Because exploitation requires the attacker to hold the RD Gateway position, the most effective compensating control is to connect only through RD Gateways you operate or otherwise trust; refusing RDG routing entirely and connecting directly to RDP hosts removes the attack path at the cost of losing gateway-mediated NAT traversal, TLS termination, and policy enforcement. If untrusted gateways are unavoidable, isolate the client so a crash cannot cascade into session-loss impact on other workloads, use supervisor or watchdog restarts to bound downtime, and treat any FreeRDP client crash immediately following an RDG connection as a potential exploitation signal. There is no server-side toggle in FreeRDP itself that disables processing of PKT_TYPE_CLOSE_CHANNEL, so no client-configuration-only workaround exists beyond version upgrade. Do not characterize this as a patched-in-the-wild emergency: it is an availability-only defect and the patch should be scheduled through normal client update channels.
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 Remote Desktop Protocol used by numerous RDP clients on Linux, macOS, and other platforms. When a FreeRDP client connects through a Microsoft RD Gateway (RDG), traffic is tunneled over the RDG protocol implemented in libfreerdp/core/gateway/rdg.c, which multiplexes control packets (PKT_TYPE_CLOSE_CHANNEL among them) alongside tunneled data. The root cause is CWE-476 (NULL Pointer Dereference): rdg_process_control_packet accepts a valid, well-formed PKT_TYPE_CLOSE_CHANNEL header that carries no payload bytes and then passes the resulting NULL payload pointer into rdg_process_close_packet, which dereferences it without validation. Because the crash occurs during parsing of a control frame the client itself solicits by connecting, the defect lives entirely in the client-side RDG state machine and requires no malformed-length or buffer-overflow conditions - a syntactically legitimate eight-byte header is sufficient. The CPE cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:* reflects an unbounded version wildcard; the description narrows the vulnerable range to 2.3.0 through 3.31.x. Impact is confined to abnormal process termination: no memory corruption, code execution, data disclosure, or integrity loss is described.
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
Network-triggered by a malicious gateway with low complexity and no attacker privileges, but the victim must initiate the connection (UI:R); impact is availability-only (client crash), so C:N/I:N/A:H.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
FreeRDP 2.3.0 before 3.32.0 dereferences a NULL stream in rdg_process_close_packet in libfreerdp/core/gateway/rdg.c because rdg_process_control_packet accepts a header-only PKT_TYPE_CLOSE_CHANNEL packet and passes the null payload without a check. A malicious or compromised RD Gateway can send an eight-byte CLOSE_CHANNEL header to crash a connecting FreeRDP client.
Technical POC Analysis
CWE-476 (NULL pointer dereference) in the RD Gateway client transport, libfreerdp/core/gateway/rdg.c.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
FreeRDP client versions 2.3.0 through 3.31.x are susceptible to a denial-of-service vulnerability when connecting via a Remote Desktop Gateway (RDG). An attacker who controls or has compromised the gateway can crash the client, disrupting remote desktop sessions for users relying on FreeRDP for remote work. Although the attack requires the adversary to already occupy the gateway role, it can cause operational downtime and impact productivity for affected teams. No public exploit identified at time of analysis.
No vendor-released patch identified at time of analysis. Interim mitigations: Restrict FreeRDP clients to connect only to trusted, internal RD Gateways; disable RDG transport if not business-critical; monitor gateway logs for anomalies; implement network segmentation to limit impact; consider using alternative RDP clients until a patch is available.
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 null pointer dereference occurs when a program attempts to access memory through a pointer that has been set to NULL (address 0x0).
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-98707
GHSA-hmpv-fgqw-2f74
NVD
CVE.org
EPSS
Exploit-DB