CVE-2024-32039
Critical · 9.8CVSS
9.8
EPSS
2.3%
Published
Apr 22, 2024
CISA due date
—
Cloudanix analysis
A bug in remote desktop software lets attackers take over a computer when someone connects to a malicious server.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Buffer Overflow
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Integer overflow during graphics channel processing in FreeRDP clients triggers an out-of-bounds write when /gfx is enabled, allowing memory corruption.
Why it matters to the business
Attackers can gain remote code execution on systems running vulnerable FreeRDP clients, risking compromise of user workstations and any data accessed via remote desktop sessions.
How an attack unfolds
An attacker hosts a malicious RDP server that sends crafted graphics data over the gfx channel. A vulnerable client connecting with gfx enabled processes the data, causing an integer overflow that results in an out-of-bounds write and potential code execution.
How to fix it
Upgrade FreeRDP to version 3.5.0 or 2.11.6. As a workaround, disable gfx by specifying /bpp:32 or /rfx in client options.
How to confirm the fix worked
Confirm the FreeRDP binary or package reports version 3.5.0 or 2.11.6. Test client connections to a controlled server with gfx enabled while monitoring for crashes or memory errors.
Typical attack path
- Attacker deploys a rogue RDP server configured to deliver malicious gfx payloads
- Victim launches a vulnerable FreeRDP client and initiates a connection with gfx enabled
- Server transmits oversized or malformed graphics data during session negotiation
- Client integer overflow occurs, leading to out-of-bounds write and attacker code execution
How to detect it
Search application and system logs for FreeRDP crashes or segmentation faults during graphics processing. Review network captures for unusual RDP session data volumes or malformed gfx channel traffic.
What your security team should do
- Prioritize upgrading all FreeRDP deployments to the fixed versions
- Apply the gfx workaround on any systems that cannot be updated immediately
- Restrict RDP client connections to trusted servers only
- Include FreeRDP version checks in regular vulnerability scanning
The record
FreeRDP is a free implementation of the Remote Desktop Protocol. FreeRDP based clients using a version of FreeRDP prior to 3.5.0 or 2.11.6 are vulnerable to integer overflow and out-of-bounds write. Versions 3.5.0 and 2.11.6 patch the issue. As a workaround, do not use `/gfx` options (e.g. deactivate with `/bpp:32` or `/rfx` as it is on by default).
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-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-2024-32040 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