Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessVictim connects through attacker-controlled RDP gateway
-
ExploitGateway sends zero-length websocket ping frame
-
Executionwebsocket_reply_pong passes NULL stream to websocket_reply_close
-
ImpactAssertion failure crashes client process (DoS)
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 that the victim's FreeRDP client (any version before 3.32.0) connects over the websocket gateway transport through a gateway the attacker controls or can man-in-the-middle; the malicious gateway then sends a zero-length (empty payload) websocket ping frame, causing websocket_reply_pong to pass a NULL stream to websocket_reply_close and trigger an assertion failure. Limiting factors: the attacker must occupy the gateway position (not arbitrary remote attacker), only the websocket transport path is affected, and the impact is restricted to crashing the client process - there is no code execution, privilege gain, or data disclosure. |
| Impact | This is a client-side denial-of-service with modest real-world priority. The CVSS 4.0 vector (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, score 6.9 Medium) reflects network reachability with low complexity and no authentication, but impact is confined to availability (VA:L) with zero confidentiality or integrity impact - consistent with the CWE-476 NULL pointer dereference crashing a single client process. No EPSS score, CISA KEV listing, POC, or SSVC decision data was provided, so there are no amplifying exploitation signals; exploitation status is 'no public exploit identified at time of analysis.' The most important nuance the raw CVSS understates is the attacker-position requirement: the description specifies a 'malicious gateway,' meaning the attacker must control (or MITM) the RDP gateway the victim connects through - this is not opportunistic internet-wide exploitation despite the AV:N/PR:N/UI:N vector. Net assessment: a genuine but low-urgency, low-severity availability bug, not a high-impact priority; the PR:N/UI:N vector slightly overstates realistic exploitability because it does not capture the malicious-gateway precondition. |
| Exploit ScenarioDerived | An attacker who operates or has compromised an RDP gateway (or can MITM a victim's gateway connection) waits for a FreeRDP-based client to connect over the websocket transport, then sends a zero-length websocket ping frame. The client's websocket_reply_pong passes a NULL stream into websocket_reply_close, hitting an assertion that terminates the client process. No public exploit code was identified, but the trigger is trivial to reproduce for anyone controlling the gateway. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Denial of service in FreeRDP clients before 3.32.0: a NULL pointer dereference in the websocket transport lets a malicious or man-in-the-middle gateway crash the client by sending a zero-length websocket ping frame. Affected are all FreeRDP builds prior to 3.32.0 that connect through the websocket gateway transport; the attacker must occupy the gateway position rather than being an arbitrary remote host, and the outcome is limited to terminating the client process with no code execution, privilege gain, or data disclosure. No public exploit code has been identified at time of analysis and there is no confirmed active exploitation, though the low attack complexity and lack of authentication or user interaction keep the practical bar for abuse low for anyone controlling the gateway path.
RemediationAI
Vendor-released patch: upgrade FreeRDP to 3.32.0 or later, which resolves the zero-length-ping handling in the websocket transport; apply the update via your distribution's package channel or the upstream release, and restart any long-running client processes so the fixed binary is in use. Until patching is possible, the most effective compensating control is to avoid reaching RDP endpoints through untrusted or third-party websocket gateways; where a gateway must be used, enforce strict TLS certificate validation and pin or whitelist the expected gateway certificate to blunt man-in-the-middle positioning, accepting that this does not protect against a gateway that is itself malicious or already compromised. Organizations that do not require websocket tunneling can disable that transport (for example by removing/blocking the websocket transport option or the relevant /ws endpoint at the proxy) and rely on standard RDP-over-TCP/UDP instead - the trade-off is loss of HTTP/HTTPS-based traversal for users behind restrictive networks. There is no code-execution risk to mitigate here, so effort should be prioritized based on how many clients depend on websocket gateways and whether those gateways are under your control. Details and references: https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-83g2-gf92-5c4g and https://www.vulncheck.com/advisories/freerdp-before-3.32.0-null-dereference-via-zero-length-websocket-ping.
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 (RDP); this issue lives in its websocket transport layer, which allows RDP traffic to be tunneled over websocket connections (typically through a gateway/proxy). The code path is triggered by an incoming websocket ping frame: the handler websocket_reply_pong is invoked to answer it, and when the ping's payload length is zero it forwards a nullptr stream into websocket_reply_close, which then hits an assertion and aborts the process. The root-cause class is CWE-476 (NULL Pointer Dereference) - missing handling of an empty-payload framing case rather than memory corruption. Only the websocket transport is implicated, so standard TCP/UDP transports are not affected by this specific defect. The affected product is captured broadly under the CPE cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:* with the fixed boundary at 3.32.0.
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
Network-reachable, low-complexity trigger from the gateway with no victim auth (PR:N/UI:N retained to match the gateway-side attacker model); impact is only a single-process client crash, so C:N/I:N/A:L.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
FreeRDP before 3.32.0 contains a NULL pointer dereference vulnerability in the websocket transport that allows a malicious gateway to crash clients by sending zero-length pings. When the payload length is zero, websocket_reply_pong passes a nullptr stream to websocket_reply_close, triggering an assertion failure that terminates the client process and causes 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
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.
Related Vulnerabilities in FreeRDP Memory Safety and Resource Exhaustion Flaws
View all 10Use-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-102554
GHSA-v777-vh94-53m6
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB