---
id: "CVE-2026-125394"
page: "https://infrastack.ai/live/CVE-2026-125394"
kind: "vulnerability"
aliases: ["CVE-2026-125394"]
title: "FreeRDP: stale brush cache pointers let a malicious server crash clients"
severity: "medium"
cvss: 5.4
epss: null
exploited: false
status: "open"
category: "package"
products: [{"name": "FreeRDP", "fixed": [], "affected": "", "ecosystem": "vendor"}]
ecosystems: ["vendor"]
tags: ["c", "freerdp", "package", "rdp", "remote-desktop"]
not_affected_if: ["freerdp-not-used", "trusted-servers-only"]
published_at: "2026-11-10T00:17:13+00:00"
first_seen_at: "2026-11-10T00:28:44+00:00"
updated_at: "2026-11-10T00:30:25+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-125394", "first_seen_at": "2026-11-10T00:28:44+00:00"}]
exploit_sources: []
---

# FreeRDP: stale brush cache pointers let a malicious server crash clients

Link for people: https://infrastack.ai/live/CVE-2026-125394 (this .md is for agents)

FreeRDP before 3.33.0 has a heap use-after-free in its GDI drawing code, where stale brush cache pointers are reused after the slot is refilled. A malicious RDP server can trigger it to make the client read freed memory, leaking data or crashing.

_Summary, check and fix written by a model from the sources; labelled as such._

## Affected

- vendor:FreeRDP affected range not listed fixed no fixed version listed

## How to check

- Check the FreeRDP version on the client with `xfreerdp /version` or the installed package version
- Treat any version below `3.33.0` as exposed
- Identify clients that connect to RDP servers you do not control

## Fix

- FreeRDP: upgrade to `3.33.0` or later

## Timeline

- 2026-11-10T00:28:44+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-125394

## Documents

- [advisory] Vendor advisory: github.com https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-fw6x-h8gw-778w
- [advisory] Third-party advisory: www.vulncheck.com https://www.vulncheck.com/advisories/freerdp-before-3.33.0-use-after-free-via-stale-brush-cache-pointer
- [fix] Patch: github.com https://github.com/FreeRDP/FreeRDP/commit/ffc6b976e3589b768e8e279bc61dfb7b5896e832
- [fix] Release notes: github.com https://github.com/FreeRDP/FreeRDP/releases/tag/3.33.0

## From the sources

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.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
