Skip to main content

FreeRDP CVE-2026-109944

| EUVDEUVD-2026-98709 HIGH
Reachable Assertion (CWE-617)
2026-10-13 VulnCheck GHSA-2wj4-9p84-wwqf
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 malicious RDP server
  2. Delivery
    Client connects with smartcard emulation/redirection
  3. Exploit
    Emulate_SCardReleaseContext releases context
  4. Execution
    Establish new context and send SCardTransmit with stale handle
  5. Persist
    Lookup of deleted parent context triggers WINPR_ASSERT
  6. Impact
    Client process crashes (DoS)

Vulnerability Assessment

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

Exploitation requires the FreeRDP client to be configured with BOTH smartcard EMULATION and smartcard REDIRECTION enabled, and the victim must actively initiate a connection to an attacker-controlled or compromised RDP server (UI:P). The server-side trigger is a specific sequence: call Emulate_SCardReleaseContext to release a smartcard-emulation context, establish another context, then issue Emulate_SCardTransmit with the stale card handle so the code dereferences the deleted parent context and reaches the WINPR_ASSERT. Limiting factors: smartcard emulation/redirection is a non-default feature set, the attack only yields a client crash (availability only, no code execution or data disclosure), and it depends on the victim connecting outward to a malicious server rather than any inbound reachability of the client.

Impact

This is a client-side denial-of-service (reachable assertion, CWE-617) in FreeRDP, scored CVSS 4.0 7.1 with vector AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H - network-reachable, low complexity, no privileges, but requiring passive user interaction, with impact limited to availability (VA:H) and no confidentiality or integrity effect. The direction of attack is inverted from the typical server-exploit model: a MALICIOUS RDP SERVER crashes a CONNECTING CLIENT, so the victim must initiate a connection to attacker-controlled infrastructure (consistent with UI:P). No CISA KEV listing and no public exploit are present in the provided data, so exploitation status is 'no public exploit identified at time of analysis'; no EPSS score was supplied. Real-world priority is moderate and bounded: the impact is a crash, not code execution or data exposure, and triggering it requires the client to have smartcard emulation AND redirection enabled - a non-default feature set - which materially narrows the exposed population below what the raw AV:N/PR:N metrics suggest. EPSS and POC data are MISSING, so probabilistic exploitation likelihood cannot be confirmed; absence of KEV plus a DoS-only outcome argues against urgent prioritization for most deployments, while environments that routinely use smartcard redirection to untrusted gateways should patch promptly.

Exploit ScenarioDerived

A user with smartcard emulation and redirection enabled connects their FreeRDP client to a malicious or compromised RDP server. The server releases a smartcard-emulation context, establishes a new one, then issues SCardTransmit referencing the stale card handle, causing FreeRDP to look up the deleted parent context and hit a terminating WINPR_ASSERT that crashes the client. No public proof-of-concept is identified in the available data, and exploitation requires the victim to actively initiate the connection (UI:P).

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 13, 2026

Denial of service in the FreeRDP RDP client (versions 3.0.0 through 3.31.x) allows a malicious or compromised RDP server to crash a connecting client that has both smartcard emulation and smartcard redirection enabled: the server releases a smartcard-emulation context, establishes a new one, then issues SCardTransmit with the stale card handle, causing the client to look up the deleted parent context and hit a terminating WINPR_ASSERT. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H) confirms this is network-reachable and unauthenticated, but it requires the victim to actively initiate a connection outward to the hostile server, and the impact is availability-only (client process abort, no code execution or data disclosure). No public exploit identified at time of analysis and the issue is not confirmed actively exploited (CISA KEV); exploitation also depends on the non-default smartcard emulation/redirection feature set being enabled.

RemediationAI

