Securing xrdp Against Remote Code Execution: A Guide to CVE-2025-68670
Introduction
Remote Desktop Protocol (RDP) is a cornerstone of remote administration, and xrdp is a popular open-source server that allows Linux systems to accept RDP connections. However, even trusted components can harbor hidden vulnerabilities. In this guide, we walk through CVE-2025-68670, a remote code execution (RCE) flaw discovered in xrdp by Kaspersky researchers during a security audit of the Kaspersky USB Redirector module. This vulnerability can allow an attacker to execute arbitrary code on the server by sending a specially crafted Client Info PDU during the RDP connection handshake. By following the steps below, you'll learn how to identify vulnerable versions, apply the necessary patches, and harden your xrdp deployment against exploitation.

What You Need
- Administrative access to the Linux server running xrdp
- Knowledge of your current xrdp version (command:
xrdp --version) - Access to package management tools (apt, yum, dnf, etc.) or the ability to compile from source
- Understanding of basic RDP concepts and the xrdp configuration file (
/etc/xrdp/xrdp.ini) - Network security tools (firewall, IDS) for additional hardening (optional but recommended)
Step 1: Understand the Vulnerability Context
Before patching, it's essential to grasp the technical root cause. In the RDP connection sequence, during the Secure Settings Exchange phase (just before authentication), the client sends a TS_INFO_PACKET structure containing fields like username, password, domain, program, and directory as Unicode strings (UTF-16). The xrdp server converts these to UTF-8 using the function ts_info_utf16_in. The original code had a buffer overflow protection check, but a logic error in the handling of the dst_len parameter allowed an attacker to write up to 512 bytes of controlled data into a fixed-size buffer. This overflow can overwrite adjacent memory and lead to code execution. The vulnerable field is the domain field, but others may also be affected.
Step 2: Identify Vulnerable xrdp Versions
Check your current xrdp version against the known vulnerable range:
- Version 0.9.x: All versions before
0.9.27are vulnerable. - Version 0.10.x: All versions before
0.10.4.1are vulnerable (including 0.10.0 through 0.10.4). - Version 0.10.5: The first fully patched release.
If you are running any earlier version (e.g., 0.9.21, 0.9.26, 0.10.3), you are at risk.
Step 3: Check Your Current xrdp Version
Run the following command on your server to determine the installed version:
xrdp --version
Alternatively, use your package manager's query command, e.g., dpkg -l | grep xrdp on Debian/Ubuntu or rpm -q xrdp on Red Hat/Fedora. Note the full version string.
Step 4: Obtain the Patched Version or Backport
The xrdp project maintainers have released fixes. You have three options:
- Upgrade to the latest stable release: Version 0.10.5 includes the complete fix. This is recommended.
- Backport the patch: If you cannot upgrade immediately, the patch has been backported to versions 0.9.27 and 0.10.4.1. Apply these updates via your distribution's repositories if available, or manually apply the commit from the official xrdp GitHub repository.
- Apply the security patch yourself: If you compile from source, download the patch for CVE-2025-68670 from the xrdp security bulletin page and apply it.
Always verify the authenticity of patches and use trusted sources.

Step 5: Update or Upgrade xrdp
Depending on your installation method, perform the following:
For Package Managers
- Debian/Ubuntu:
sudo apt update && sudo apt install xrdp - RHEL/CentOS/Fedora:
sudo yum update xrdporsudo dnf update xrdp
For Source Compilation
- Download the source tarball for version 0.10.5 from the official xrdp releases page.
- Extract and build:
./configure && make && sudo make install - If you are sticking with an older branch, download the appropriate backported source and compile similarly.
After installation, restart the xrdp service:
sudo systemctl restart xrdp
Step 6: Verify the Fix
Confirm that the vulnerability is no longer present:
- Re-run
xrdp --versionto ensure you are now on 0.9.27, 0.10.4.1, or 0.10.5 (or later). - Check the xrdp change log or the patch commit description to see the fix for
ts_info_utf16_inbuffer handling. - Optionally, use a vulnerability scanner (like Nessus or OpenVAS) to test for CVE-2025-68670.
- Monitor logs for any unusual connection attempts or crashes that could indicate exploitation attempts.
Tips for Ongoing Protection
- Keep xrdp updated: Regularly check for new releases or security advisories from the xrdp project.
- Restrict RDP access: Use firewalls (iptables, ufw) to limit incoming RDP connections to trusted IP addresses only.
- Enable logging and monitoring: Increase log verbosity in
/etc/xrdp/xrdp.ini(e.g.,[Logging] LogLevel=DEBUG) and forward logs to a SIEM for anomaly detection. - Use network segmentation: Place xrdp servers in a demilitarized zone (DMZ) separated from internal networks.
- Implement additional authentication: Consider using two-factor authentication or VPN tunnels before allowing RDP connections.
- Apply principle of least privilege: Ensure that xrdp runs with minimal system rights and that remote users have limited permissions.
- Test in a staging environment: Before applying patches to production, verify the fix in a test setup that mirrors your infrastructure.
By following these steps and tips, you can effectively mitigate CVE-2025-68670 and reduce the attack surface of your xrdp deployments. Remember that security is a continuous process—stay vigilant and proactive.
Related Articles
- Mastering the Patient Zero Protocol: A Step-by-Step Guide to Neutralizing Stealth Breaches Before They Spread
- Understanding Copy Fail: The Critical Linux Kernel Vulnerability Explained
- Mozilla's AI Vulnerability Detector Uncovers 271 Firefox Flaws with Near-Perfect Accuracy
- Decoding SSL Certificates: Your Guide to Reading and Analyzing Certificate Data
- Understanding Rapid SaaS Extortion Attacks: Vishing and SSO Abuse by Cybercrime Groups
- 10 Urgent Cybersecurity Updates from the Latest Threat Intelligence Report
- Canvas Cyberattack: Key Questions and Answers About the Education Platform Breach
- Major Cybersecurity Wins: Karakurt Negotiator Sentenced, North Korean IT Worker Facilitators Jailed; New Cloud Worm PCPJack Emerges