Skip to main content

FreeRDP CVE-2026-121394

| EUVDEUVD-2026-115926 HIGH
Reachable Assertion (CWE-617)
2026-11-03 VulnCheck GHSA-hf67-3c3m-x68x
7.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Lure victim to attacker-controlled RDP server
  2. Exploit
    Send RemoteFX tileset with RLGR code 32767
  3. Execution
    Trigger signed narrowing assertion in rfx_rlgr_decode
  4. Impact
    Client process aborts (denial of service)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V16 - Security Logging and Error Handling Reachable assertion handling
Exploitation Conditions

Exploitation requires the victim to initiate an RDP connection to a server under the attacker's control (or sit behind a relay/MITM) AND to have RemoteFX surface decoding enabled in the FreeRDP client (the PoC uses +rfx). It is further gated by build configuration: the process-terminating abort only occurs when the client is compiled with WITH_VERBOSE_WINPR_ASSERT enabled - the default in the inspected FreeRDP 3.32.1 CMake config, but some project presets and downstream distribution builds disable it, in which case the narrowing conversion does not assert and the client remains alive. The advisory's /sec:rdp usage is a test convenience and is NOT a prerequisite. These limits (required outbound connection to a hostile server, RemoteFX enabled, assert-enabled build) narrow realistic exposure considerably below the raw network/unauthenticated metrics.

Impact

This is a client-side denial-of-service with no confidentiality or integrity impact, which caps real-world risk well below what the 7.1 headline might suggest. The input CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H) tells a consistent story: network-reachable and unauthenticated against the vulnerable code path, but gated by passive user interaction (UI:P) - the victim must actively connect to a server the attacker controls, so there is no server-side or wormable exposure and no path to code execution. The vuln.today decision label is 'this_week' (not act_now/emergency). There is no CISA KEV listing and no EPSS score in the provided data, so there is no signal of active or widespread exploitation - appropriate for a crash-only client bug. A key mitigating nuance the signals do not capture: the GHSA advisory states the abort is build-dependent, triggering only when WITH_VERBOSE_WINPR_ASSERT is compiled in (default ON in the inspected 3.32.1 config, but disabled in some presets and downstream builds, where the conversion does not assert and the client stays alive). The CVSS vector does not encode this configuration dependency. Net: a genuine but limited priority - worth patching on a normal cadence for anyone running FreeRDP-based clients against untrusted servers, not an emergency.

Exploit ScenarioDerived

