{"id":"CVE-2026-125394","published":"2026-11-10T00:17:13.353","lastModified":"2026-11-10T00:17:13.503","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.","cvssScore":5.4,"cvssSeverity":"MEDIUM","cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:L","cwes":["CWE-416"],"vendors":[],"products":[],"references":[{"url":"https://github.com/FreeRDP/FreeRDP/blob/3.32.2/libfreerdp/cache/brush.c#L80","tags":[]},{"url":"https://github.com/FreeRDP/FreeRDP/commit/ffc6b976e3589b768e8e279bc61dfb7b5896e832","tags":[]},{"url":"https://github.com/FreeRDP/FreeRDP/releases/tag/3.33.0","tags":[]},{"url":"https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-fw6x-h8gw-778w","tags":[]},{"url":"https://www.vulncheck.com/advisories/freerdp-before-3.33.0-use-after-free-via-stale-brush-cache-pointer","tags":[]}],"exploitRefs":[{"url":"https://github.com/FreeRDP/FreeRDP/blob/3.32.2/libfreerdp/cache/brush.c#L80","tags":[]},{"url":"https://github.com/FreeRDP/FreeRDP/commit/ffc6b976e3589b768e8e279bc61dfb7b5896e832","tags":[]},{"url":"https://github.com/FreeRDP/FreeRDP/releases/tag/3.33.0","tags":[]},{"url":"https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-fw6x-h8gw-778w","tags":[]}],"hasPoc":true,"ai":null}