FreeRDP SDL Client Race Condition Vulnerability Leading to Heap Use-After-Free

Vulnerability

A heap use-after-free vulnerability has been identified in FreeRDP versions prior to 3.20.1. This issue arises from a race condition between the RDPGFX dynamic virtual channel thread and the SDL render thread. The vulnerability occurs when an escaped pointer to the primary SDL_Surface is accessed after it has been freed, during the handling of RDPGFX ResetGraphics. This flaw is present in the FreeRDP SDL3 client only.

Impact

Exploitation of this vulnerability creates a use-after-free condition, which can lead to memory corruption. While no direct code execution has been demonstrated, this type of memory safety violation is considered security-relevant.

Reproduction

The vulnerability can be reproduced by using the FreeRDP SDL3 client to connect to a remote desktop session. During the session, the RDPGFX ResetGraphics command is sent, which frees the primary framebuffer surface. If the SDL render thread accesses the same surface pointer before it is properly reinitialized, a use-after-free condition occurs. This can be verified using AddressSanitizer, which will detect the memory safety violation.

Remediation

Users can upgrade to FreeRDP version 3.20.1 or later to address this vulnerability.

Added: Jan 14, 2026, 6:24 PM
Updated: Jan 14, 2026, 6:24 PM

Vulnerability Rating

Custom Algorithm
spread
5.4
impact
0.8
exploitability
5.4
remediation
7.7
relevance
2.0
threat
6.4
urgency
2.9
incentive
0.0

Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.