CVE-2026-23530
📋 TL;DR
FreeRDP clients prior to version 3.21.0 contain a heap buffer overflow vulnerability in the planar bitmap decompression function. A malicious RDP server can exploit this to crash the client (DoS) or potentially execute arbitrary code on the client system. This affects all FreeRDP client users connecting to untrusted RDP servers.
💻 Affected Systems
- FreeRDP
📦 What is this software?
Freerdp by Freerdp
⚠️ Risk & Real-World Impact
Worst Case
Remote code execution on the client system, allowing full compromise of the client machine.
Likely Case
Client crash (denial of service) with potential heap corruption that could lead to code execution depending on memory allocator and heap layout.
If Mitigated
No impact if patched version is used or if clients only connect to trusted servers.
🎯 Exploit Status
Exploitation requires the client to connect to a malicious server. No authentication is needed as the vulnerability is triggered during normal RDP protocol handling.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 3.21.0
Vendor Advisory: https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-r4hv-852m-fq7p
Restart Required: Yes
Instructions:
1. Download FreeRDP 3.21.0 or later from the official repository. 2. Uninstall the old version. 3. Install the new version. 4. Restart any applications using FreeRDP.
🔧 Temporary Workarounds
Disable planar compression
allConfigure FreeRDP to disable planar bitmap compression which triggers the vulnerable code path
xfreerdp /compression-level:0
Network segmentation
allRestrict FreeRDP clients to only connect to trusted RDP servers using firewall rules
🧯 If You Can't Patch
- Only allow FreeRDP connections to trusted, verified RDP servers
- Implement network monitoring for abnormal RDP traffic patterns
🔍 How to Verify
Check if Vulnerable:
Check FreeRDP version with: xfreerdp --version or freerdp --version
Check Version:
xfreerdp --version 2>/dev/null || freerdp --version 2>/dev/null
Verify Fix Applied:
Verify version is 3.21.0 or higher: xfreerdp --version | grep -q '3.21.0' && echo 'Patched'
📡 Detection & Monitoring
Log Indicators:
- FreeRDP client crashes with segmentation faults
- Abnormal termination of RDP sessions
Network Indicators:
- RDP connections to unknown/untrusted servers
- Unusual RDP traffic patterns
SIEM Query:
process_name:"xfreerdp" OR process_name:"freerdp" AND (event_type:"crash" OR exit_code:139)
🔗 References
- https://github.com/FreeRDP/FreeRDP/blob/38514dfa5813aa945a86cfbcec279033f8394468/libfreerdp/codec/planar.c#L1689-L1696
- https://github.com/FreeRDP/FreeRDP/blob/38514dfa5813aa945a86cfbcec279033f8394468/libfreerdp/codec/planar.c#L1713-L1716
- https://github.com/FreeRDP/FreeRDP/blob/38514dfa5813aa945a86cfbcec279033f8394468/libfreerdp/codec/planar.c#L951-L953
- https://github.com/FreeRDP/FreeRDP/releases/tag/3.21.0
- https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-r4hv-852m-fq7p