Skip to main content

FreeRDP CVE-2026-109249

| EUVDEUVD-2026-97693 MEDIUM
Out-of-bounds Read (CWE-125)
2026-10-12 VulnCheck GHSA-jp53-9rp8-7w3q
6.8
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Craft malicious .msrcIncident invitation and password
  2. Exploit
    Deliver file to victim via email or share
  3. Execution
    Victim opens file in xfreerdp
  4. Impact
    Heap out-of-bounds read crashes client

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK

1 technique across 1 tactic: Collection

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

Exploitation Conditions

Exploitation requires the victim to open an attacker-supplied Windows Remote Assistance invitation file (.msrcIncident) in the FreeRDP client (xfreerdp), along with the accompanying password that decrypts the ConnectionString2 blob parsed by freerdp_assistance_parse_all_elements_of(). Limiting factors: this is a local, file-parsing attack (AV:L) that triggers before any RDP connection is made, so it cannot be reached by merely connecting to a server; it depends on social engineering the user into opening the crafted invitation (UI required); and affected builds are FreeRDP 3.0.0 through before 3.32.0. The impact is a client crash (denial of service) only.

Impact

This is a client-side denial-of-service issue with a deliberately modest real-world priority. The CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P, VA:H with VC:N and VI:N) scores 6.8 (Medium) and is internally consistent with the description: exploitation is local, requires the victim to open an attacker-supplied file, and yields only an availability impact (a crash of xfreerdp), with no confidentiality or integrity impact. No EPSS score, SSVC decision, KEV listing, or public POC was provided, so per the precision rules this is 'no public exploit identified at time of analysis.' The source-code evidence (the patch adds a 'vlen > len' bounds check before strnlen and shrinks the scan window) confirms the root cause is a bounded heap over-read that advances the cursor without reducing remaining length - the kind of bug that reliably crashes rather than leaks or executes code. Signals are coherent, not conflicting, with one caveat: the 'Information Disclosure' tag overstates impact, since CVSS VC:N and the description (crash only, before any RDP connection) indicate availability-only impact. CWE-125 (out-of-bounds read) can in principle leak adjacent heap memory, but there is no evidence here that read data is returned to an attacker, and the vendor-rated VC:N argues against practical disclosure. Net: a legitimate bug worth patching on the normal cycle, but not an emergency given local vector, required user interaction, and no exploitation/POC signals.

Exploit ScenarioDerived

An attacker crafts a malicious Windows Remote Assistance invitation (.msrcIncident file) together with a matching password and delivers it to a victim via email or a shared link. When the victim opens the file with xfreerdp, the parser scans past the end of the decrypted ConnectionString2 buffer and the client crashes before any RDP connection is established. No public exploit code was identified at time of analysis, and the outcome is a crash (denial of service), not code execution.

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 12, 2026

A heap out-of-bounds read in FreeRDP's Remote Assistance invitation parsing (freerdp_assistance_parse_all_elements_of() in libfreerdp/common/assistance.c) crashes the xfreerdp client when it opens a crafted .msrcIncident file, and it occurs while decrypting and parsing the embedded ConnectionString2 blob, before any RDP session is negotiated. Affected builds are FreeRDP 3.0.0 through versions before 3.32.0, and the CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P, VA:H) reflects an unauthenticated local file-parsing attack that nevertheless requires the victim to be socially engineered into opening an attacker-supplied invitation plus its accompanying password. Impact is limited to a client-side denial of service; no confidentiality or integrity loss is scored, and no public exploit code or CISA KEV entry was identified at time of analysis. A vendor patch restoring the remaining-length accounting is available in the 3.32.0 release.

RemediationAI

Upgrade FreeRDP to 3.32.0 or later; the vendor-released patch is the 3.32.0 release containing commit 2a737ce14dfee036a12d2d3e87473ace3e20349b, and the advisory at https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-gvq8-v2fm-ffxv identifies the fixed version, so rebuilding any client that statically links libfreerdp (for example xfreerdp packages shipped by distributions) is required rather than swapping the binary alone. If immediate upgrade is not possible, the effective stopgap is to prevent the parsing path from being reached at all: instruct users never to open .msrcIncident invitation files from untrusted sources, and where feasible remove or block the Remote Assistance file association so a double-click cannot launch xfreerdp against a hostile file; the trade-off is loss of the remote-assistance help-desk workflow, and users may still be able to invoke xfreerdp manually with /assistance, so restrict who can run the client. Network controls are of limited value here because the crash triggers during local file parsing before any RDP connection is attempted, so perimeter filtering or port 3389 restrictions will not mitigate it; host-based controls that quarantine .msrcIncident attachments at the mail gateway are higher leverage but only cover email delivery, not file shares or downloads. Note that the upstream fix also adds mandatory return-value checking across assistance.c, so any downstream patch that only re-adds the length bound without the bound check may be incomplete.

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 implements the Microsoft Remote Assistance workflow, in which a helper receives an .msrcIncident invitation file containing an encrypted ConnectionString2 blob that must be decrypted with a shared password before its key/value elements are extracted. The vulnerable routine, freerdp_assistance_parse_all_elements_of(), walks this decrypted buffer element by element, advancing a parsing cursor after each key/value pair but failing to shrink the remaining buffer length accordingly; the fix commit 2a737ce14dfee036a12d2d3e87473ace3e20349b changes strnlen(data, len) to strnlen(data, len - vlen) and adds a vlen > len bound check so the scan window can never extend past the decrypted buffer. This is a classic CWE-125 out-of-bounds read: the parser trusts its internal length bookkeeping rather than recomputing it from the consumed offset, so a malformed file can make string-scanning functions read past the heap allocation. The same commit also sprinkles WINPR_ATTR_NODISCARD annotations across assistance.c to force callers to check parse results, indicating the maintainers treated unchecked length handling as a systemic weakness in this file. The CPE cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:* confirms the flaw lives in the core FreeRDP library rather than a platform-specific front end, so any client built on libfreerdp 3.0.x-3.31.x inherits the parsing path.

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

Victim must open a local crafted file (AV:L, UI:R, PR:N); the over-read only crashes the client, so C:N/I:N and A:H.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Local
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

DescriptionCVE.org

FreeRDP 3.0.0 before 3.32.0 contains a heap out-of-bounds read in freerdp_assistance_parse_all_elements_of() because it advances its parsing cursor without reducing the remaining length, letting the scan window exceed the decrypted ConnectionString2 buffer. Attackers can supply a crafted .msrcIncident invitation file and password that crash xfreerdp when opened, before any RDP connection.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
High
FreeRDP is the dominant open-source RDP client, embedded in Linux tools like Remmina
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 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
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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