Skip to main content

FreeRDP EUVDEUVD-2026-97694

| CVE-2026-109250 HIGH
Improper Validation of Array Index (CWE-129)
2026-10-12 VulnCheck GHSA-q5vf-vw79-qr24
7.0
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Obtain physical access with malicious smartcard
  2. Delivery
    Present >64 PKCS#11 key objects across slots
  3. Exploit
    Overflow fixed 64-entry array in collect_keys()
  4. Execution
    Corrupt heap with attacker CKA_ID/CKA_LABEL
  5. Impact
    Execute code during smartcard logon

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Array index validation
Exploitation Conditions

Exploitation requires the FreeRDP client (3.0.0 through 3.31.x) to be configured for smartcard logon using the PKCS#11 backend, and the attacker must control the smartcard token presented during authentication - specifically a token that exposes more than 64 public key objects across its slots, with attacker-chosen CKA_ID and CKA_LABEL attribute values. Limiting factors are significant: the attack vector is PHYSICAL (the malicious token must be physically presented to the machine), active user interaction is required (the victim must initiate smartcard logon), and deployments not using PKCS#11 smartcard authentication are unaffected. These constraints confine realistic risk to shared, kiosk, or physically accessible systems where untrusted tokens can be introduced.

Impact

This is a genuine but constrained vulnerability, not a mass-exploitation priority. The CVSS 4.0 vector (AV:P/AC:L/AT:N/PR:N/UI:A) describes a PHYSICAL attack vector requiring active user interaction - the victim must initiate a smartcard logon with an attacker-controlled PKCS#11 token presenting more than 64 public key objects. High impact across confidentiality, integrity and availability (VC:H/VI:H/VA:H) reflects heap corruption that can plausibly lead to code execution in the FreeRDP client process, justifying the 7.0 base score. However, real-world risk is dampened by the physical/local prerequisite: an attacker must supply or substitute the smartcard hardware the user authenticates with, so this is a targeted, hands-on-device scenario rather than remotely scalable. No EPSS score, KEV listing, or POC was provided in the input, and no public exploit identified at time of analysis - all consistent with low expected weaponization. There is no conflicting signal here; the physical vector and lack of exploitation intelligence align. Prioritize patching for environments where untrusted smartcards or hardware tokens may be used (kiosks, shared workstations), and treat it as lower urgency where token provenance is controlled.

Exploit ScenarioDerived

An attacker supplies or substitutes a malicious PKCS#11 smartcard token (e.g., at a shared or kiosk workstation) that enumerates more than 64 public key objects across multiple slots. When the victim initiates FreeRDP smartcard logon, collect_keys() writes past its fixed 64-entry array, corrupting the heap with attacker-chosen CKA_ID and CKA_LABEL data, potentially leading to code execution in the client. No public exploit code is known at time of analysis.

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

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

Alert me

AnalysisAIv1 – Oct 12, 2026

Heap buffer overflow in FreeRDP 3.0.0 through 3.31.x allows an attacker who controls a physical smartcard token to corrupt heap memory during PKCS#11 smartcard logon, potentially achieving code execution with the privileges of the FreeRDP client. The flaw is in collect_keys(), which enumerates public key objects across PKCS#11 slots into a fixed 64-entry array without bounds checking; a token exposing more than 64 keys with attacker-controlled CKA_ID and CKA_LABEL values overflows the array. Exploitation requires PKCS#11 smartcard authentication to be configured, physical presentation of the malicious token, and user-initiated logon, and no public exploit code or active exploitation is known at time of analysis; this is a constrained, physically proximate issue rather than a mass-exploitation priority.

RemediationAI

Upgrade FreeRDP to version 3.32.0 or later, which contains the vendor-released patch for CVE-2026-109250; see the FreeRDP security advisory GHSA-jhv5-m83m-hxhq for details. If immediate upgrading is not possible, disable PKCS#11 smartcard authentication in the FreeRDP client (for example, by removing or not loading the PKCS#11 module and using password or other authentication methods instead) - this eliminates the vulnerable code path but removes smartcard logon functionality. Alternatively, strictly control the physical environment to prevent untrusted smartcard tokens from being presented to affected systems, such as limiting physical access to kiosks or shared workstations; this is a compensating control rather than a fix. No public exploit code or active exploitation is known, but because the issue is a memory corruption bug, applying the patch is strongly recommended.

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 an open-source implementation of the Remote Desktop Protocol (RDP) client. The vulnerability affects the PKCS#11 smartcard backend, which allows the client to use hardware tokens for certificate-based logon. During authentication, collect_keys() iterates over PKCS#11 slots and enumerates public key objects, storing their CKA_ID and CKA_LABEL attributes into a fixed-size array of 64 entries. Because the function does not validate the number of keys returned by the token, a malicious or crafted token that exposes more than 64 public key objects across its slots causes a heap-based out-of-bounds write (CWE-129, improper validation of array index). The overflow is triggered with attacker-chosen attribute data, which may allow heap corruption and potentially arbitrary code execution in the context of the FreeRDP client. Per the CPE cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:*, all FreeRDP versions in the range 3.0.0 through 3.31.x are affected. The CVSS 4.0 vector (AV:P/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N) and the independent CVSS 3.1 assessment (AV:P/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H) both emphasize the physical attack vector (AV:P) and the lack of required privileges (PR:N), while user interaction (UI:A/UI:R) is needed to initiate smartcard logon.

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.0 HIGH
CVSS:4.0/AV:P/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 6.6 MEDIUM

Attacker needs physical presentation of a malicious smartcard (AV:P) and victim-initiated logon (UI:R); no prior auth needed (PR:N); heap corruption yields potential code execution hence C/I/A:H.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

Lifecycle Timeline

2
Patch available
Oct 12, 2026 - 18:03 EUVD
CVE Published
Oct 12, 2026 - 16:04 cve.org
HIGH 7.0

DescriptionCVE.org

FreeRDP 3.0.0 before 3.32.0 contains a heap buffer overflow vulnerability in collect_keys() that allows local attackers to write past the fixed 64-entry keys array during PKCS#11 key enumeration. Attackers controlling smartcard tokens can present more than 64 public key objects across multiple slots to corrupt heap memory with attacker-chosen CKA_ID and CKA_LABEL data during smartcard logon.

Executive ViewAI

Why It Matters

FreeRDP, a widely used remote desktop client, contains a heap buffer overflow (CVE-2026-109250) in its PKCS#11 smartcard logon handling that could allow code execution with client privileges when a user presents a malicious physical smartcard token. The attack requires physical token access, configured smartcard authentication, and user-initiated logon, limiting it to targeted, physically proximate scenarios rather than mass exploitation. Organizations relying on FreeRDP with PKCS#11 smartcards should prioritize mitigating this unpatchable flaw to protect endpoint integrity.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: disable PKCS#11 smartcard authentication in FreeRDP where not required; enforce strict physical control over smartcard tokens; only allow organization-issued tokens; monitor for FreeRDP crashes or anomalous behavior; consider network isolation or alternative clients for sensitive environments.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
High
FreeRDP is the dominant open-source RDP client, embedded in many Linux remote-desktop 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.2%
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
Small
Automatable· derived
No
Human Impact
Medium

Priority Score

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

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

Vendor StatusVendor

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