Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain local low-privilege access
-
DeliveryPlant crafted v3 persistent cache file
-
ExploitVictim loads cache in FreeRDP client
-
ExecutionWrapped size calc undersizes buffer, fread overflows heap
-
ImpactExecute code in client user context
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Heap 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 | Requires the FreeRDP client (before 3.32.0) to read a crafted v3 persistent bitmap cache file - i.e. the persistent bitmap caching feature must be in use and the malicious cache file must be present on the system and loaded during a session (UI:P / passive interaction). The attacker needs local access with low privileges (PR:L / AV:L) to supply or substitute the cache file; there is no remote or unauthenticated path. Limiting factors that reduce real-world risk: exploitation is local-only, depends on the victim loading the poisoned cache, requires existing low-privilege access, and applies only to FreeRDP versions prior to 3.32.0 using persistent cache v3 files. |
| Impact | The input provides a CVSS 4.0 base score of 7.0 (High) with vector AV:L/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H. The signals are internally consistent: this is a LOCAL attack (AV:L), not network-facing, requiring low-level privileges (PR:L) and passive user interaction (UI:P) - i.e. a victim must load/process a session that reads the attacker-supplied persistent bitmap cache file. Technical impact is high across confidentiality, integrity, and availability because a heap overflow can lead to code execution in the FreeRDP client context. No EPSS score, no CISA KEV listing, and no POC indicator were provided in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation. Net assessment: this is a legitimate memory-corruption bug with code-execution potential, but the local vector plus the requirement for privileges AND user interaction make it a moderate, not critical, operational priority - it is not remotely or mass-exploitable like network-facing RDP vulnerabilities. Treat as a patch-in-normal-cycle issue unless FreeRDP is used in a context where untrusted cache files can be introduced. Note: EPSS/KEV/POC data is absent (not necessarily zero risk - simply not supplied), so widespread-exploitation likelihood cannot be quantified from available data. |
| Exploit ScenarioDerived | A local, low-privileged attacker plants a maliciously crafted v3 persistent bitmap cache file where a FreeRDP client will read it; when the victim starts or resumes a session that loads the cache, persistent_cache_read_entry_v3 processes attacker-controlled width/height values that wrap the size calculation in persist_cache_get_data, so a subsequent fread overflows an undersized heap buffer. The resulting corruption can crash the client or be leveraged for arbitrary code execution in the user's context. No public exploit was identified at time of analysis, and exploitation is constrained by the low-complexity (AC:L) but local and interaction-dependent nature of the flaw. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Heap buffer overflow in FreeRDP before 3.32.0 allows a local attacker with low privileges to corrupt memory and potentially execute code by supplying a crafted v3 persistent bitmap cache file. The vulnerability is triggered when the FreeRDP client processes a malicious cache file with crafted width and height values, causing an integer overflow in size calculation and a subsequent heap overflow via fread. Exploitation requires the victim to load the poisoned cache during a session (passive user interaction); no public exploit code has been identified at time of analysis.
RemediationAI
Upgrade FreeRDP to version 3.32.0 or later, which contains the fix for the heap buffer overflow. The patch is available from the official FreeRDP repository and is referenced in the GitHub Security Advisory (GHSA-945c-qq5h-jqwp). If immediate patching is not possible, disable persistent bitmap caching in the FreeRDP client configuration to prevent the loading of crafted cache files; however, this may degrade performance. Additionally, restrict local file system permissions to prevent low-privileged users from placing malicious cache files in locations that FreeRDP accesses. Note that the vulnerability requires local access and user interaction, so limiting untrusted local access reduces risk.
Affected VersionsENISA
Affected Packages
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 Remote Desktop Protocol (RDP) client. The vulnerability resides in the persistent bitmap cache implementation, specifically the function persistent_cache_read_entry_v3, which parses version 3 persistent cache files. The root cause is a heap-based buffer overflow (CWE-122) arising from an integer overflow in persist_cache_get_data: large width and height values from the cache entry cause the size calculation to wrap, leading to an undersized buffer allocation. A subsequent fread operation then writes beyond the buffer bounds, enabling memory corruption. The CVSS vector (AV:L/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H) indicates that the attack requires local access with low privileges and passive user interaction (the victim must load the crafted file). The CPE cpe:2.3:a:freerdp:freerdp confirms that all versions prior to 3.32.0 are affected.
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
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Local crafted-file vector (AV:L) with low privileges (PR:L) and required victim load of the cache file (UI:R); heap overflow yields code execution so C/I/A:H, scope unchanged.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
FreeRDP before 3.32.0 contains a heap buffer overflow vulnerability in persistent_cache_read_entry_v3 that allows local attackers to corrupt memory by supplying a crafted v3 persistent cache file. Attackers can set large width and height values that wrap the size calculation in persist_cache_get_data, causing fread to overflow an undersized buffer and potentially execute code.
Technical POC Analysis
Evidence base: GHSA-945c-qq5h-jqwp only.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Organizations using FreeRDP for remote desktop connectivity face a high-severity memory corruption flaw that could allow an attacker to execute arbitrary code when a user loads a specially crafted cache file. The vulnerability affects versions before 3.32.0 and requires local access and user interaction, but successful exploitation could lead to unauthorized system control, data theft, or operational disruption. Security leadership should act to limit exposure and prepare for patching once available.
No vendor-released patch identified at time of analysis. Interim mitigations include: restricting the loading of bitmap cache files to trusted sources, enforcing least-privilege access to limit local attack surface, implementing application control to block untrusted cache files, monitoring for anomalous memory corruption or code execution, and isolating FreeRDP installations where feasible.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
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 heap overflow occurs when a program writes data beyond the bounds of a buffer allocated in the heap memory region.
Related Vulnerabilities in FreeRDP Memory Safety and Resource Exhaustion Flaws
View all 10Use-after-free in FreeRDP xf_clipboard_format_equal before 3.23.0. Clipboard format comparison uses freed memory. Fifth
Use-after-free in FreeRDP xf_AppUpdateWindowFromSurface before 3.23.0. Surface-to-window update triggers memory corrupti
Use-after-free in FreeRDP xf_SetWindowMinMaxInfo before version 3.23.0. X11 client window management triggers memory cor
Use-after-free in FreeRDP xf_cliprdr_provide_data clipboard handling before 3.23.0. Clipboard data exchange triggers mem
FreeRDP IRP thread handler has a use-after-free where the IRP is freed by Complete() then accessed on the error path. Fi
FreeRDP drive read heap overflow when server-controlled read length exceeds IRP output buffer. Fixed in 3.20.1. PoC avai
FreeRDP client before 3.20.1 has a heap buffer overflow in AUDIN format processing. A malicious RDP server can corrupt m
Use-after-free in FreeRDP xf_AppUpdateWindowFromSurface before 3.23.0. Different code path from CVE-2026-25953. PoC and
FreeRDP is a free implementation of the Remote Desktop Protocol. Rated critical severity (CVSS 9.8), this vulnerability
FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical
FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical
FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical
EUVD-2026-102560
GHSA-hx89-54wj-ffmg
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB