Skip to content
OpenAdvisories
Medium · 5.4 Public exploit CVE-2026-125394 EUVD-2026-120557GHSA-wc3j-h7qp-27j9

FreeRDP before 3.33.0 Use-After-Free via Stale Brush Cache Pointer

Published Nov 9, 2026 · Updated Nov 13, 2026 · Assigned by VulnCheck

Description

FreeRDP before 3.33.0 contains a heap use-after-free vulnerability in update_gdi_patblt(), update_gdi_polygon_cb() and update_gdi_mem3blt() that retain stale brush cache pointers. A malicious RDP server can resend CACHE_BRUSH to the same slot then send PATBLT, causing clients to read freed heap memory, disclosing data or crashing.

Affected products

VendorProductAffectedFixed
FreeRDP FreeRDP < 3.33.0 3.33.0

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 freerdp3 No fix yet —
Debian 13 freerdp3 No fix yet —
Debian 12 freerdp2 No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu 18.04 LTS freerdp No fix yet —
Ubuntu 16.04 LTS freerdp No fix yet —

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 1 repository

  • D7EAD/CVE-2026-125394 ★ 1 · Nov 10, 2026

    FreeRDP before 3.33.0 contains a heap UAF vulnerability in update_gdi_patblt(), update_gdi_polygon_cb() and update_gdi_mem3blt() that retain stale brush cache pointers.

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Advisories 1

References