Upgrade FreeRDP to 3.32.0 or later, which is the first release outside the affected '3.0.0 before 3.32.0' range and the vendor-released patch for this issue; see the GitHub advisory https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-f526-rq4j-5ch8 and the VulnCheck entry https://www.vulncheck.com/advisories/freerdp-3.0.0-before-3.32.0-reachable-assertion-via-stale-smartcard-handle for distribution-specific guidance. If upgrading is not immediately possible, the most effective compensating control is to disable smartcard emulation and smartcard redirection in the client configuration or build (for example, omit the smartcard redirection option in the client invocation and remove emulation support), which removes the entire stale-handle code path at the cost of losing smartcard passthrough and emulation functionality for users who rely on it; this trade-off should be coordinated with any smartcard-dependent workflows. Because exploitation requires the victim to connect to an attacker-controlled RDP server, restricting user-initiated RDP connections to known, trusted server endpoints and controlling which remote hosts users may reach also reduces exposure, though it is a network-policy mitigation rather than a code fix and can be bypassed by a compromised trusted server. There is no vendor-supplied configuration switch documented as fully neutralizing the bug while keeping smartcard emulation active, so patching remains the primary and recommended action. No public exploit code has been identified at time of analysis, but the underlying trigger sequence is straightforward and the crash is reproducible by any server speaking the relevant smartcard redirection sequence, so treat the vulnerable versions as internet-exposed only to trusted peers in the interim.

Affected VersionsENISA

FreeRDP 3.0.0 <3.32.0

Affected Packages

euvd freerdp fix: 3.32.0

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 a portable open-source implementation of Microsoft's Remote Desktop Protocol, and the affected component is the client-side smartcard emulation/redirection stack. When an RDP server requests smartcard redirection, the FreeRDP client tracks card and context handles in its emulation layer; Emulate_SCardReleaseContext frees a parent smartcard-emulation context but, in the vulnerable code, fails to purge the associated child card handles. A subsequent Emulate_SCardTransmit call carrying one of those stale handles resolves the freed parent context and reaches WINPR_ASSERT, an assertion macro in FreeRDP's WINPR (Windows Portable Runtime) compatibility library whose failure path terminates the process. This maps to CWE-617 (Reachable Assertion): a defensive assertion intended to catch internal invariant violations becomes remotely reachable through crafted protocol traffic, converting a recoverable error condition into a fatal crash. The CPE cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:* is unscoped and therefore covers the FreeRDP client across the vulnerable '3.0.0 before 3.32.0' range; only the client role is affected, since the flaw is triggered by a server driving the client's smartcard emulation state machine. WINPR_ASSERT behavior is typically built in for release builds of FreeRDP, so the assertion aborts the client rather than being a debug-only artifact.

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

Malicious server reaches client over the network with low complexity and no privileges, but victim must initiate the connection (UI:R); impact is a crash only, so C:N/I:N/A:H.

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
Oct 13, 2026 - 15:17 EUVD
CVE Published
Oct 13, 2026 - 13:27 cve.org
HIGH 7.1

DescriptionCVE.org

FreeRDP 3.0.0 before 3.32.0 does not remove card handles when Emulate_SCardReleaseContext releases a smartcard-emulation context, so Emulate_SCardTransmit later looks up the deleted parent context and reaches a terminating WINPR_ASSERT. A malicious RDP server can crash a connecting client with smartcard emulation and redirection enabled by releasing a context, establishing another, and issuing SCardTransmit with the stale card handle.

Technical POC Analysis

CWE-617 (Reachable Assertion), with a secondary CWE-672 (operation after release) flavor.

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

A denial-of-service flaw in the FreeRDP RDP client (versions 3.0.0 through 3.31.x) allows a hostile or compromised RDP server to abort the connecting client process when smartcard emulation and smartcard redirection are both enabled. Only users who initiate outbound connections to an untrusted server are at risk, and the impact is limited to client availability - there is no code execution, privilege escalation, or data exposure. Leadership should care because no vendor patch is available and the affected configuration is concentrated among smartcard-dependent users, likely in higher-value roles, so unmanaged remote-connection habits could cause repeated productivity loss and service disruption.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: disable smartcard emulation and smartcard redirection in the FreeRDP client (the flaw is reachable only when both are enabled); restrict outbound RDP connections from managed endpoints to an allowlist of trusted, internally controlled servers; block or tightly control connections to external RDP hosts; deploy an alternative supported RDP client for users who require smartcard functionality; and monitor endpoint logs for client process aborts or WINPR_ASSERT terminations as an indicator of attempted exploitation.

Threat Intelligence Overview

EPSS Score
0.3%
Top 82% exploitable
Prevalence
High
widely-deployed open-source RDP client library embedded in many Linux remote-access tools
Data Quality
5 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 0.3%
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Medium
Technical Impact
Partial

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