FreeRDP
CVE-2026-23530
HIGH
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure victim to attacker RDP server
-
DeliveryClient connects, codec negotiates planar
-
ExploitServer sends oversized bitmap dimensions
-
ExecutionRLE decode overflows heap buffer
-
ImpactClient crash and heap corruption (DoS, possible RCE)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2021 - Vulnerable and Outdated Components
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 | Exploitation requires the victim's FreeRDP client (any version before 3.21.0) to establish an RDP session to an attacker-controlled or compromised server that emits planar/RDP6-codec bitmap updates - the malicious server sends |
| Impact | Signals are mixed and point to moderate, conditional risk rather than an urgent mass-exploitation event. The vendor CVSS 4.0 vector (AV:N/AC:L/PR:N/UI:N/VA:H, score 7.7) scores only availability impact (VC:N/VI:N/VA:H), consistent with the description framing this primarily as a DoS/crash; code execution is explicitly described as speculative and allocator-dependent, so the high score is driven by reliable crashes, not confirmed RCE. EPSS is low (0.15%, 35th percentile) and the CVE is not in CISA KEV, indicating no evidence of widespread active exploitation, even though POC/exploit code is publicly referenced in the GHSA. The key caveat is directionality: this is a server-to-client (reverse) attack - the attacker must operate or compromise an RDP server and induce a victim to connect, which the vendor vector encodes as UI:N but realistically requires the victim to initiate an outbound RDP session. That lure requirement materially limits opportunistic exploitation compared to a server-side network bug. |
| Exploit ScenarioDerived | An attacker stands up a malicious RDP server (or compromises a legitimate one) and lures a victim to connect, e.g., by distributing a crafted .rdp file. Once the FreeRDP client connects, the server sends a planar-encoded bitmap update declaring dimensions larger than the client's allocated codec buffer, overflowing the heap during RLE decode. The reliable outcome is a client crash (DoS); with favorable heap layout the corruption could be leveraged toward code execution, and POC code referenced in the GHSA demonstrates the trigger. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv5 – Jun 30, 2026
Client-side heap buffer overflow in FreeRDP before version 3.21.0 lets a malicious or compromised RDP server crash connecting clients and potentially corrupt heap memory. The flaw lives in the planar codec's freerdp_bitmap_decompress_planar, which fails to bound-check decoded bitmap dimensions before RLE decompression, yielding a denial-of-service with a speculative code-execution path. Publicly available exploit code exists via the GitHub Security Advisory, though EPSS exploitation probability remains low (0.15%) and it is not on CISA KEV.
Earlier versions of this analysis (4)
Client-side heap buffer overflow in FreeRDP prior to 3.21.0 lets a malicious or compromised RDP server crash the connecting client and potentially corrupt heap memory. The flaw lives in freerdp_bitmap_decompress_planar, which fails to validate the server-supplied nSrcWidth/nSrcHeight against the codec's allocated maxWidth/maxHeight before RLE-decoding planar bitmaps. Publicly available exploit material exists (GitHub Security Advisory GHSA-r4hv-852m-fq7p); EPSS is low at 0.15% (35th percentile) and there is no public exploit identified as actively used.
Client-side heap buffer overflow in FreeRDP before 3.21.0 allows a malicious or compromised RDP server to crash connecting clients and potentially corrupt heap memory, because freerdp_bitmap_decompress_planar fails to validate attacker-supplied nSrcWidth/nSrcHeight against the planar decoder's maxWidth/maxHeight before RLE decoding. The primary confirmed impact is denial of service (client crash), with code-execution theoretically possible depending on allocator behavior, though the vendor CVSS scores only availability impact. Publicly available exploit code exists; this is not listed in CISA KEV and carries a low EPSS score of 0.15%.
Client-side heap buffer overflow in FreeRDP prior to 3.21.0 allows a malicious or compromised RDP server to crash a connecting client and potentially corrupt heap memory. The flaw lives in the planar codec path (freerdp_bitmap_decompress_planar), which fails to validate attacker-supplied bitmap dimensions before RLE decoding. Publicly available exploit code exists, though the issue is not listed in CISA KEV and EPSS exploitation probability remains low (0.15%, 35th percentile).
Client-side heap overflow in FreeRDP bitmap decompression enables RCE via malicious RDP servers.
RemediationAI
Vendor-released patch: FreeRDP 3.21.0 - upgrade all FreeRDP-based clients to 3.21.0 or later (see https://github.com/FreeRDP/FreeRDP/releases/tag/3.21.0 and advisory https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-r4hv-852m-fq7p). For Red Hat-based systems, apply the corresponding errata (e.g., RHSA-2026:2081 / RHSA-2026:3041 at https://access.redhat.com/errata/RHSA-2026:2081) and restart affected client applications. Where immediate patching is not possible, the practical compensating control is to restrict outbound RDP: only connect to known-trusted RDP servers and block or proxy outbound TCP/3389 (and RDP-over-gateway endpoints) to untrusted hosts, accepting the trade-off that this breaks ad-hoc connections to new servers. Because exploitation requires the client to connect to a malicious server, enforcing server allow-lists and avoiding connections initiated from untrusted links (emails, documents containing .rdp files) meaningfully reduces exposure until the upgrade is deployed.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
FreeRDP is a widely used open-source implementation of the Remote Desktop Protocol (RDP). The bug is a CWE-122 heap-based buffer overflow in the planar (RDP6) bitmap codec at libfreerdp/codec/planar.c. During freerdp_bitmap_decompress_planar, the server-supplied nSrcWidth/nSrcHeight values are not validated against the codec context's allocated planar->maxWidth/maxHeight limits before the RLE decode loop writes pixel data, so an oversized declared bitmap drives writes past the bounds of the heap buffer sized for the maximum dimensions. The affected component is the RDP client decoder, meaning the trust boundary crossed is server-to-client: the server is the untrusted party feeding malformed graphics updates.
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:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:P
Server-to-client attack needs the victim to connect (UI:R); no auth on the malicious path (PR:N); confirmed impact is a client crash only, so C:N/I:N/A:H.
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
5DescriptionCVE.org
FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.21.0,freerdp_bitmap_decompress_planar does not validate nSrcWidth/nSrcHeight against planar->maxWidth/maxHeight before RLE decode. A malicious server can trigger a client‑side heap buffer overflow, causing a crash (DoS) and potential heap corruption with code‑execution risk depending on allocator behavior and surrounding heap layout. Version 3.21.0 contains a patch for the issue.
Executive ViewAI
FreeRDP versions prior to 3.21.0 are vulnerable to a heap buffer overflow triggered by malicious RDP servers, enabling attackers to crash client processes and potentially execute arbitrary code on affected systems. Organizations using FreeRDP for remote desktop access face immediate disruption risk and data compromise exposure if clients connect to compromised or untrusted RDP infrastructure. A vendor patch is available; expedited deployment is required to eliminate this attack vector.
Apply vendor patch.
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.
Affected Products (CPE)CVE.org
Use-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
Same weakness CWE-122 – Heap-based Buffer Overflow
View allSame technique Buffer Overflow
View allVendor StatusVendor
SUSE
Severity: Critical| Product | Status |
|---|---|
| Container suse/sl-micro/6.0/baremetal-os-container:latest Container suse/sl-micro/6.0/kvm-os-container:latest Container suse/sl-micro/6.0/rt-os-container:latest | Affected |
| Container suse/sl-micro/6.0/base-os-container:latest Container suse/sl-micro/6.0/toolbox:latest Image SL-Micro Image SLE-Micro Image SLE-Micro-Azure Image SLE-Micro-BYOS Image SLE-Micro-BYOS-Azure Image SLE-Micro-BYOS-EC2 Image SLE-Micro-BYOS-GCE Image SLE-Micro-EC2 Image SLE-Micro-GCE | Affected |
| Container suse/sl-micro/6.1/baremetal-os-container:2.2.1-7.43 Container suse/sl-micro/6.1/kvm-os-container:2.2.1-5.67 Container suse/sl-micro/6.1/rt-os-container:2.2.1-5.57 | Affected |
| Container suse/sl-micro/6.1/base-os-container:2.2.1-5.64 Image SL-Micro-Azure Image SL-Micro-BYOS-Azure Image SL-Micro-BYOS-EC2 Image SL-Micro-BYOS-GCE Image SL-Micro-EC2 Image SUSE-Multi-Linux-Manager-Proxy-BYOS-Azure Image SUSE-Multi-Linux-Manager-Proxy-BYOS-EC2 Image SUSE-Multi-Linux-Manager-Proxy-BYOS-GCE Image SUSE-Multi-Linux-Manager-Server-Azure-llc Image SUSE-Multi-Linux-Manager-Server-Azure-ltd Image SUSE-Multi-Linux-Manager-Server-BYOS-Azure Image SUSE-Multi-Linux-Manager-Server-BYOS-EC2 Image SUSE-Multi-Linux-Manager-Server-BYOS-GCE Image SUSE-Multi-Linux-Manager-Server-EC2-llc Image SUSE-Multi-Linux-Manager-Server-EC2-ltd | Affected |
| SUSE Liberty Linux 8 | Fixed |
| SUSE Liberty Linux 9 | Fixed |
| SUSE Linux Enterprise Desktop 15 SP7 SUSE Linux Enterprise Server 15 SP7 SUSE Linux Enterprise Server for SAP Applications 15 SP7 SUSE Linux Enterprise Workstation Extension 15 SP7 | Fixed |
| SUSE Linux Enterprise Module for Package Hub 15 SP7 | Fixed |
| SUSE Linux Enterprise Server 12 SP5-LTSS | Fixed |
| SUSE Linux Enterprise Server 16.0 SUSE Linux Enterprise Server for SAP applications 16.0 | Fixed |
| SUSE Linux Enterprise Server LTSS Extended Security 12 SP5 | Fixed |
| openSUSE Leap 15.6 | Fixed |
| openSUSE Leap 16.0 | Fixed |
| openSUSE Tumbleweed | Fixed |
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Desktop 15 SP7 | Fixed |
| SUSE Linux Enterprise Desktop 15 SP7 | Fixed |
| SUSE Linux Enterprise Module for Package Hub 15 SP7 | Fixed |
| SUSE Linux Enterprise Module for Package Hub 15 SP7 | Fixed |
| SUSE Linux Enterprise Server 15 SP7 | Fixed |
| SUSE Linux Enterprise Server 15 SP7 | Fixed |
| SUSE Linux Enterprise Server 16.0 | Fixed |
| SUSE Linux Enterprise Server 16.1 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Fixed |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Fixed |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Fixed |
| SUSE Linux Enterprise Workstation Extension 15 SP7 | Fixed |
| SUSE Linux Enterprise Workstation Extension 15 SP7 | Fixed |
| openSUSE Leap 15.6 | Fixed |
| SUSE Linux Enterprise Server 12 SP5 | Fixed |
| SUSE Linux Enterprise Server 12 SP5-LTSS | Fixed |
| SUSE Linux Enterprise Server 12 SP5-LTSS Extended Security | Fixed |
| SUSE Linux Enterprise Server 15 SP4 | Fixed |
| SUSE Linux Enterprise Server 15 SP5 | Fixed |
| SUSE Linux Enterprise Server 15 SP6 | Fixed |
| SUSE Linux Enterprise Server LTSS Extended Security 12 SP5 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 12 SP5 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Fixed |
| SUSE Linux Enterprise Desktop 12 SP2 | Fixed |
| SUSE Linux Enterprise Desktop 12 SP3 | Fixed |
| SUSE Linux Enterprise Desktop 12 SP4 | Fixed |
| SUSE Linux Enterprise Desktop 15 SP4 | Fixed |
| SUSE Linux Enterprise Desktop 15 SP5 | Fixed |
| SUSE Linux Enterprise Desktop 15 SP6 | Fixed |
| SUSE Linux Enterprise Module for Package Hub 15 SP4 | Fixed |
| SUSE Linux Enterprise Module for Package Hub 15 SP5 | Fixed |
| SUSE Linux Enterprise Module for Package Hub 15 SP6 | Fixed |
| SUSE Linux Enterprise Server 12 SP2 | Fixed |
| SUSE Linux Enterprise Server 12 SP3 | Fixed |
| SUSE Linux Enterprise Server 12 SP4 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 12 SP2 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 12 SP3 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 12 SP4 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Fixed |
| SUSE Linux Enterprise Software Development Kit 12 SP2 | Fixed |
| SUSE Linux Enterprise Software Development Kit 12 SP3 | Fixed |
| SUSE Linux Enterprise Software Development Kit 12 SP4 | Fixed |
| SUSE Linux Enterprise Software Development Kit 12 SP5 | Fixed |
| SUSE Linux Enterprise Workstation Extension 12 SP2 | Fixed |
| SUSE Linux Enterprise Workstation Extension 12 SP3 | Fixed |
| SUSE Linux Enterprise Workstation Extension 12 SP4 | Fixed |
| SUSE Linux Enterprise Workstation Extension 12 SP5 | Fixed |
| SUSE Linux Enterprise Workstation Extension 15 SP4 | Fixed |
| SUSE Linux Enterprise Workstation Extension 15 SP5 | Fixed |
| SUSE Linux Enterprise Workstation Extension 15 SP6 | Fixed |
| openSUSE Leap 15.4 | Fixed |
| openSUSE Leap 15.5 | Fixed |
NVD
CVE.org
EPSS
GitHub
VulDB
Exploit-DB