CVE-2026-23533
📋 TL;DR
A heap buffer overflow vulnerability in FreeRDP's ClearCodec decode path allows malicious RDP servers to trigger client-side memory corruption. This can cause denial of service (crash) and potentially remote code execution depending on heap conditions. All FreeRDP clients connecting to untrusted servers are affected.
💻 Affected Systems
- FreeRDP
📦 What is this software?
Freerdp by Freerdp
⚠️ Risk & Real-World Impact
Worst Case
Remote code execution on the client system, allowing attacker to gain control of the client machine.
Likely Case
Client application crash (denial of service) with potential for heap corruption that could lead to information disclosure or further exploitation.
If Mitigated
Limited to denial of service if exploit fails to achieve code execution due to heap layout or mitigations like ASLR.
🎯 Exploit Status
Exploitation requires controlling the RDP server or compromising a legitimate server. The vulnerability is in client-side code triggered by server responses.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 3.21.0
Vendor Advisory: https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-32q9-m5qr-9j2v
Restart Required: Yes
Instructions:
1. Download FreeRDP 3.21.0 or later from official sources. 2. Uninstall previous versions. 3. Install the patched version. 4. Restart any applications using FreeRDP.
🔧 Temporary Workarounds
Disable RDPGFX ClearCodec
allDisable the vulnerable ClearCodec feature in FreeRDP configuration
Add /gfx:avc420 to FreeRDP connection parameters instead of default /gfx
Network Segmentation
allRestrict FreeRDP clients to only connect to trusted, internal RDP servers
🧯 If You Can't Patch
- Implement strict network controls to only allow FreeRDP connections to trusted, verified RDP servers.
- Monitor for crash events in FreeRDP clients and investigate any connections to untrusted servers.
🔍 How to Verify
Check if Vulnerable:
Check FreeRDP version with 'xfreerdp --version' or equivalent command. Versions below 3.21.0 are vulnerable.
Check Version:
xfreerdp --version 2>&1 | head -1
Verify Fix Applied:
Verify installed version is 3.21.0 or higher using version check command.
📡 Detection & Monitoring
Log Indicators:
- FreeRDP client crash logs
- Segmentation fault or access violation in FreeRDP process
- Unexpected termination of RDP sessions
Network Indicators:
- RDP connections to untrusted or unknown servers
- Unusual RDP traffic patterns from FreeRDP clients
SIEM Query:
process_name:"freerdp" AND (event_type:"crash" OR exit_code:139 OR exit_code:-1073741819)
🔗 References
- https://github.com/FreeRDP/FreeRDP/blob/38514dfa5813aa945a86cfbcec279033f8394468/libfreerdp/codec/clear.c#L268-L281
- https://github.com/FreeRDP/FreeRDP/blob/38514dfa5813aa945a86cfbcec279033f8394468/libfreerdp/codec/clear.c#L336
- https://github.com/FreeRDP/FreeRDP/releases/tag/3.21.0
- https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-32q9-m5qr-9j2v