Skip to main content

FreeRDP EUVDEUVD-2026-98705

| CVE-2026-109940 MEDIUM
Stack-based Buffer Overflow (CWE-121)
2026-10-13 VulnCheck GHSA-9579-j8rw-69mx
5.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Insert malicious PKCS#11 token or load rogue module
  2. Exploit
    Victim initiates FreeRDP key enumeration
  3. Execution
    Hex-encode 55-64 byte CKA_ID into 128-byte stack buffer
  4. Impact
    Overflow stack and crash client

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Stack buffer bounds checking
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires a FreeRDP client (version 3.0.0-beta1 up to but not including 3.32.0) built on Unix WITH PKCS#11 support enabled - a non-default/optional build configuration. The attacker must supply a malicious PKCS#11 token or module containing a key AND matching certificate that both use a CKA_ID between 55 and 64 bytes, and the victim must initiate key enumeration (typically smart-card authentication). Limiting factors: the physical attack vector (attacker-controlled token/module must reach the victim), the requirement for user interaction to trigger enumeration, and the non-default PKCS#11 build requirement all substantially narrow real-world exploitability; impact is confined to a client-side crash.

Impact

This is a genuinely low-priority issue despite the CWE-121 stack-overflow classification. The authoritative CVSS 4.0 vector (AV:P/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H) scores 5.1 (MEDIUM) and tells a consistent story: the attack vector is PHYSICAL (AV:P), user interaction is required (UI:P), and the only impact is availability (VA:H) - the advisory itself describes the outcome merely as 'causing a crash,' not code execution. Although CWE-121 stack overflows are often a stepping stone to RCE, both the vendor description and the CVSS impact metrics explicitly limit this to a denial-of-service/crash, with no confidentiality or integrity impact. No KEV listing, no EPSS score, and no POC were provided in the intelligence, so exploitation is: no public exploit identified at time of analysis. The physical attack vector plus the requirement for a FreeRDP build with PKCS#11 support and victim-initiated key enumeration make real-world exploitation narrow and targeted rather than widespread. One caveat to verify: the overflow writes attacker-controlled hex data onto the stack, so RCE cannot be fully ruled out on builds without stack protections - but the vendor and CVSS both assess impact as availability-only, and that assessment should be trusted absent contrary evidence.

Exploit ScenarioDerived

An attacker presents a malicious PKCS#11 token (e.g., a rogue smart card) or convinces a user to load a hostile PKCS#11 module containing a key and matching certificate whose CKA_ID is 55-64 bytes long. When the FreeRDP client enumerates keys on the token (such as during smart-card logon), wprintKeyName() hex-encodes the oversized CKA_ID into a fixed 128-byte stack buffer, overflowing it and crashing the client. No public exploit code was identified in the provided data.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 13, 2026

FreeRDP clients on Unix built with PKCS#11 support (3.0.0-beta1 up to but not including 3.32.0) can be crashed by a stack-based buffer overflow in WinPR's NCrypt PKCS#11 provider when an attacker-supplied PKCS#11 token or module presents a key and matching certificate whose CKA_ID is between 55 and 64 bytes long and the victim triggers key enumeration, typically during smart-card authentication. The helper wprintKeyName() hex-encodes the CKA_ID into a fixed 128-byte stack buffer, so a 64-byte ID produces 128 characters with no room for the terminating NUL, and the write is not bounded by the destination size. Impact is confined to a client-side crash with no demonstrated code execution or data disclosure, and exploitability is sharply narrowed by three prerequisites: the non-default PKCS#11 build configuration, physical delivery of a malicious token/module to the victim, and user interaction to start enumeration; no public exploit code or active exploitation has been identified at time of analysis, and this is a low-priority issue despite the CWE-121 classification.

RemediationAI

Upgrade to FreeRDP 3.32.0 or later, which is the vendor-released patch boundary for this issue; the fix is documented in the upstream advisory at https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-g8jw-gv54-r94p. If upgrading immediately is not possible, the most effective workaround is to rebuild the client without PKCS#11 support, eliminating the vulnerable code path entirely at the cost of losing PKCS#11/smart-card authentication in FreeRDP; alternatively, restrict FreeRDP usage to environments where only organization-issued, trusted PKCS#11 tokens and modules are permitted, since the attack requires the victim to load an attacker-controlled module or token. Additional compensating controls include avoiding the mounting or loading of untrusted PKCS#11 modules on client workstations, disabling or tightly scoping smart-card-based RDP logon where it is not operationally required (trade-off: loss of a strong authentication factor and possible help-desk overhead), and monitoring for client crashes during key enumeration as a detection signal. Note that the impact is limited to a client-side denial of service, so no server-side mitigation is needed; details are also available at https://www.vulncheck.com/advisories/freerdp-3.0.0-beta1-before-3.32.0-stack-buffer-overflow-via-pkcs-11-key-name.

Affected VersionsENISA

FreeRDP 3.0.0-beta1 <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 an open-source implementation of the Remote Desktop Protocol whose portable runtime layer, WinPR, reimplements Windows APIs on POSIX systems. The affected component is WinPR's NCrypt PKCS#11 provider, which maps the Windows CNG/NCrypt key-storage API onto a PKCS#11 (Cryptoki) module so that RDP smart-card logon can enumerate and use cryptographic keys held on hardware tokens. During key enumeration the provider formats a display name for each key via wprintKeyName(), hex-encoding the key's PKCS#11 CKA_ID attribute into a fixed-size 128-byte stack buffer without clamping the encoded length to the destination. Because hex encoding doubles the input size, a CKA_ID of 64 bytes fills the buffer exactly and the trailing NUL terminator writes past it, while the documented trigger range of 55-64 bytes reaches the same unbounded copy path; this is a classic CWE-121 (stack-based buffer overflow) caused by a fixed-length stack array combined with an unchecked length calculation. Only Unix builds compiled with PKCS#11 support are affected, which is an optional, non-default configuration; the affected package is tracked generically by CPE cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:* with the fixed range 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

Vendor (VulnCheck) PRIMARY 5.1 MEDIUM
CVSS:4.0/AV:P/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 4.3 MEDIUM

Attacker must supply a malicious PKCS#11 token/module (AV:P) and the victim must trigger key enumeration (UI:R); the flaw only crashes the client, so A:H with C:N/I:N.

3.1 AV:P/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
4.0 AV:P/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
Physical
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
MEDIUM 5.1

DescriptionCVE.org

FreeRDP 3.0.0-beta1 before 3.32.0 on Unix builds with PKCS#11 support has a stack-based buffer overflow in wprintKeyName() in WinPR's NCrypt PKCS#11 provider. It hex-encodes a key's CKA_ID, which can be up to 64 bytes, into a fixed 128-byte stack buffer. An attacker supplying a malicious PKCS#11 token or module whose key and matching certificate use a 55- to 64-byte CKA_ID can overflow the client's stack during key enumeration, causing a crash.

Threat Intelligence Overview

EPSS Score
0.1%
Top 96% exploitable
Prevalence
High
FreeRDP is the standard open-source RDP client bundled across Linux desktops
Data Quality
6 sources
Confidence: High

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Small
Automatable
No
Human Impact· derived
High
Technical Impact
Partial

Priority Score

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

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

A stack-based buffer overflow occurs when a program writes more data to a buffer located on the stack than it was allocated to hold.

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