Skip to main content

FreeRDP EUVDEUVD-2026-115921

| CVE-2026-121389 LOW
Reachable Assertion (CWE-617)
2026-11-03 VulnCheck GHSA-2hp8-rhrv-672c
2.3
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 malicious RDP server
  2. Exploit
    Send malformed RDPDR device-list announce
  3. Execution
    Dumper seeks past received packet buffer
  4. Impact
    Fatal Stream_Seek assertion aborts client

Vulnerability Assessment

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

Exploitation requires ALL of the following simultaneously: (1) the victim must connect to an attacker-controlled or malicious RDP server (no auth bypass is involved); (2) device redirection must be enabled on the client (e.g., xfreerdp /drive:tmp,/tmp), so an active RDPDR channel is reached; (3) the RDPDR logger must be at TRACE level (e.g., /log-level:TRACE) - at INFO the diagnostic packet dump is skipped and the crash does not occur; and (4) the client must be built with active WinPR assertions (e.g., WITH_VERBOSE_WINPR_ASSERT=ON) - with assertions disabled the same malformed packet did not abort. Limiting factors: default release builds ship with assertions off and default logging is not TRACE, so stock production clients are not affected; the required user-initiated connection and non-default logging/build configuration make this a narrow, configuration-dependent client-side DoS rather than a broadly exploitable condition.

Impact

This is a low real-world priority despite being a network-reachable flaw. The CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:N/UI:P, VA:L, score 2.3) and the vuln.today 'monitor' decision label agree: impact is availability-only (a single client process abort), and exploitation is gated by high attack complexity, a specific attack requirement (AT:P), and required user interaction (the victim must initiate a connection to an attacker-controlled server). The three simultaneous prerequisites - device redirection enabled, RDPDR logging at TRACE, and a build with active WinPR assertions - are not present in default release builds, so the realistic exploitable population is far smaller than the affected-version range suggests. A full reproduction PoC exists in the GHSA advisory, but no KEV listing and no EPSS score were provided in the input, so there is no signal of active or widespread exploitation. The signals are internally consistent (low CVSS, monitor label, availability-only, narrow conditions); the one conflict is remediation data (see confidence_notes), not risk. Net: a genuine but minor client-side DoS, not an emergency.

Exploit ScenarioDerived

An attacker stands up or compromises an RDP server and lures a victim into connecting with a FreeRDP client that has drive redirection enabled, TRACE-level RDPDR logging, and an assertion-enabled build. After channel activation the server sends a malformed PAKID_CORE_DEVICELIST_ANNOUNCE whose DeviceDataLength exceeds the packet; the diagnostic dumper's Stream_Seek assertion fails and the client process aborts. A working end-to-end PoC relay script is published in the advisory, but the required non-default logging and assertion build sharply limit real victims.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available

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

Alert me

AnalysisAIv1 – Nov 03, 2026

FreeRDP clients built with active WinPR assertions can be aborted by a malicious or attacker-controlled RDP server that sends a malformed RDPDR device-list announcement declaring a DeviceDataLength larger than the bytes actually delivered. The crash requires a narrow combination of conditions: device redirection must be enabled so the RDPDR channel is active, the RDPDR logger must be at TRACE level so the diagnostic packet dumper runs, and the client build must carry active WinPR assertions - with INFO logging or assertions disabled the same packet left the client running. Affected releases are 3.27.0 through 3.32.1 (fixed in 3.32.2), the demonstrated impact is availability only - no memory corruption, data disclosure, modification, or code execution - and the vendor advisory publishes a working relay script that reproduced the abort end to end, though there is no indication of active exploitation in the field.

RemediationAI

Upgrade to FreeRDP 3.32.2, the release listed as fixed for the >= 3.27.0, <= 3.32.1 range, per the vendor advisory at https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-66mr-7wc7-23vc. Where an upgrade cannot be staged immediately, the crash can be avoided by removing one of its prerequisites, each with a cost: drop the RDPDR logger from TRACE to INFO or lower (for example omit /log-level:TRACE), which skips the diagnostic packet dump entirely and was shown in testing to keep the client alive, at the price of losing device-redirection trace data needed for troubleshooting; disable client device redirection (for example remove /drive:... mappings) so no active RDPDR channel is reached, at the price of losing local drive/printer/device sharing for that session; or rebuild the client with WITH_VERBOSE_WINPR_ASSERT=OFF, which kept the malformed packet from aborting in testing but removes assertion-based diagnostics across the whole build. Because the crash requires the victim to connect to the hostile server, restricting client connections to vetted RDP endpoints also reduces exposure. The advisory's suggested code-level fix is to compare DeviceDataLength with the stream's remaining bytes and reject truncation before seeking, so that malformed input is refused regardless of logging level or assertion settings.

Affected VersionsENISA

FreeRDP 3.27.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

The flaw is CWE-617 (Reachable Assertion) in FreeRDP's RDPDR (device redirection) subsystem. In rdpdr_dump_packet (libfreerdp/utils/rdpdr_utils.c) the code reads a peer-controlled DeviceDataLength from a PAKID_CORE_DEVICELIST_ANNOUNCE packet and passes it straight to Stream_Seek without checking that those bytes remain in the received stream, so the announced length can exceed the actual packet contents. The server-to-client receive path in channels/rdpdr/client/rdpdr_main.c (rdpdr_process_receive) invokes the diagnostic packet dumper before validating whether the announcement is legal in the current channel state, which is why a peer-controlled packet can reach the assertion. Stream_Seek asserts that the requested offset fits the stream's remaining capacity; with verbose WinPR assertions compiled in, the failed seek logs a fatal assertion and aborts the process. The seek was introduced by commit bb390f09927f3c15cd03151358337ccdfcfe1dcc ('[utils,rdpdr] fix packet dump', May 19, 2026); the earliest inspected stable tag containing it is 3.27.0, releases through 3.32.1 carry it, and 3.26.0 predates the call. Reproduction used a 28-byte injected announcement with DeviceDataLength=65536, aborting at Stream_Seek:159 with exit status 134; a zero-length announcement and an INFO-level run stayed alive, and a TRACE run declaring 8 bytes also aborted because the live channel stream held exactly 28 bytes. The trigger is only reachable through diagnostics, so the decoder's rejection of malformed input is currently entangled with logging configuration rather than enforced on its own.

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 2.3 LOW
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
vuln.today AI 3.1 LOW

Malicious server reachable over network but victim must connect (UI:R); success needs non-default TRACE logging plus an assertion-enabled build, conditions outside attacker control (AC:H); only client process availability is affected (A:L), no C/I impact.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
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
LOW 2.3

DescriptionCVE.org

FreeRDP from 3.27.0 before 3.32.2 contains a denial of service vulnerability in rdpdr_dump_packet that allows malicious RDP servers to abort clients by sending malformed RDPDR device-list announcements. Attackers can declare a DeviceDataLength exceeding the received packet, triggering a fatal Stream_Seek assertion when device redirection, TRACE logging, and WinPR assertions are enabled.

Threat Intelligence Overview

Prevalence
High
dominant open-source RDP client, embedded widely in Linux remote-desktop tools
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org Vulnrichment GitHub

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 LOW
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
High
Technical Impact
Partial

Priority Score

12
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +12
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