# CVE-2026-125394: FreeRDP heap use-after-free in brush cache

Source: https://junglewise.ai/threats/cve-2026-125394-freerdp-before-3-33-0-contains-a-heap-use-after-free  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-11-10. Updated: 2026-11-10  
License: CC BY 4.0 with a link back

CVE-2026-125394 · Severity: medium · CVSS 5.4 · Published 2026-11-10

FreeRDP is a remote desktop protocol implementation used by clients to connect to remote servers. A malicious RDP server can exploit stale brush cache pointers to trigger a use-after-free vulnerability, causing clients to read freed memory, which may leak sensitive data or crash the application.

Technologies: [FreeRDP](https://junglewise.ai/threats/technologies/freerdp). Vendors: [FreeRDP](https://junglewise.ai/threats/vendors/freerdp).

## Quick answers

**Is CVE-2026-125394 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-125394 being exploited in the wild.

**How severe is CVE-2026-125394?** Medium severity, with a CVSS score of 5.4, published 10 November 2026.

**Which products and versions are affected?** FreeRDP before 3.33.0.

**Is there a fix for CVE-2026-125394?** Yes: fixed in 3.33.0. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-125394 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-125394?** Check whether you run FreeRDP at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- Fixed in 3.33.0

## Technical details

The vulnerability is a heap use-after-free in FreeRDP's brush cache handling functions (update_gdi_patblt, update_gdi_polygon_cb, and update_gdi_mem3blt). When a CACHE_BRUSH message reuses a cache slot, followed by a PATBLT/POLYGON_CB/MEM3BLT operation, the code retrieves a pointer to cached brush data but fails to restore the original pointer, leaving it dangling when the cache entry is freed. An attacker with control over the RDP server can trigger this by sending crafted messages, leading to information disclosure or denial of service.

## Affected products

- FreeRDP FreeRDP before 3.33.0

## Timeline

- 2026-11-10: disclosed

## References

- [https://github.com/FreeRDP/FreeRDP/blob/3.32.2/libfreerdp/cache/brush.c](https://github.com/FreeRDP/FreeRDP/blob/3.32.2/libfreerdp/cache/brush.c)
- [https://github.com/FreeRDP/FreeRDP/commit/ffc6b976e3589b768e8e279bc61dfb7b5896e832](https://github.com/FreeRDP/FreeRDP/commit/ffc6b976e3589b768e8e279bc61dfb7b5896e832)

## Related threats

- [FreeRDP heap buffer overflow in RD Gateway RPC client](https://junglewise.ai/threats/cve-2026-121964-freerdp-before-3-32-2-contains-a-heap-based-buffer-overflow-in)
- [FreeRDP use-after-free in dynamic rdpsnd channel](https://junglewise.ai/threats/cve-2026-121963-freerdp-before-3-32-2-contains-a-use-after-free-vulnerability-in)
- [FreeRDP denial of service in NLA shadow server via malformed TSRequest](https://junglewise.ai/threats/cve-2026-121960-freerdp-before-3-32-2-contains-a-denial-of-service-vulnerability)
- [FreeRDP heap out-of-bounds write in RDPGFX HashTable_GetKeys](https://junglewise.ai/threats/cve-2026-121958-freerdp-through-3-32-1-has-a-heap-out-of-bounds-write-in-the)
- [FreeRDP use-after-free in planar bitmap decoder](https://junglewise.ai/threats/cve-2026-121957-freerdp-before-3-32-2-contains-a-use-after-free-vulnerability)
