{"id":"UBUNTU-CVE-2026-125394","details":"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.","modified":"2026-11-11T09:39:23.134601126Z","published":"2026-11-10T00:00:00Z","upstream":["CVE-2026-125394"],"references":[{"type":"REPORT","url":"https://ubuntu.com/security/CVE-2026-125394"},{"type":"REPORT","url":"https://www.cve.org/CVERecord?id=CVE-2026-125394"},{"type":"REPORT","url":"github.com/freerdp/freerdp"}],"affected":[{"package":{"name":"freerdp","ecosystem":"Ubuntu:16.04:LTS","purl":"pkg:deb/ubuntu/freerdp?arch=source&distro=xenial"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1","1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.2","1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.3","1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"],"ecosystem_specific":{"binaries":[{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4","binary_name":"freerdp-x11"},{"binary_name":"libfreerdp-cache1.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_name":"libfreerdp-client1.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_name":"libfreerdp-codec1.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_name":"libfreerdp-common1.1.0","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4","binary_name":"libfreerdp-core1.1"},{"binary_name":"libfreerdp-crypto1.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_name":"libfreerdp-gdi1.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_name":"libfreerdp-locale1.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4","binary_name":"libfreerdp-plugins-standard"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4","binary_name":"libfreerdp-primitives1.1"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4","binary_name":"libfreerdp-rail1.1"},{"binary_name":"libfreerdp-utils1.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_name":"libwinpr-asn1-0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_name":"libwinpr-bcrypt0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4","binary_name":"libwinpr-credentials0.1"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4","binary_name":"libwinpr-credui0.1"},{"binary_name":"libwinpr-crt0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_name":"libwinpr-crypto0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_name":"libwinpr-dsparse0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4","binary_name":"libwinpr-environment0.1"},{"binary_name":"libwinpr-error0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_name":"libwinpr-file0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_name":"libwinpr-handle0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_name":"libwinpr-heap0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4","binary_name":"libwinpr-input0.1"},{"binary_name":"libwinpr-interlocked0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_name":"libwinpr-io0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4","binary_name":"libwinpr-library0.1"},{"binary_name":"libwinpr-path0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_name":"libwinpr-pipe0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4","binary_name":"libwinpr-pool0.1"},{"binary_name":"libwinpr-registry0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_name":"libwinpr-rpc0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_name":"libwinpr-sspi0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_name":"libwinpr-sspicli0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4","binary_name":"libwinpr-synch0.1"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4","binary_name":"libwinpr-sysinfo0.1"},{"binary_name":"libwinpr-thread0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_name":"libwinpr-timezone0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4","binary_name":"libwinpr-utils0.1"},{"binary_name":"libwinpr-winhttp0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_name":"libwinpr-winsock0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4","binary_name":"libxfreerdp-client1.1"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-125394.json"}},{"package":{"name":"freerdp","ecosystem":"Ubuntu:18.04:LTS","purl":"pkg:deb/ubuntu/freerdp?arch=source&distro=bionic"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1","1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.1","1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"],"ecosystem_specific":{"binaries":[{"binary_name":"freerdp-x11","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_name":"libfreerdp-cache1.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_name":"libfreerdp-client1.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_name":"libfreerdp-codec1.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_name":"libfreerdp-common1.1.0","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_name":"libfreerdp-core1.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2","binary_name":"libfreerdp-crypto1.1"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2","binary_name":"libfreerdp-gdi1.1"},{"binary_name":"libfreerdp-locale1.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_name":"libfreerdp-plugins-standard","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2","binary_name":"libfreerdp-primitives1.1"},{"binary_name":"libfreerdp-rail1.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_name":"libfreerdp-utils1.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_name":"libwinpr-asn1-0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_name":"libwinpr-bcrypt0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2","binary_name":"libwinpr-credentials0.1"},{"binary_name":"libwinpr-credui0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_name":"libwinpr-crt0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2","binary_name":"libwinpr-crypto0.1"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2","binary_name":"libwinpr-dsparse0.1"},{"binary_name":"libwinpr-environment0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_name":"libwinpr-error0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2","binary_name":"libwinpr-file0.1"},{"binary_name":"libwinpr-handle0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2","binary_name":"libwinpr-heap0.1"},{"binary_name":"libwinpr-input0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_name":"libwinpr-interlocked0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2","binary_name":"libwinpr-io0.1"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2","binary_name":"libwinpr-library0.1"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2","binary_name":"libwinpr-path0.1"},{"binary_name":"libwinpr-pipe0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2","binary_name":"libwinpr-pool0.1"},{"binary_name":"libwinpr-registry0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2","binary_name":"libwinpr-rpc0.1"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2","binary_name":"libwinpr-sspi0.1"},{"binary_name":"libwinpr-sspicli0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2","binary_name":"libwinpr-synch0.1"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2","binary_name":"libwinpr-sysinfo0.1"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2","binary_name":"libwinpr-thread0.1"},{"binary_name":"libwinpr-timezone0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_name":"libwinpr-utils0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_name":"libwinpr-winhttp0.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"},{"binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2","binary_name":"libwinpr-winsock0.1"},{"binary_name":"libxfreerdp-client1.1","binary_version":"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-125394.json"}}],"schema_version":"1.9.2","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:L"},{"type":"Ubuntu","score":"medium"}]}