CVE-2020-11039

8.0 HIGH

📋 TL;DR

This vulnerability in FreeRDP allows a malicious server to read and write arbitrary memory when USB redirection is enabled, due to integer overflows in length checks. Attackers could potentially execute arbitrary code or leak sensitive information. Users of FreeRDP versions 2.0.0 and earlier connecting to untrusted servers are affected.

💻 Affected Systems

Products:
  • FreeRDP
Versions: All versions ≤ 2.0.0
Operating Systems: Linux, Windows, macOS, Unix-like systems
Default Config Vulnerable: ✅ No
Notes: Only vulnerable when USB redirection feature is enabled and connecting to a malicious or compromised server.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution leading to complete system compromise, data exfiltration, or lateral movement within the network.

🟠

Likely Case

Memory corruption leading to application crashes (DoS) or limited information disclosure from the FreeRDP process memory space.

🟢

If Mitigated

No impact if patched or if USB redirection is disabled and connections are restricted to trusted servers.

🌐 Internet-Facing: MEDIUM - Requires connecting to a malicious server, but USB redirection must be enabled which is less common in internet-facing scenarios.
🏢 Internal Only: HIGH - Internal servers could be compromised and used to attack clients, especially in environments where USB redirection is commonly used.

🎯 Exploit Status

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

Exploitation requires the attacker to control or compromise a FreeRDP server that clients connect to. USB redirection must be enabled on the client side.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.1.0 and later

Vendor Advisory: https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-mx9p-f6q8-mqwq

Restart Required: Yes

Instructions:

1. Update FreeRDP to version 2.1.0 or later. 2. For Linux systems: Use package manager (apt/yum) to update freerdp2 package. 3. For Windows: Download and install latest version from official site. 4. Restart any FreeRDP client sessions.

🔧 Temporary Workarounds

Disable USB Redirection

all

Prevent exploitation by disabling USB redirection feature in FreeRDP client configuration.

Connect with: xfreerdp /usb:id,dev,addr:off or equivalent flag for your client

Restrict Server Connections

all

Only connect to trusted, verified FreeRDP servers.

🧯 If You Can't Patch

  • Disable USB redirection on all FreeRDP client configurations
  • Implement network segmentation to restrict FreeRDP traffic to trusted servers only

🔍 How to Verify

Check if Vulnerable:

Check FreeRDP version: xfreerdp --version or freerdp2 --version. If version is 2.0.0 or earlier, system is vulnerable.

Check Version:

xfreerdp --version 2>&1 | head -1

Verify Fix Applied:

Confirm version is 2.1.0 or later using version command. Test USB redirection functionality with trusted server.

📡 Detection & Monitoring

Log Indicators:

  • FreeRDP crash logs with memory access violations
  • Unexpected USB redirection attempts from unknown servers

Network Indicators:

  • RDP connections to untrusted servers with USB redirection enabled
  • Abnormal memory allocation patterns in FreeRDP process

SIEM Query:

process_name:"xfreerdp" OR process_name:"wfreerdp" AND (event_type:crash OR cmdline:"/usb:")

🔗 References

📤 Share & Export