An attacker stands up or compromises an RDP server (for example, luring a user via a crafted .rdp file, a malicious connection broker, or a man-in-the-middle relay as demonstrated in the advisory's PoC) and waits for a FreeRDP-based client with RemoteFX surface decoding enabled to connect. Once connected, the server sends a RemoteFX tileset whose RLGR bitstream emits code 32767, triggering a signed narrowing assertion in rfx_rlgr_decode and aborting the client process. A public proof-of-concept exists in the GHSA advisory (a loopback relay script with recorded crash runs showing exit 134); the input does not mark it as confirmed weaponized exploit code, and the impact is limited to crashing that one client process.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Nov 03, 2026

A malicious RDP server can abort a FreeRDP client that has RemoteFX surface decoding enabled by sending a crafted RemoteFX tileset whose RLGR bitstream encodes the value 32767, tripping a checked narrowing conversion in rfx_rlgr_decode and terminating the client process. Only denial of service to that single client process is demonstrated: the advisory explicitly reports no memory corruption, confidentiality or integrity impact, and no effect on other processes. Affected builds are FreeRDP 3.11.0 through 3.32.1 (fixed range ends before 3.32.2, per the published package metadata); the abort is additionally build-dependent because it only fires when the client is compiled with WITH_VERBOSE_WINPR_ASSERT enabled, which is the default in the inspected 3.32.1 CMake configuration but is disabled by some presets and downstream distributions. A complete public proof-of-concept relay script with a documented successful run is included in the upstream advisory; no confirmed active exploitation (CISA KEV) has been reported.

RemediationAI

Vendor-released patch: FreeRDP 3.32.2 (the published fixed version; anything from 3.11.0 up to and including 3.32.1 is vulnerable). Because the GHSA text itself stated that no fix or fixed release had been verified at publication time, confirm the 3.32.2 build actually contains the decoder change before treating an upgrade as complete, and prefer your distribution's patched package when available; consult https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-5j39-x36c-x9pm and https://www.vulncheck.com/advisories/freerdp-before-3.32.2-denial-of-service-via-remotefx-rlgr-decoder. Where upgrading is not immediately possible, disable RemoteFX surface decoding in the client (do not pass +rfx; use -rfx / drop the RFX codec), which prevents the crafted tileset from reaching rfx_rlgr_decode at the cost of higher bandwidth and lower graphics performance, and may break connectivity to servers that require RemoteFX. Avoid initiating RDP sessions to servers outside your trust boundary or through untrusted relays, since the attack requires the client to connect to a hostile endpoint. Rebuilding with WITH_VERBOSE_WINPR_ASSERT=OFF removes the aborting assertion in the tested configuration, but that only suppresses the symptom: the unchecked narrowing conversion remains and this is not a verified fix, so it should be treated as a stopgap at best. Upstream guidance is to add a regression test for a tileset carrying RLGR code 32767 plus valid values at the representable boundary through the client receive path.

Affected VersionsENISA

FreeRDP 3.11.0 <3.32.2

Affected Packages

euvd freerdp fix: 3.32.2

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

RemoteFX (RFX) is the RDP codec that compresses screen updates into tilesets; coefficient data inside those tilesets is entropy-coded with RLGR (Run-Length Golomb-Rice), implemented in libfreerdp/codec/rfx_rlgr.c. The server fully controls the compressed tile payload, and the client decodes it after a fast-path SURFCMDS surface-bits update delivers a RemoteFX tileset. In rfx_rlgr_decode (line 357 in the inspected sources) the decoder converts code + 1 into a signed INT16 magnitude; an RLGR code of 32767 makes that value 32768, which is not representable, and the checked narrowing conversion aborts the process. The advisory classifies this as a reachable assertion / incorrect type-conversion defect (CWE-617 in the CVE record, CWE-704 in the GHSA): the fix direction is to reject an out-of-range peer-supplied code and return a decoder error rather than relying on a process-terminating assertion, consistently across both the RLGR1 and RLGR3 decode paths. Critically, the failure is configuration-gated: WITH_VERBOSE_WINPR_ASSERT defaults to ON in FreeRDP's 3.32.1 CMake configuration, but some project presets and downstream builds turn it off, and in the advisory's paired test the assert-disabled client stayed alive until the harness timeout (exit 124) while the assert-enabled client aborted (exit 134). How widely each configuration is shipped is not established by the available data. The advisory notes its use of /sec:rdp in the test harness is a convenience for the loopback shadow server and is not a prerequisite for the flaw.

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

Vendor (VulnCheck) PRIMARY 7.1 HIGH
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
vuln.today AI 6.5 MEDIUM

Triggered by a malicious server over the network with no auth (AV:N/PR:N) but needs the victim to connect (UI:R); impact is availability-only crash of the client (A:H, C/I:N, scope unchanged).

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Nov 03, 2026 - 16:17 EUVD
CVE Published
Nov 03, 2026 - 14:27 cve.org
HIGH 7.1

DescriptionCVE.org

FreeRDP from 3.11.0 before 3.32.2 contains an assertion failure in the RemoteFX RLGR decoder that allows malicious servers to terminate clients. Attackers controlling an RDP server can send a RemoteFX tileset with RLGR code 32767, triggering a signed narrowing assertion in rfx_rlgr_decode and crashing the client.

Executive ViewAI

Why It Matters

A remote desktop (RDP) client-side flaw in FreeRDP versions 3.11.0 through 3.32.1 can allow a malicious or compromised RDP server to crash the client application. Impact is limited to denial of service against a single user's RDP session, with no demonstrated memory corruption or data compromise, and only on builds compiled with assertion checking enabled. Leadership should care because staff and automated workflows relying on FreeRDP for remote access could experience session interruptions if connecting to untrusted RDP endpoints.

Business Impact: Low
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: rebuild FreeRDP with WITH_VERBOSE_WINPR_ASSERT disabled (the abort is build-dependent and only fires when this assertion is enabled), restrict outbound RDP connections to allowlisted/trusted servers, avoid connecting to untrusted RDP endpoints, disable RemoteFX if not operationally required, and monitor for client process crashes that could indicate malicious server behavior.

Threat Intelligence Overview

Prevalence
High
de facto open-source RDP client library on Linux (Remmina, GNOME Connections)
Data Quality
3 sources
Confidence: Low

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
Low

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2026-25997 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_clipboard_format_equal before 3.23.0. Clipboard format comparison uses freed memory. Fifth

CVE-2026-25953 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_AppUpdateWindowFromSurface before 3.23.0. Surface-to-window update triggers memory corrupti

CVE-2026-25952 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_SetWindowMinMaxInfo before version 3.23.0. X11 client window management triggers memory cor

CVE-2026-25959 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_cliprdr_provide_data clipboard handling before 3.23.0. Clipboard data exchange triggers mem

CVE-2026-22857 CRITICAL POC
9.8 Jan 14

FreeRDP IRP thread handler has a use-after-free where the IRP is freed by Complete() then accessed on the error path. Fi

CVE-2026-22854 CRITICAL POC
9.8 Jan 14

FreeRDP drive read heap overflow when server-controlled read length exceeds IRP output buffer. Fixed in 3.20.1. PoC avai

CVE-2026-22852 CRITICAL POC
9.8 Jan 14

FreeRDP client before 3.20.1 has a heap buffer overflow in AUDIN format processing. A malicious RDP server can corrupt m

CVE-2026-25955 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_AppUpdateWindowFromSurface before 3.23.0. Different code path from CVE-2026-25953. PoC and

CVE-2024-32041 CRITICAL POC
9.8 Apr 22

FreeRDP is a free implementation of the Remote Desktop Protocol. Rated critical severity (CVSS 9.8), this vulnerability

CVE-2023-40574 CRITICAL POC
9.8 Aug 31

FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical

CVE-2023-40569 CRITICAL POC
9.8 Aug 31

FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical

CVE-2023-40567 CRITICAL POC
9.8 Aug 31

FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy