CVE-2026-23884

9.8 CRITICAL

📋 TL;DR

CVE-2026-23884 is a use-after-free vulnerability in FreeRDP clients where offscreen bitmap deletion leaves a pointer to freed memory. A malicious RDP server can exploit this to cause client crashes (DoS) and potentially achieve remote code execution depending on heap conditions. All FreeRDP clients prior to version 3.21.0 are affected.

💻 Affected Systems

Products:
  • FreeRDP
Versions: All versions prior to 3.21.0
Operating Systems: Linux, Windows, macOS, BSD systems running FreeRDP
Default Config Vulnerable: ⚠️ Yes
Notes: Any FreeRDP client connecting to RDP servers is vulnerable regardless of configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution on client systems, allowing attacker to take full control of the FreeRDP client machine.

🟠

Likely Case

Client crash/denial of service with potential heap corruption visible in crash dumps.

🟢

If Mitigated

No impact if patched version is used or if connections are restricted to trusted servers.

🌐 Internet-Facing: HIGH - FreeRDP clients connecting to untrusted RDP servers over the internet are directly exposed.
🏢 Internal Only: MEDIUM - Risk exists when connecting to internal servers, but attack surface is reduced if internal servers are trusted.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: MEDIUM

Exploitation requires a malicious RDP server that the client connects to. The vulnerability is triggered by specific update packets sent during RDP sessions.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.21.0

Vendor Advisory: https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-cfgj-vc84-f3pp

Restart Required: Yes

Instructions:

1. Download FreeRDP 3.21.0 or later from official repositories. 2. Uninstall previous versions. 3. Install the patched version. 4. Restart any running FreeRDP processes or the system.

🔧 Temporary Workarounds

Restrict RDP connections

all

Only allow FreeRDP connections to trusted, verified RDP servers

Network segmentation

all

Isolate FreeRDP clients from untrusted networks using firewalls

🧯 If You Can't Patch

  • Implement strict network controls to only allow FreeRDP connections to trusted internal servers
  • Monitor for crash events in FreeRDP processes and investigate any unexpected terminations

🔍 How to Verify

Check if Vulnerable:

Check FreeRDP version with 'xfreerdp --version' or equivalent command. If version is below 3.21.0, the system is vulnerable.

Check Version:

xfreerdp --version

Verify Fix Applied:

After patching, verify version is 3.21.0 or higher using 'xfreerdp --version'

📡 Detection & Monitoring

Log Indicators:

  • FreeRDP process crashes
  • Segmentation fault errors in system logs
  • Unexpected FreeRDP termination

Network Indicators:

  • RDP connections to unknown/untrusted servers
  • Unusual RDP traffic patterns

SIEM Query:

process_name:"xfreerdp" AND (event_type:crash OR exit_code:139 OR exit_code:-1073741819)

🔗 References

📤 Share & Export