CVE-2024-32040
High · 8.1CVSS
8.1
EPSS
1.9%
Published
Apr 22, 2024
CISA due date
—
Cloudanix analysis
A bug in remote desktop software can let attackers seize control of a computer when users connect to certain servers using a specific image compression method.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- High
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Integer underflow in NSC codec processing allows out-of-bounds memory access in FreeRDP clients prior to 3.5.0 or 2.11.6 when connecting to servers advertising the NSC codec.
Why it matters to the business
Successful exploitation can result in remote code execution or denial of service against systems using FreeRDP for remote access, potentially exposing sensitive data or disrupting operations that rely on RDP connectivity.
How an attack unfolds
An attacker hosts a malicious RDP server configured to offer the NSC codec; a vulnerable client initiates a connection, triggering the integer underflow during codec negotiation and data handling, which can be leveraged for memory corruption and arbitrary code execution.
How to fix it
Upgrade FreeRDP to version 3.5.0 or 2.11.6 (commit dee7e7e7c609c5192273cf8c20540c729ddcb3b0 or later); as a temporary mitigation disable the NSC codec with the -nsc flag or equivalent configuration.
How to confirm the fix worked
Verify installed FreeRDP version is 3.5.0 or newer; test client connections to non-NSC servers and confirm absence of crashes or unexpected behavior during codec negotiation.
Typical attack path
- Attacker deploys a rogue RDP server advertising NSC codec support
- Victim client connects using a vulnerable FreeRDP version
- Server sends crafted NSC-encoded data triggering the underflow
- Memory corruption occurs enabling payload execution or crash
How to detect it
Review client logs for NSC codec negotiation failures or crashes in freerdp processes; inspect network traffic for unexpected RDP sessions offering NSC; correlate process crashes with RDP connection attempts.
What your security team should do
- Immediately upgrade all FreeRDP installations to the fixed versions
- Audit configurations to ensure NSC codec is disabled where upgrades are delayed
- Monitor for new FreeRDP releases and integrate version checks into patch management
The record
FreeRDP is a free implementation of the Remote Desktop Protocol. FreeRDP based clients that use a version of FreeRDP prior to 3.5.0 or 2.11.6 and have connections to servers using the `NSC` codec are vulnerable to integer underflow. Versions 3.5.0 and 2.11.6 patch the issue. As a workaround, do not use the NSC codec (e.g. use `-nsc`).
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | freerdp2 | 0 | No fix |
| Debian:11 | freerdp2 | 0 | 2.3.0+dfsg1-2+deb11u2 |
| Debian:12 | freerdp2 | 0 | No fix |
| Debian:13 | freerdp2 | 0 | No fix |
| Mageia:9 | freerdp | 0 | 2.11.7-1.mga9 |
| Red Hat:enterprise_linux:9::appstream | freerdp | 0 | 2:2.11.7-1.el9 |
| Red Hat:enterprise_linux:9::appstream | freerdp-debuginfo | 0 | 2:2.11.7-1.el9 |
| Red Hat:enterprise_linux:9::appstream | freerdp-debugsource | 0 | 2:2.11.7-1.el9 |
| Red Hat:enterprise_linux:9::appstream | freerdp-devel | 0 | 2:2.11.7-1.el9 |
| Red Hat:enterprise_linux:9::appstream | freerdp-libs | 0 | 2:2.11.7-1.el9 |
| Red Hat:enterprise_linux:9::appstream | freerdp-libs-debuginfo | 0 | 2:2.11.7-1.el9 |
| Red Hat:enterprise_linux:9::appstream | libwinpr | 0 | 2:2.11.7-1.el9 |
| Red Hat:enterprise_linux:9::appstream | libwinpr-debuginfo | 0 | 2:2.11.7-1.el9 |
| Red Hat:enterprise_linux:9::appstream | libwinpr-devel | 0 | 2:2.11.7-1.el9 |
| Red Hat:enterprise_linux:9::crb | freerdp | 0 | 2:2.11.7-1.el9 |
| Red Hat:enterprise_linux:9::crb | freerdp-debuginfo | 0 | 2:2.11.7-1.el9 |
| Red Hat:enterprise_linux:9::crb | freerdp-debugsource | 0 | 2:2.11.7-1.el9 |
| Red Hat:enterprise_linux:9::crb | freerdp-devel | 0 | 2:2.11.7-1.el9 |
| Red Hat:enterprise_linux:9::crb | freerdp-libs | 0 | 2:2.11.7-1.el9 |
| Red Hat:enterprise_linux:9::crb | freerdp-libs-debuginfo | 0 | 2:2.11.7-1.el9 |
| Red Hat:enterprise_linux:9::crb | libwinpr | 0 | 2:2.11.7-1.el9 |
| Red Hat:enterprise_linux:9::crb | libwinpr-debuginfo | 0 | 2:2.11.7-1.el9 |
| Red Hat:enterprise_linux:9::crb | libwinpr-devel | 0 | 2:2.11.7-1.el9 |
| Rocky Linux:9 | freerdp | 0 | 2:2.11.7-1.el9 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP5 | freerdp | 0 | 2.4.0-150400.3.29.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | freerdp | 0 | 2.1.2-12.44.1 |
| SUSE:Linux Enterprise Workstation Extension 12 SP5 | freerdp | 0 | 2.1.2-12.44.1 |
| SUSE:Linux Enterprise Workstation Extension 15 SP5 | freerdp | 0 | 2.4.0-150400.3.29.1 |
| Ubuntu:16.04:LTS | freerdp | 0 | No fix |
| Ubuntu:18.04:LTS | freerdp | 0 | No fix |
| Ubuntu:20.04:LTS | freerdp2 | 0 | 2.6.1+dfsg1-0ubuntu0.20.04.1 |
| Ubuntu:22.04:LTS | freerdp2 | 0 | 2.6.1+dfsg1-3ubuntu2.6 |
| Ubuntu:23.10 | freerdp2 | 0 | 2.10.0+dfsg1-1.1ubuntu1.2 |
| Ubuntu:24.04:LTS | freerdp2 | 0 | No fix |
| Ubuntu:24.04:LTS | freerdp3 | 0 | 3.5.0+dfsg1-0ubuntu1 |
| Ubuntu:24.10 | freerdp2 | 0 | No fix |
| Ubuntu:24.10 | freerdp3 | 0 | 3.5.0+dfsg1-0ubuntu1 |
| Ubuntu:Pro:16.04:LTS | freerdp | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | freerdp | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | freerdp2 | 0 | No fix |
| Ubuntu:Pro:24.04:LTS | freerdp2 | 0 | 2.11.5+dfsg1-1ubuntu0.1~esm1 |
| openSUSE:Leap 15.5 | freerdp | 0 | 2.4.0-150400.3.29.1 |
| openSUSE:Leap 16.0 | freerdp | 0 | 3.22.0-160000.1.1 |
| openSUSE:Tumbleweed | freerdp | 0 | 3.5.1-1.1 |
| openSUSE:Tumbleweed | freerdp2 | 0 | 2.11.7-1.1 |
Related vulnerabilities
- CVE-2024-32459 FreeRDP is a free implementation of the Remote Desktop Protocol. Also affects freerdp2
- CVE-2024-32460 FreeRDP is a free implementation of the Remote Desktop Protocol. Also affects freerdp2
- CVE-2024-32039 FreeRDP is a free implementation of the Remote Desktop Protocol. Also affects freerdp2
- CVE-2024-32041 FreeRDP is a free implementation of the Remote Desktop Protocol. Also affects freerdp2
- CVE-2024-32458 FreeRDP is a free implementation of the Remote Desktop Protocol. Also affects freerdp2
- CVE-2022-24883 FreeRDP is a free implementation of the Remote Desktop Protocol (RDP). Also affects freerdp2
- CVE-2026-24684 FreeRDP is a free implementation of the Remote Desktop Protocol. Also affects freerdp
- CVE-2026-24682 FreeRDP is a free implementation of the Remote Desktop Protocol. Also affects freerdp