Skip to main content

FreeRDP shadow server EUVDEUVD-2026-115936

| CVE-2026-121404 HIGH
Uncontrolled Resource Consumption (CWE-400)
2026-11-03 VulnCheck GHSA-26v7-mr7m-fqqx
7.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate to FreeRDP shadow server
  2. Delivery
    Complete audin/rdpgfx DVC channel creation
  3. Exploit
    Send drdynvc DATA PDU with zero-length payload
  4. Execution
    Reader loops without consuming queued message
  5. Impact
    CPU core exhaustion until client disconnects

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption 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

Requires an authenticated RDP session (PR:L) to a FreeRDP shadow server specifically (e.g. freerdp-shadow-cli), not an ordinary FreeRDP client deployment. The server must have opened the dynamic virtual channel and the client must complete channel creation on audin (started per-client by stock shadow) or rdpgfx (started when graphics is negotiated); an unknown or unopened channel never reaches the vulnerable queue. The attacker must emit a drdynvc DATA PDU with a valid channel ID and zero-length payload - which the stock xfreerdp client refuses to produce, so a modified client or post-serialization PDU shaper (as in the advisory PoC) is required. Limiting factors: valid credentials needed, shadow-server deployment mode required, only audin/rdpgfx readers are reachable in stock shadow (ainput, disp, echo, telemetry and others use the same pattern but are not started), and the spin ends immediately on client disconnect.

Impact

This is a genuine but bounded availability risk, not a widespread emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) and the 7.1 score are driven entirely by availability impact (VC:N/VI:N/VA:H) - the advisory explicitly states no crash, memory corruption, or disclosure was demonstrated, so confidentiality and integrity are untouched. PR:L confirms the attacker must be an authenticated RDP client, which meaningfully limits exposure versus an unauthenticated flaw. No EPSS score and no CISA KEV entry were provided in the input, so there is no evidence of active exploitation; the only exploitation signal is the detailed proof-of-concept bundled in the vendor GHSA advisory. The vuln.today decision label is 'this_week' (not act_now/emergency), consistent with an authenticated, impact-limited DoS. A notable caveat: the impact is CPU exhaustion of one-to-two cores per malicious session (measured ~1 and ~2 cores for audin and rdpgfx respectively), and the advisory states no many-session exhaustion test was run - so full-server denial of service at scale is plausible but unverified. Overall this warrants prompt patching where FreeRDP shadow server is deployed, but it is a lower-urgency, availability-only issue rather than a drop-everything critical.

Exploit ScenarioDerived

An authenticated user connects to a FreeRDP shadow server (freerdp-shadow-cli), lets the server open the audin and/or rdpgfx dynamic channels, then sends a drdynvc DATA PDU carrying a valid channel ID but zero application payload. The server queues the empty message, FreeRDP_WTSVirtualChannelRead never consumes it, and the reader thread spins a full CPU core until the client disconnects. A complete proof-of-concept - an LD_PRELOAD PDU shaper plus a loopback runner - is published in the vendor advisory, since the stock xfreerdp client refuses to send zero-length DVC writes and must be mutated post-serialization.

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

CPU exhaustion in FreeRDP's shadow server (through 3.32.1) lets an authenticated RDP client pin roughly one to two server CPU cores by sending drdynvc DATA PDUs that carry a valid dynamic-channel ID but zero application payload on the audin or rdpgfx channels; the shadow reader never consumes the zero-byte message and loops until the client disconnects. Only shadow-server deployments such as freerdp-shadow-cli are affected - not ordinary FreeRDP client installations - and because the stock xfreerdp client refuses to serialize a zero-length DVC write, exploitation requires a modified client or a post-serialization PDU shaper. There is no CISA KEV entry and no confirmed active exploitation; a public PoC reference exists in the form of the advisory's LD_PRELOAD shaper and loopback runner, but the input does not record it as confirmed working exploit code. No crash, memory corruption or data disclosure was demonstrated, and the advisory's own testing did not include a many-session exhaustion run.

