CVE-2026-22859 Overview
CVE-2026-22859 is an out-of-bounds read vulnerability in FreeRDP, the free implementation of the Remote Desktop Protocol. Prior to version 3.20.1, the URBDRC (USB Redirection Virtual Channel) client does not perform proper bounds checking on server-supplied MSUSB_INTERFACE_DESCRIPTOR values. These unchecked values are subsequently used as indices in the libusb_udev_complete_msconfig_setup function, leading to an out-of-bounds memory read condition.
Critical Impact
A malicious RDP server can exploit this vulnerability to trigger out-of-bounds memory reads on connecting clients, potentially leading to information disclosure or denial of service through application crashes.
Affected Products
- FreeRDP versions prior to 3.20.1
- Systems using FreeRDP's URBDRC client for USB device redirection
- Applications and distributions bundling vulnerable FreeRDP versions
Discovery Timeline
- 2026-01-14 - CVE-2026-22859 published to NVD
- 2026-01-20 - Last updated in NVD database
Technical Details for CVE-2026-22859
Vulnerability Analysis
This vulnerability exists in FreeRDP's USB Redirection Virtual Channel (URBDRC) client implementation. When a FreeRDP client connects to an RDP server with USB redirection enabled, the server provides USB configuration data including interface descriptors. The vulnerable code path in libusb_udev_complete_msconfig_setup accepts MSUSB_INTERFACE_DESCRIPTOR values from the server without validating that they fall within expected array boundaries.
The lack of bounds checking creates a classic out-of-bounds read condition (CWE-125). When a malicious server supplies descriptor values that exceed the allocated buffer size, the client reads memory beyond the intended data structure. This can result in exposure of sensitive memory contents or trigger a crash if the read access violates memory protection boundaries.
Root Cause
The root cause is insufficient input validation in the URBDRC client's USB configuration setup routine. The libusb_udev_complete_msconfig_setup function trusts server-supplied interface descriptor values without verifying they are within valid index ranges. This violates the security principle that all external input—especially data received from network peers—must be validated before use as array indices or memory offsets.
Attack Vector
The attack is network-based and requires user interaction, as a victim must initiate an RDP connection to a malicious server. The attack scenario involves:
- An attacker sets up a malicious RDP server configured to send crafted USB interface descriptor data
- A victim using a vulnerable FreeRDP client connects to the malicious server with USB redirection enabled
- During the USB configuration exchange, the server sends MSUSB_INTERFACE_DESCRIPTOR values with out-of-bounds indices
- The FreeRDP client processes these values without validation in libusb_udev_complete_msconfig_setup
- The out-of-bounds read occurs, potentially leaking memory contents back to the attacker or crashing the client application
The vulnerability mechanism involves the server providing malformed USB descriptor data that causes the client to read beyond allocated buffer boundaries. For technical details on the specific code paths affected, refer to the GitHub Security Advisory GHSA-56f5-76qv-2r36.
Detection Methods for CVE-2026-22859
Indicators of Compromise
- FreeRDP client crashes during RDP sessions with USB redirection enabled
- Unexpected application terminations when connecting to unfamiliar RDP servers
- Memory access violations or segmentation faults in FreeRDP processes
- Suspicious RDP server connections originating from untrusted networks
Detection Strategies
- Monitor for FreeRDP client process crashes, particularly those with memory access violation error codes
- Implement network monitoring to detect RDP connections to unrecognized or suspicious server addresses
- Deploy endpoint detection solutions that can identify exploitation attempts targeting memory corruption vulnerabilities
- Review system logs for abnormal termination of FreeRDP-related processes
Monitoring Recommendations
- Enable verbose logging in FreeRDP clients to capture USB redirection activity details
- Monitor for repeated connection attempts to RDP servers followed by immediate client crashes
- Implement network traffic analysis for RDP protocol anomalies in USB redirection channels
- Track FreeRDP version deployments across the organization to identify vulnerable installations
How to Mitigate CVE-2026-22859
Immediate Actions Required
- Upgrade all FreeRDP installations to version 3.20.1 or later immediately
- Audit systems and applications using FreeRDP as a dependency and update accordingly
- Restrict RDP connections to trusted, verified servers only
- Consider disabling USB redirection if not required for business operations
Patch Information
The vulnerability has been fixed in FreeRDP version 3.20.1. The fix implements proper bounds checking on server-supplied MSUSB_INTERFACE_DESCRIPTOR values before using them as array indices. Organizations should update to this version or later to remediate the vulnerability.
For detailed patch information, see the FreeRDP Release 3.20.1.
Workarounds
- Disable USB device redirection (/usb:* or related command-line options) when connecting to untrusted RDP servers
- Implement network-level controls to prevent connections to unknown or untrusted RDP servers
- Use application whitelisting to control which RDP servers clients are permitted to connect to
- Deploy the patched version as the primary mitigation; workarounds should only be temporary measures
To disable USB redirection when launching FreeRDP, omit the /usb: parameter from the command line or explicitly disable it in your configuration. Only enable USB redirection when connecting to trusted, verified RDP servers.
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


