Cloudanix VulnDB

CVE-2024-32460

High · 8.1

CVSS

8.1

EPSS

1.9%

Published

Apr 22, 2024

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A flaw in remote desktop software can let attackers read parts of a computer's memory when users connect using an old display setting, which might expose private information or cause the connection to fail.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Moderate
Impact
Data Exposure
Component
Library
Class
Memory Corruption
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Out-of-bounds read in the legacy GDI drawing path when handling 32-bit-per-pixel color depth in RDP clients, allowing access to memory beyond allocated buffers.

Why it matters to the business

Potential exposure of sensitive client memory contents or denial-of-service during remote desktop sessions, disrupting secure access and increasing risk for organizations relying on FreeRDP for remote connectivity.

How an attack unfolds

An attacker hosts a malicious RDP server and waits for a vulnerable client to connect using the legacy /bpp:32 GDI path. The server sends specially crafted drawing commands that trigger the out-of-bounds read, potentially leaking memory or causing a crash.

How to fix it

Upgrade FreeRDP to version 3.5.0 or 2.11.6 (commit dee7e7e7c609c5192273cf8c20540c729ddcb3b0). As a temporary mitigation, switch to modern drawing paths such as /rfx or /gfx, which require server-side support.

How to confirm the fix worked

Verify client version is 3.5.0 or newer, confirm modern drawing paths are active in connection settings, and test connections against a patched server to ensure no OOB reads occur under legacy conditions.

Typical attack path

  1. Attacker configures a malicious RDP server to respond to incoming connections
  2. Victim initiates a client connection using the legacy GDI drawing path with /bpp:32
  3. Server transmits crafted bitmap or drawing data exceeding expected buffer boundaries
  4. Client processes the data, performing an out-of-bounds memory read
  5. Attacker observes crash or extracts leaked memory contents for further exploitation

How to detect it

Review RDP client logs for connections using legacy GDI paths, monitor for unexpected crashes or memory-related errors during RDP sessions, and inspect network traffic for anomalous drawing command sequences from untrusted servers.

What your security team should do

  • Immediately upgrade all FreeRDP installations to the fixed versions
  • Audit and disable legacy /bpp:32 GDI paths in client configurations where possible
  • Monitor for any remaining legacy-mode connections and enforce modern drawing options
  • Prioritize patching in environments with high remote access usage due to potential memory disclosure

The record

FreeRDP is a free implementation of the Remote Desktop Protocol. FreeRDP based based clients using `/bpp:32` legacy `GDI` drawing path with a version of FreeRDP prior to 3.5.0 or 2.11.6 are vulnerable to out-of-bounds read. Versions 3.5.0 and 2.11.6 patch the issue. As a workaround, use modern drawing paths (e.g. `/rfx` or `/gfx` options). The workaround requires server side support.

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