RemediationAI

Vendor-released patch: upgrade to FreeRDP 3.32.2, which addresses the zero-length drdynvc DATA handling that leaves the shadow-server read queue permanently signaled - see the advisory at https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-fqcj-rwww-2498. Until the upgrade can be applied, the practical compensating controls all carry trade-offs on a shadow server: restrict who can reach the shadow listener (network ACLs, VPN or jump-host placement) so only fully trusted, credentialed operators can open an RDP session, accepting that the flaw remains reachable for any admitted client; monitor shadow-server processes for sustained single- or dual-core CPU burn in threads associated with a connected session and terminate the offending session, which immediately ends the spin but disrupts that user's session and requires active monitoring rather than prevention; and avoid exposing the shadow server to broad or untrusted client populations where a modified client could be introduced. Note that the stock xfreerdp client cannot emit the malformed zero-length DVC write, so the attacker must control the client implementation, but this is not a defensible restriction against a determined party.

Affected VersionsENISA

FreeRDP 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 an uncontrolled resource consumption / infinite-loop condition (CWE-400, CWE-835) in FreeRDP's dynamic virtual channel (drdynvc) server-side plumbing. In libfreerdp/core/server.c, wts_read_drdynvc_data() queues a DATA payload even when Stream_GetRemainingLength(s) is zero, so a PDU consisting only of the command byte plus channel ID produces a zero-byte wtsChannelMessage. FreeRDP_WTSVirtualChannelRead() peeks at the queue with removal disabled and returns success for a length query without dequeuing the empty head, leaving the queue event permanently signaled; the audin and rdpgfx readers, which query this way and interpret zero returned bytes as no data, then spin. Stock shadow starts audin per client and rdpgfx when graphics is negotiated, so both are reachable; the same reader pattern exists in ainput, disp, location, echo, telemetry, rdpemsc, rdpecam and the unused drdynvc server plugin, but stock shadow does not start those readers. Encomsp has a related zero-length static-channel variant when joined, while rdpsnd and rdpei consume empty messages through non-null reads and are unaffected. The vulnerability requires an already-established dynamic channel: the server must have opened the DVC and the client must complete channel creation, so an unknown or unopened channel never reaches the queue.

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:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 6.5 MEDIUM

Network-reachable (AV:N), low complexity once a client exists (AC:L), but requires an authenticated RDP session (PR:L); impact is availability-only CPU exhaustion (A:H, C:N/I:N) with no scope change.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/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
Low
User Interaction
None
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:28 cve.org
HIGH 7.1

DescriptionCVE.org

FreeRDP before 3.32.2 contains a denial of service vulnerability in the shadow server that allows authenticated RDP clients to spin server threads by sending zero-length drdynvc DATA PDUs. Attackers can send empty DATA messages on opened audin or rdpgfx channels, so that FreeRDP_WTSVirtualChannelRead never consumes them, consuming full CPU cores until disconnect.

Technical POC Analysis

CWE-400 (Uncontrolled Resource Consumption), with the advisory also tagging CWE-835 (unreachable exit loop).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

FreeRDP's shadow server (versions through 3.32.1) is vulnerable to a denial-of-service condition where a malicious authenticated RDP client can consume 1-2 CPU cores per connection, potentially exhausting server resources and disrupting remote support sessions. Only organizations hosting FreeRDP shadow servers (e.g., freerdp-shadow-cli) are affected, not standard client installations. Leadership should prioritize patching or mitigating shadow server deployments that support external or untrusted users.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include restricting shadow-server access to trusted networks, disabling audin and rdpgfx dynamic channels where not required, deploying a network filter to drop zero-length DVC writes, enforcing session concurrency limits, and monitoring CPU usage for anomalous spikes.

Threat Intelligence Overview

Prevalence
Medium
FreeRDP widely used, but shadow-server mode is an optional, less-deployed component
Data Quality
4 sources
Confidence: Medium

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
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
Medium

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