{"id":"CVE-2026-25955","aliases":["ALPINE-CVE-2026-25955","DEBIAN-CVE-2026-25955","EUVD-2026-8735","GHSA-4g54-x8v7-559x","MGASA-2026-0383","SUSE-SU-2026:1633-1","SUSE-SU-2026:21436-1","UBUNTU-CVE-2026-25955","USN-8105-1","openSUSE-SU-2026:10408-1","openSUSE-SU-2026:20657-1"],"status":"published","title":"FreeRDP has heap-use-after-free in xf_AppUpdateWindowFromSurface (stale XImage)","description":"FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, `xf_AppUpdateWindowFromSurface` reuses a cached `XImage` whose `data` pointer references a freed RDPGFX surface buffer, because `gdi_DeleteSurface` frees `surface-\u003edata` without invalidating the `appWindow-\u003eimage` that aliases it. Version 3.23.0 fixes the issue.","severity":{"version":"4.0","score":5.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:P","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.00571,"percentile":0.47694,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-416"],"published":"2026-02-25T20:32:42Z","modified":"2026-11-03T06:33:01Z","fixes":[{"ecosystem":"Alpine:v3.23","package":"freerdp","fixed_in":["3.23.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.24","package":"freerdp","fixed_in":["3.23.0-r0"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"freerdp3","fixed_in":["3.15.0+dfsg-2.1+deb13u1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"freerdp3","fixed_in":["3.23.0+dfsg-1"],"sources":["osv"]},{"ecosystem":"Ubuntu:24.04:LTS","package":"freerdp3","fixed_in":["3.5.1+dfsg1-0ubuntu1.4"],"sources":["osv"]},{"ecosystem":"Ubuntu:25.10","package":"freerdp3","fixed_in":["3.16.0+dfsg-2ubuntu0.3"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Alpine:v3.23","package":"freerdp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.23.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.24","package":"freerdp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.23.0-r0"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"freerdp2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.10.0+dfsg1-1","2.10.0+dfsg1-1.1","2.11.2+dfsg1-1","2.11.2+dfsg1-1.1~exp1","2.11.2+dfsg1-1.1~exp2","2.11.5+dfsg1-1","2.11.7+dfsg1-1","2.11.7+dfsg1-2","2.11.7+dfsg1-3","2.11.7+dfsg1-4","2.11.7+dfsg1-5","2.11.7+dfsg1-6","2.11.7+dfsg1-6~deb12u1"]},{"source":"osv","ecosystem":"Debian:13","package":"freerdp3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.15.0+dfsg-2.1+deb13u1"}]}],"versions":["3.15.0+dfsg-2.1"]},{"source":"osv","ecosystem":"Debian:14","package":"freerdp3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.23.0+dfsg-1"}]}],"versions":["3.15.0+dfsg-2.1","3.16.0+dfsg-1","3.16.0+dfsg-2","3.17.0+dfsg-1","3.17.1+dfsg-1","3.17.1+dfsg-2","3.17.2+dfsg-1","3.17.2+dfsg-2","3.17.2+dfsg-3","3.18.0+dfsg-1","3.19.0+dfsg-1","3.19.1+dfsg-1","3.20.0+dfsg-1","3.20.2+dfsg-1","3.21.0+dfsg-1","3.22.0+dfsg-1","3.22.0+dfsg-1~bpo13+0","3.22.0+dfsg-1~bpo13+1","3.22.0+dfsg-3","3.23.0+dfsg-1~bpo13+1"]},{"source":"osv","ecosystem":"Mageia:10","package":"freerdp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.31.0-1.mga10"}]}],"bundled":32},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"freerdp","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"]},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"freerdp2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.0.0~git20170725.1.1648deb+dfsg1-1","2.0.0~git20170725.1.1648deb+dfsg1-5","2.0.0~git20170725.1.1648deb+dfsg1-5ubuntu1","2.0.0~git20170725.1.1648deb+dfsg1-5ubuntu2","2.0.0~git20170725.1.1648deb+dfsg1-6","2.0.0~git20170725.1.1648deb+dfsg1-6build1","2.0.0~git20170725.1.1648deb+dfsg1-7","2.0.0~git20170725.1.1648deb+dfsg1-7ubuntu0.1","2.1.1+dfsg1-0ubuntu0.18.04.1","2.2.0+dfsg1-0ubuntu0.18.04.1","2.2.0+dfsg1-0ubuntu0.18.04.2","2.2.0+dfsg1-0ubuntu0.18.04.3","2.2.0+dfsg1-0ubuntu0.18.04.4","2.2.0+dfsg1-0ubuntu0.18.04.4+esm1","2.2.0+dfsg1-0ubuntu0.18.04.4+esm2","2.2.0+dfsg1-0ubuntu0.18.04.4+esm3","2.2.0+dfsg1-0ubuntu0.18.04.4+esm4","2.2.0+dfsg1-0ubuntu0.18.04.4+esm5","2.2.0+dfsg1-0ubuntu0.18.04.4+esm6"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"freerdp","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"]},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"freerdp2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.0.0~git20190204.1.2693389a+dfsg1-1","2.0.0~git20190204.1.2693389a+dfsg1-2","2.0.0~git20190204.1.2693389a+dfsg1-2build1","2.0.0~git20190204.1.2693389a+dfsg1-2build2","2.1.1+dfsg1-0ubuntu0.20.04.1","2.2.0+dfsg1-0ubuntu0.20.04.1","2.2.0+dfsg1-0ubuntu0.20.04.2","2.2.0+dfsg1-0ubuntu0.20.04.3","2.2.0+dfsg1-0ubuntu0.20.04.4","2.2.0+dfsg1-0ubuntu0.20.04.5","2.2.0+dfsg1-0ubuntu0.20.04.6","2.6.1+dfsg1-0ubuntu0.20.04.1","2.6.1+dfsg1-0ubuntu0.20.04.2","2.6.1+dfsg1-0ubuntu0.20.04.2+esm1","2.6.1+dfsg1-0ubuntu0.20.04.2+esm2","2.6.1+dfsg1-0ubuntu0.20.04.2+esm3","2.6.1+dfsg1-0ubuntu0.20.04.2+esm4"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"freerdp2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.3.0+dfsg1-2build1","2.3.0+dfsg1-2ubuntu1","2.3.0+dfsg1-2ubuntu2","2.4.1+dfsg1-1","2.4.1+dfsg1-1ubuntu1","2.4.1+dfsg1-1ubuntu2","2.5.0+dfsg1-1","2.6.0+dfsg1-1","2.6.1+dfsg1-1","2.6.1+dfsg1-3","2.6.1+dfsg1-3ubuntu1","2.6.1+dfsg1-3ubuntu2","2.6.1+dfsg1-3ubuntu2.1","2.6.1+dfsg1-3ubuntu2.2","2.6.1+dfsg1-3ubuntu2.3","2.6.1+dfsg1-3ubuntu2.4","2.6.1+dfsg1-3ubuntu2.5","2.6.1+dfsg1-3ubuntu2.6","2.6.1+dfsg1-3ubuntu2.7","2.6.1+dfsg1-3ubuntu2.8","2.6.1+dfsg1-3ubuntu2.9","2.6.1+dfsg1-3ubuntu2.10","2.6.1+dfsg1-3ubuntu2.11"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"freerdp3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.5.1+dfsg1-0ubuntu1.4"}]}],"versions":["3.4.0+dfsg1-0ubuntu2","3.4.0+dfsg1-0ubuntu3","3.4.0+dfsg1-0ubuntu4","3.5.0+dfsg1-0ubuntu1","3.5.1+dfsg1-0ubuntu1","3.5.1+dfsg1-0ubuntu1.1","3.5.1+dfsg1-0ubuntu1.2"]},{"source":"osv","ecosystem":"Ubuntu:Pro:24.04:LTS","package":"freerdp2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.10.0+dfsg1-1.1ubuntu1","2.11.2+dfsg1-1","2.11.2+dfsg1-1build1","2.11.2+dfsg1-1build3","2.11.5+dfsg1-1build1","2.11.5+dfsg1-1build2","2.11.5+dfsg1-1ubuntu0.1~esm1","2.11.5+dfsg1-1ubuntu0.1~esm2","2.11.5+dfsg1-1ubuntu0.1~esm3","2.11.5+dfsg1-1ubuntu0.1~esm4","2.11.5+dfsg1-1ubuntu0.1~esm5","2.11.5+dfsg1-1ubuntu0.1~esm6"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"freerdp3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.16.0+dfsg-2ubuntu0.3"}]}],"versions":["3.14.0+dfsg-1ubuntu1","3.15.0+dfsg-2.1","3.16.0+dfsg-1ubuntu1","3.16.0+dfsg-2","3.16.0+dfsg-2ubuntu0.1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"freerdp3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.5.1+dfsg1-0ubuntu1.4"}]}],"versions":["3.4.0+dfsg1-0ubuntu2","3.4.0+dfsg1-0ubuntu3","3.4.0+dfsg1-0ubuntu4","3.5.0+dfsg1-0ubuntu1","3.5.1+dfsg1-0ubuntu1","3.5.1+dfsg1-0ubuntu1.1","3.5.1+dfsg1-0ubuntu1.2"],"bundled":32},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"freerdp3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.16.0+dfsg-2ubuntu0.3"}]}],"versions":["3.14.0+dfsg-1ubuntu1","3.15.0+dfsg-2.1","3.16.0+dfsg-1ubuntu1","3.16.0+dfsg-2","3.16.0+dfsg-2ubuntu0.1"],"bundled":32},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"freerdp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.24.1-1.1"}]}],"bundled":19}],"products":[{"vendor":"freerdp","product":"freerdp"}],"references":[{"url":"https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-4g54-x8v7-559x","tags":["x_refsource_CONFIRM","exploit","Exploit","Mitigation","Patch","Vendor Advisory","advisory","report"]},{"url":"https://github.com/FreeRDP/FreeRDP/commit/169d358734509e82663a0d6a0085ae726d439d8e","tags":["x_refsource_MISC","Patch","fix"]},{"url":"https://github.com/FreeRDP/FreeRDP/blob/5c7aae27d0417b42b4806c2a5c583ca39dd9ef1e/client/X11/xf_window.c#L1484-L1492","tags":["x_refsource_MISC","Patch","web","report"]},{"url":"https://github.com/FreeRDP/FreeRDP/blob/5c7aae27d0417b42b4806c2a5c583ca39dd9ef1e/client/X11/xf_window.c#L1494-L1500","tags":["x_refsource_MISC","Patch","web","report"]},{"url":"https://github.com/FreeRDP/FreeRDP/blob/5c7aae27d0417b42b4806c2a5c583ca39dd9ef1e/client/X11/xf_window.c#L1528","tags":["x_refsource_MISC","Patch","web","report"]},{"url":"https://github.com/FreeRDP/FreeRDP/blob/5c7aae27d0417b42b4806c2a5c583ca39dd9ef1e/libfreerdp/gdi/gfx.c#L1224-L1227","tags":["x_refsource_MISC","Patch","web","report"]},{"url":"https://security.alpinelinux.org/vuln/CVE-2026-25955","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/25xxx/CVE-2026-25955.json","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-25955","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-25955","tags":["advisory"]},{"url":"https://advisories.mageia.org/MGASA-2026-0383.html","tags":["advisory"]},{"url":"https://bugs.mageia.org/show_bug.cgi?id=35315","tags":["report"]},{"url":"https://github.com/FreeRDP/FreeRDP/releases#release-3.26.0","tags":["web"]},{"url":"https://github.com/FreeRDP/FreeRDP/releases#release-3.27.0","tags":["web"]},{"url":"https://github.com/FreeRDP/FreeRDP/releases#release-3.27.1","tags":["web"]},{"url":"https://github.com/FreeRDP/FreeRDP/releases#release-3.28.0","tags":["web"]},{"url":"https://github.com/FreeRDP/FreeRDP/releases#release-3.29.0","tags":["web"]},{"url":"https://github.com/FreeRDP/FreeRDP/releases#release-3.30.0","tags":["web"]},{"url":"https://github.com/FreeRDP/FreeRDP/releases#release-3.31.0","tags":["web"]},{"url":"https://www.suse.com/support/update/announcement/2026/suse-su-20261633-1/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1258919","tags":["report"]},{"url":"https://bugzilla.suse.com/1258920","tags":["report"]},{"url":"https://bugzilla.suse.com/1258921","tags":["report"]},{"url":"https://bugzilla.suse.com/1258923","tags":["report"]},{"url":"https://bugzilla.suse.com/1258924","tags":["report"]},{"url":"https://bugzilla.suse.com/1258939","tags":["report"]},{"url":"https://bugzilla.suse.com/1258941","tags":["report"]},{"url":"https://bugzilla.suse.com/1258967","tags":["report"]},{"url":"https://bugzilla.suse.com/1258973","tags":["report"]},{"url":"https://bugzilla.suse.com/1258976","tags":["report"]},{"url":"https://bugzilla.suse.com/1258977","tags":["report"]},{"url":"https://bugzilla.suse.com/1258987","tags":["report"]},{"url":"https://bugzilla.suse.com/1259680","tags":["report"]},{"url":"https://bugzilla.suse.com/1259684","tags":["report"]},{"url":"https://bugzilla.suse.com/1259689","tags":["report"]},{"url":"https://bugzilla.suse.com/1259692","tags":["report"]},{"url":"https://bugzilla.suse.com/1259693","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2026-25941","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-25942","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-25952","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-25953","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-25954","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-25955","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-25959","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-25997","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-26986","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-27015","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-27950","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-27951","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-29774","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-29775","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-29776","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-31884","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-31897","tags":["web"]},{"url":"https://www.suse.com/support/update/announcement/2026/suse-su-202621436-1/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1258979","tags":["report"]},{"url":"https://bugzilla.suse.com/1258982","tags":["report"]},{"url":"https://bugzilla.suse.com/1258985","tags":["report"]},{"url":"https://bugzilla.suse.com/1259653","tags":["report"]},{"url":"https://bugzilla.suse.com/1259679","tags":["report"]},{"url":"https://bugzilla.suse.com/1259686","tags":["report"]},{"url":"https://bugzilla.suse.com/1261196","tags":["report"]},{"url":"https://bugzilla.suse.com/1261198","tags":["report"]},{"url":"https://bugzilla.suse.com/1261200","tags":["report"]},{"url":"https://bugzilla.suse.com/1261211","tags":["report"]},{"url":"https://bugzilla.suse.com/1261217","tags":["report"]},{"url":"https://bugzilla.suse.com/1261222","tags":["report"]},{"url":"https://bugzilla.suse.com/1261223","tags":["report"]},{"url":"https://bugzilla.suse.com/1261226","tags":["report"]},{"url":"https://bugzilla.suse.com/1261227","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2026-26271","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-26955","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-26965","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-31806","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-31883","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-31885","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-33952","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-33977","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-33982","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-33983","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-33984","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-33985","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-33986","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-33987","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-33995","tags":["web"]},{"url":"https://ubuntu.com/security/CVE-2026-25955","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-25955","tags":["report"]},{"url":"https://ubuntu.com/security/notices/USN-8105-1","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-22851","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-22852","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-22853","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-22854","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-22855","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-22856","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-22857","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-22858","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-22859","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-23530","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-23531","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-23532","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-23533","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-23534","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-23732","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-23883","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-23884","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-25941","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-25942","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-25952","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-25953","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-25954","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-25959","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-25997","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-26271","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-26955","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-26965","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-26986","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-27015","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-27950","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-27951","tags":["report"]},{"url":"","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2026-25955","title":"FreeRDP has heap-use-after-free in xf_AppUpdateWindowFromSurface (stale XImage)","description":"FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, `xf_AppUpdateWindowFromSurface` reuses a cached `XImage` whose `data` pointer references a freed RDPGFX surface buffer, because `gdi_DeleteSurface` frees `surface-\u003edata` without invalidating the `appWindow-\u003eimage` that aliases it. Version 3.23.0 fixes the issue.","status":"published","published":"2026-02-25T20:32:42.458Z","modified":"2026-02-26T15:54:09.229Z","cvss":[{"version":"4.0","score":5.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:P","level":"medium","assessor":"cna"}],"cwes":["CWE-416"],"updated_at":"2026-11-02T13:41:30.911526Z"}],"euvd":[{"id":"EUVD-2026-8735","description":"FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, `xf_AppUpdateWindowFromSurface` reuses a cached `XImage` whose `data` pointer references a freed RDPGFX surface buffer, because `gdi_DeleteSurface` frees `surface-\u003edata` without invalidating the `appWindow-\u003eimage` that aliases it. Version 3.23.0 fixes the issue.","status":"published","published":"2026-02-25T20:32:42Z","modified":"2026-02-26T15:54:09Z","cvss":[{"version":"4.0","score":5.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:P","level":"medium"}],"updated_at":"2026-11-02T19:48:26.495238Z"}],"nvd":[{"id":"CVE-2026-25955","description":"FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, `xf_AppUpdateWindowFromSurface` reuses a cached `XImage` whose `data` pointer references a freed RDPGFX surface buffer, because `gdi_DeleteSurface` frees `surface-\u003edata` without invalidating the `appWindow-\u003eimage` that aliases it. Version 3.23.0 fixes the issue.","status":"published","published":"2026-02-25T21:16:41.857Z","modified":"2026-06-17T10:25:29.177Z","cvss":[{"version":"4.0","score":5.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"medium","assessor":"secondary"},{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"}],"cwes":["CWE-416"],"updated_at":"2026-11-02T14:12:07.027269Z"}],"osv":[{"id":"ALPINE-CVE-2026-25955","description":"FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, `xf_AppUpdateWindowFromSurface` reuses a cached `XImage` whose `data` pointer references a freed RDPGFX surface buffer, because `gdi_DeleteSurface` frees `surface-\u003edata` without invalidating the `appWindow-\u003eimage` that aliases it. Version 3.23.0 fixes the issue.","status":"published","published":"2026-02-25T21:16:41.857Z","modified":"2026-11-03T06:33:01.95917085Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-03T07:15:53.944853Z"},{"id":"CVE-2026-25955","title":"FreeRDP has heap-use-after-free in xf_AppUpdateWindowFromSurface (stale XImage)","description":"FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, `xf_AppUpdateWindowFromSurface` reuses a cached `XImage` whose `data` pointer references a freed RDPGFX surface buffer, because `gdi_DeleteSurface` frees `surface-\u003edata` without invalidating the `appWindow-\u003eimage` that aliases it. Version 3.23.0 fixes the issue.","status":"published","published":"2026-02-25T20:32:42.458Z","modified":"2026-11-11T13:20:25.613319467Z","cvss":[{"version":"4.0","score":5.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:P","level":"medium"}],"cwes":["CWE-416"],"updated_at":"2026-11-11T03:21:32.226287Z"},{"id":"DEBIAN-CVE-2026-25955","description":"FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, `xf_AppUpdateWindowFromSurface` reuses a cached `XImage` whose `data` pointer references a freed RDPGFX surface buffer, because `gdi_DeleteSurface` frees `surface-\u003edata` without invalidating the `appWindow-\u003eimage` that aliases it. Version 3.23.0 fixes the issue.","status":"published","published":"2026-02-25T21:16:41.857Z","modified":"2026-10-01T03:03:00.654188142Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:45:53.877573Z"},{"id":"UBUNTU-CVE-2026-25955","description":"FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, `xf_AppUpdateWindowFromSurface` reuses a cached `XImage` whose `data` pointer references a freed RDPGFX surface buffer, because `gdi_DeleteSurface` frees `surface-\u003edata` without invalidating the `appWindow-\u003eimage` that aliases it. Version 3.23.0 fixes the issue.","status":"published","published":"2026-02-25T21:16:00Z","modified":"2026-06-16T13:30:33.513337897Z","cvss":[{"version":"4.0","score":5.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:P","level":"medium"},{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T16:56:08.726452Z"},{"id":"MGASA-2026-0383","title":"Updated freerdp packages fix security vulnerabilities","description":"Updated packages bring lot of security fixes. Please see the links for\nadditional information.\n","status":"published","published":"2026-09-08T02:47:35Z","modified":"2026-09-08T12:40:27.9536564Z","updated_at":"2026-11-02T15:49:43.795591Z"},{"id":"openSUSE-SU-2026:10408-1","title":"freerdp-3.24.1-1.1 on GA media","description":"These are all security issues fixed in the freerdp-3.24.1-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-03-23T00:00:00Z","modified":"2026-03-24T08:45:06.811266Z","updated_at":"2026-11-02T16:58:38.415593Z"},{"id":"openSUSE-SU-2026:20657-1","title":"Security update for freerdp","description":"This update for freerdp fixes the following issues:\n\nUpdate to version 3.24.2.\n\nSecurity issues fixed:\n\n- CVE-2026-25941: out-of-bounds read in the FreeRDP client RDPGFX channel (bsc#1258919).\n- CVE-2026-25942: buffer overflow of global array in `xf_rail_server_execute_result` (bsc#1258920).\n- CVE-2026-25952: heap use-after-free in `xf_SetWindowMinMaxInfo` (bsc#1258921).\n- CVE-2026-25953: heap use-after-free in `xf_AppUpdateWindowFromSurface` (bsc#1258923).\n- CVE-2026-25954: heap use-after-free in `xf_rail_server_local_move_size` (bsc#1258924).\n- CVE-2026-25955: heap use-after-free in `xf_AppUpdateWindowFromSurface` (bsc#1258973).\n- CVE-2026-25959: heap use-after-free in `xf_cliprdr_provide_data_` (bsc#1258976).\n- CVE-2026-25997: heap use-after-free in `xf_clipboard_format_equal` (bsc#1258977).\n- CVE-2026-26271: buffer overread in FreeRDP icon processing (bsc#1258979).\n- CVE-2026-26955: out-of-bounds write in FreeRDP clients using the GDI surface pipeline (bsc#1258982).\n- CVE-2026-26965: out-of-bounds write in FreeRDP client RLE planar decode path (bsc#1258985).\n- CVE-2026-29774: heap buffer overflow in the FreeRDP client's AVC420/AVC444 YUV-to-RGB conversion path (bsc#1259689).\n- CVE-2026-29775: out-of-bounds access in the FreeRDP client bitmap cache subsystem (bsc#1259684).\n- CVE-2026-29776: integer underflow in `update_read_cache_bitmap_order` (bsc#1259692).\n- CVE-2026-31806: heap buffer overflow in `nsc_process_message` (bsc#1259653).\n- CVE-2026-31883: heap buffer overwrite due to a `size_t` underflow in the IMA-ADPCM and MS-ADPCM audio decoders\n  (bsc#1259679).\n- CVE-2026-31884: division by zero in MS-ADPCM and IMA-ADPCM decoders (bsc#1259680).\n- CVE-2026-31885: out-of-bounds read in MS-ADPCM and IMA-ADPCM decoders (bsc#1259686).\n- CVE-2026-31897: out-of-bounds read in `freerdp_bitmap_decompress_planar` (bsc#1259693).\n- CVE-2026-33952: client-side crash due to `WINPR_ASSERT()` failure in `rts_read_auth_verifier_no_checks()`\n  (bsc#1261196).\n- CVE-2026-33977: client-side crash due to `WINPR_ASSERT()` failure in IMA ADPCM audio decoder (bsc#1261198).\n- CVE-2026-33982: heap buffer overread in in `winpr_aligned_offset_recalloc` (bsc#1261222).\n- CVE-2026-33983: undefined behavior and resource exhaustion via 80 billion iteration loop in\n  `progressive_decompress_tile_upgrade` (bsc#1261200).\n- CVE-2026-33984: heap buffer overflow in ClearCodec `resize_vbar_entry` (bsc#1261211).\n- CVE-2026-33985: heap out-of-bounds read in `clear_decompress_glyph_data` (bsc#1261217).\n- CVE-2026-33986: heap out-of-bounds write due to H.264 YUV buffer dimension desync (bsc#1261223).\n- CVE-2026-33987: heap out-of-bounds write due to persistent cache bmpSize desync (bsc#1261226).\n- CVE-2026-33995: double-free vulnerability in `kerberos_AcceptSecurityContext` and\n  `kerberos_InitializeSecurityContextA` (bsc#1261227).\n\nOther updates and bugfixes:\n\n- Version 3.24.2:\n  * [channels,video] fix wrong cast (#12511)\n  * [codec,openh264] reject encoder ABI mismatch on runtime-loaded library (#12510)\n  * [client,sdl] create a copy of rdpPointer (#12512)\n  * [codec,video] properly pass intermediate format (#12518)\n  * [utils, signal] lazily initialize Windows CRITICAL_SECTION to match POSIX static mutex behavior (#12520) winpr:\n    improve libunwind backtraces (#12530)\n  * [server,shadow] remember selected caps (#12528)\n  * Zero credential data before free in NLA and NTLM context (#12532)\n  * [server,proxy] ignore missing client in input channel (#12536)\n  * [server,proxy] ignore rdpdr messages (#12537)\n  * [winpr,sspi] improve kerberos logging (#12538)\n  * Codec fixes (#12542)\n\n- Version 3.24.1:\n  * [warnings] fix various sign and cast warnings (#12480)\n  * [client,x11] start with xfc-\u003eremote_app = TRUE; (#12491)\n  * Sam file read regression fix (#12484)\n  * [ncrypt,smartcardlogon] support ECC keys in PKCS#11 smartcard enumeration (#12490)\n  * Fix: memory leak in rdp_client_establish_keys() (#12494)\n  * Fix memory leak in freerdp_settings_int_buffer_copy() on error paths (libfreerdp/core/settings.c) (#12486)\n  * Code Cleanups (#12493)\n  * Fix: memory leak in PCSC_SCardListReadersW() (#12495)\n  * [channels,telemetry] use dynamic logging (#12496)\n  * [channel,gfx] use generic plugin log (@12498, #12499)\n  * [channels,audin] set error when audio_format_read fails (#12500)\n  * [channels,video] unify error handling (#12502)\n  * Fastpath fine grained lock (#12503)\n  * [core,update] make the PlaySound callback non-mandatory (#12504)\n  * Refinements: RPM build updates, FIPS improvements (#12506)\n\n- Version 3.24.0:\n  * Completed the [[nodiscard]] marking of the API to warn about problematic\n  * unchecked use of functions\n  * Added full C23 support (default stays at C11) to allow new compilers\n  * to do stricter checking\n  * Improved X11 and SDL3 clients\n  * Improved smartcard support\n  * proxy now supports RFX graphics mode\n  * Attribute nodiscard related chanes (#12325, #12360, #12395, #12406, #12421, #12426, #12177, #12403, #12405, #12407,\n    #12409, #12408, #12412, #12413)\n  * c23 related improvements (#12368, #12371, #12379, #12381, #12383, #12385, #12386, #12387, #12384)\n  * Generic code cleanups (#12382, #12439, #12455, #12462, #12399, #12473) [core,utils] ignore NULL values in\n    remove_rdpdr_type (#12372)\n  * [codec,fdk] revert use of WinPR types (#12373)\n  * [core,gateway] ignore incomplete rpc header (#12375, #12376)\n  * [warnings] make function declaration names consistent (#12377)\n  * [libfreerdp] Add new define for logon error info (#12380)\n  * [client,x11] improve rails window locking (#12392)\n  * Reload fix missing null checks (#12396)\n  * Bounds checks (#12400)\n  * [server,proxy] check for nullptr before using scard_call_context (#12404)\n  * [uwac] fix rectangular glitch around surface damage regions (#12410)\n  * Address various error handling inconsistencies (#12411)\n  * [core,server] Improve WTS API locking (#12414)\n  * Address some GCC compile issues (#12415, #12420)\n  * Winpr atexit (#12416)\n  * [winpr,smartcard] fix function pointer casts (#12422)\n  * Xf timer fix (#12423)\n  * [client,sdl] workaround for wlroots compositors (#12425)\n  * [client,sdl] fix SdlWindow::query (#12378)\n  * [winpr,smartcard] fix PCSC_ReleaseCardContext (#12427)\n  * [client,x11] eliminate obsolete compile flags (#12428)\n  * [client,common] skip sending input events when not connected (#12429)\n  * Input connected checks (#12430)\n  * Floatbar and display channel improvements (#12431)\n  * [winpr,platform] fix WINPR_ATTR_NODISCARD definition (#12432)\n  * [client] Fix writing of gatewayusagemethod to .rdp files (#12433)\n  * Nodiscard finetune (#12435)\n  * [core] fix missing gateway credential sync (#12436)\n  * [client,sdl3] limit FREERDP_WLROOTS_HACK (#12441)\n  * [core,settings] Allow FreeRDP_instance in setter (#12442)\n  * [codec,h264] make log message trace (#12444)\n  * X11 rails improve (#12440)\n  * [codec,nsc] limit copy area in nsc_process_message (#12448)\n  * Proxy support RFX and NSC settings (#12449)\n  * [client,common] display a shortened help on parsing issues (#12450)\n  * [winpr,smartcard] refine locking for pcsc layer (#12451)\n  * [codec,swscale] allow runtime loading of swscale (#12452)\n  * Swscale fallback (#12454)\n  * Sdl multi scaling support (#12456)\n  * [packaging,flatpak] update runtime and dependencies (#12457)\n  * [codec,video] add doxygen version details (#12458)\n  * [github,templates] update templates (#12460)\n  * [client,sdl] allow FREERDP_WLROOTS_HACK for all sessions (#12461)\n  * [warnings,nodiscard] add log messages for failures (#12463)\n  * [gdi,gdi] ignore empty rectangles (#12467)\n  * Smartcard fix smartcard-login, pass rdpContext for abort (#12466)\n  * [winpr,smartcard] fix compiler warnings (#12469)\n  * [winpr,timezone] fix search for transition dates (#12468)\n  * [client,common] improve /p help (#12471)\n  * Scard logging refactored (#12472)\n  * [emu,scard] fix smartcard emulation (#12475)\n  * Sdl null cursor (#12474)\n\n- Version 3.23.0:\n  * Sdl cleanup (#12202)\n  * [client,sdl] do not apply window offset (#12205)\n  * [client,sdl] add SDL_Error to exceptions (#12214)\n  * Rdp monitor log (#12215)\n  * [winpr,smartcard] implement some attributes (#12213)\n  * [client,windows] Fix return value checks for mouse event functions (#12279)\n  * [channels,rdpecam] fix sws context checks (#12272)\n  * [client,windows] Enhance error handling and context validation (#12264)\n  * [client,windows] Add window handle validation in RDP_EVENT_TYPE_WINDOW_NEW (#12261)\n  * [client,sdl] fix multimon/fullscreen on wayland (#12248)\n  * Vendor by app (#12207)\n  * [core,gateway] relax TSG parsing (#12283)\n  * [winpr,smartcard] simplify PCSC_ReadDeviceSystemName (#12273)\n  * [client,windows] Implement complete keyboard indicator synchronization (#12268)\n  * Fixes more more more (#12286)\n  * Use application details for names (#12285)\n  * warning cleanups (#12289)\n  * Warning cleanup (#12291)\n  * [client,windows] Enhance memory safety with NULL checks and resource protection (#12271)\n  * [client,x11] apply /size:xx% only once (#12293)\n  * Freerdp config test (#12295)\n  * [winpr,smartcard] fix returned attribute length (#12296)\n  * [client,SDL3] Fix properly handle smart-sizing with fullscreen (#12298)\n  * [core,test] fix use after free (#12299)\n  * Sign warnings (#12300)\n  * [cmake,compiler] disable -Wjump-misses-init (#12301)\n  * [codec,color] fix input length checks (#12302)\n  * [client,sdl] improve cursor updates, fix surface sizes (#12303)\n  * Sdl fullscreen (#12217)\n  * [client,sdl] fix move constructor of SdlWindow (#12305)\n  * [utils,smartcard] check stream length on padding (#12306)\n  * [android] Fix invert scrolling default value mismatch (#12309)\n  * Clear fix bounds checks (#12310)\n  * Winpr attr nodiscard fkt ptr (#12311)\n  * [codec,planar] fix missing destination bounds checks (#12312)\n  * [codec,clear] fix destination checks (#12315)\n  * NSC Codec fixes (#12317)\n  * Freerdp api nodiscard (#12313)\n  * [allocations] fix growth of preallocated buffers (#12319)\n  * Rdpdr simplify (#12320)\n  * Resource fix (#12323)\n  * [winpr,utils] ensure message queue capacity (#12322)\n  * [server,shadow] fix return and parameter checks (#12330)\n  * Shadow fixes (#12331)\n  * [rdtk,nodiscard] mark rdtk API nodiscard (#12329)\n  * [client,x11] fix XGetWindowProperty return handling (#12334)\n  * Win32 signal (#12335)\n  * [channel,usb] fix message parsing and creation (#12336)\n  * [cmake] Define WINPR_DEFINE_ATTR_NODISCARD (#12338)\n  * Proxy config fix (#12345)\n  * [codec,progressive] refine progressive decoding (#12347)\n  * [client,sdl] fix sdl_Pointer_New (#12350)\n  * [core,gateway] parse [MS-TSGU] 2.2.10.5 HTTP_CHANNEL_RESPONSE_OPTIONAL (#12353)\n  * X11 kbd sym (#12354)\n  * Windows compile warning fixes (#12357,#12358,#12359)\n","status":"published","published":"2026-04-30T16:54:03Z","modified":"2026-05-05T18:23:59.134007Z","updated_at":"2026-11-02T16:58:41.463445Z"},{"id":"SUSE-SU-2026:1633-1","title":"Security update for freerdp","description":"This update for freerdp fixes the following issues:\n\n- CVE-2026-25941: Out-of-Bounds Read in client RDPGFX channel via crafted `WIRE_TO_SURFACE_2` PDU (bsc#1258919).\n- CVE-2026-25942: Global-buffer-overflow in `xf_rail_server_execute_result` (bsc#1258920).\n- CVE-2026-25952: Heap-use-after-free in `xf_SetWindowMinMaxInfo` (bsc#1258921).\n- CVE-2026-25953: Heap-use-after-free in `xf_AppUpdateWindowFromSurface` (bsc#1258923).\n- CVE-2026-25954: Heap-use-after-free in `xf_rail_server_local_move_size` (bsc#1258924).\n- CVE-2026-25955: Heap-use-after-free in `xf_AppUpdateWindowFromSurface` (bsc#1258973).\n- CVE-2026-25959: Heap-use-after-free in `xf_cliprdr_provide_data_` (bsc#1258976).\n- CVE-2026-25997: Heap-use-after-free in `xf_clipboard_format_equal` (bsc#1258977).\n- CVE-2026-26986: Heap-use-after-free in `rail_window_free` (bsc#1258967).\n- CVE-2026-27015: Smartcard NDR alignment padding triggers reachable `WINPR_ASSERT` abort (bsc#1258987).\n- CVE-2026-27950: Denial of service due to incomplete fix for heap-use-after-free vulnerability (bsc#1258941).\n- CVE-2026-27951: Denial of service via endless blocking loop in `Stream_EnsureCapacity` (bsc#1258939).\n- CVE-2026-29774: Missing bounds validation can cause a client-side heap buffer overflow (bsc#1259689).\n- CVE-2026-29775: Malicious server can trigger a client-side heap out-of-bounds access (bsc#1259684).\n- CVE-2026-29776: Missing length check can lead to an integer underflow (bsc#1259692).\n- CVE-2026-31897: Missing length check can cause an out-of-bounds read (bsc#1259693).\n","status":"published","published":"2026-04-27T12:05:30Z","modified":"2026-04-28T08:00:19.590001Z","updated_at":"2026-11-02T15:54:01.610851Z"},{"id":"SUSE-SU-2026:21436-1","title":"Security update for freerdp","description":"This update for freerdp fixes the following issues:\n\nUpdate to version 3.24.2.\n\nSecurity issues fixed:\n\n- CVE-2026-25941: out-of-bounds read in the FreeRDP client RDPGFX channel (bsc#1258919).\n- CVE-2026-25942: buffer overflow of global array in `xf_rail_server_execute_result` (bsc#1258920).\n- CVE-2026-25952: heap use-after-free in `xf_SetWindowMinMaxInfo` (bsc#1258921).\n- CVE-2026-25953: heap use-after-free in `xf_AppUpdateWindowFromSurface` (bsc#1258923).\n- CVE-2026-25954: heap use-after-free in `xf_rail_server_local_move_size` (bsc#1258924).\n- CVE-2026-25955: heap use-after-free in `xf_AppUpdateWindowFromSurface` (bsc#1258973).\n- CVE-2026-25959: heap use-after-free in `xf_cliprdr_provide_data_` (bsc#1258976).\n- CVE-2026-25997: heap use-after-free in `xf_clipboard_format_equal` (bsc#1258977).\n- CVE-2026-26271: buffer overread in FreeRDP icon processing (bsc#1258979).\n- CVE-2026-26955: out-of-bounds write in FreeRDP clients using the GDI surface pipeline (bsc#1258982).\n- CVE-2026-26965: out-of-bounds write in FreeRDP client RLE planar decode path (bsc#1258985).\n- CVE-2026-29774: heap buffer overflow in the FreeRDP client's AVC420/AVC444 YUV-to-RGB conversion path (bsc#1259689).\n- CVE-2026-29775: out-of-bounds access in the FreeRDP client bitmap cache subsystem (bsc#1259684).\n- CVE-2026-29776: integer underflow in `update_read_cache_bitmap_order` (bsc#1259692).\n- CVE-2026-31806: heap buffer overflow in `nsc_process_message` (bsc#1259653).\n- CVE-2026-31883: heap buffer overwrite due to a `size_t` underflow in the IMA-ADPCM and MS-ADPCM audio decoders\n  (bsc#1259679).\n- CVE-2026-31884: division by zero in MS-ADPCM and IMA-ADPCM decoders (bsc#1259680).\n- CVE-2026-31885: out-of-bounds read in MS-ADPCM and IMA-ADPCM decoders (bsc#1259686).\n- CVE-2026-31897: out-of-bounds read in `freerdp_bitmap_decompress_planar` (bsc#1259693).\n- CVE-2026-33952: client-side crash due to `WINPR_ASSERT()` failure in `rts_read_auth_verifier_no_checks()`\n  (bsc#1261196).\n- CVE-2026-33977: client-side crash due to `WINPR_ASSERT()` failure in IMA ADPCM audio decoder (bsc#1261198).\n- CVE-2026-33982: heap buffer overread in in `winpr_aligned_offset_recalloc` (bsc#1261222).\n- CVE-2026-33983: undefined behavior and resource exhaustion via 80 billion iteration loop in\n  `progressive_decompress_tile_upgrade` (bsc#1261200).\n- CVE-2026-33984: heap buffer overflow in ClearCodec `resize_vbar_entry` (bsc#1261211).\n- CVE-2026-33985: heap out-of-bounds read in `clear_decompress_glyph_data` (bsc#1261217).\n- CVE-2026-33986: heap out-of-bounds write due to H.264 YUV buffer dimension desync (bsc#1261223).\n- CVE-2026-33987: heap out-of-bounds write due to persistent cache bmpSize desync (bsc#1261226).\n- CVE-2026-33995: double-free vulnerability in `kerberos_AcceptSecurityContext` and\n  `kerberos_InitializeSecurityContextA` (bsc#1261227).\n\nOther updates and bugfixes:\n\n- Version 3.24.2:\n  * [channels,video] fix wrong cast (#12511)\n  * [codec,openh264] reject encoder ABI mismatch on runtime-loaded library (#12510)\n  * [client,sdl] create a copy of rdpPointer (#12512)\n  * [codec,video] properly pass intermediate format (#12518)\n  * [utils, signal] lazily initialize Windows CRITICAL_SECTION to match POSIX static mutex behavior (#12520) winpr:\n    improve libunwind backtraces (#12530)\n  * [server,shadow] remember selected caps (#12528)\n  * Zero credential data before free in NLA and NTLM context (#12532)\n  * [server,proxy] ignore missing client in input channel (#12536)\n  * [server,proxy] ignore rdpdr messages (#12537)\n  * [winpr,sspi] improve kerberos logging (#12538)\n  * Codec fixes (#12542)\n\n- Version 3.24.1:\n  * [warnings] fix various sign and cast warnings (#12480)\n  * [client,x11] start with xfc-\u003eremote_app = TRUE; (#12491)\n  * Sam file read regression fix (#12484)\n  * [ncrypt,smartcardlogon] support ECC keys in PKCS#11 smartcard enumeration (#12490)\n  * Fix: memory leak in rdp_client_establish_keys() (#12494)\n  * Fix memory leak in freerdp_settings_int_buffer_copy() on error paths (libfreerdp/core/settings.c) (#12486)\n  * Code Cleanups (#12493)\n  * Fix: memory leak in PCSC_SCardListReadersW() (#12495)\n  * [channels,telemetry] use dynamic logging (#12496)\n  * [channel,gfx] use generic plugin log (@12498, #12499)\n  * [channels,audin] set error when audio_format_read fails (#12500)\n  * [channels,video] unify error handling (#12502)\n  * Fastpath fine grained lock (#12503)\n  * [core,update] make the PlaySound callback non-mandatory (#12504)\n  * Refinements: RPM build updates, FIPS improvements (#12506)\n\n- Version 3.24.0:\n  * Completed the [[nodiscard]] marking of the API to warn about problematic\n  * unchecked use of functions\n  * Added full C23 support (default stays at C11) to allow new compilers\n  * to do stricter checking\n  * Improved X11 and SDL3 clients\n  * Improved smartcard support\n  * proxy now supports RFX graphics mode\n  * Attribute nodiscard related chanes (#12325, #12360, #12395, #12406, #12421, #12426, #12177, #12403, #12405, #12407,\n    #12409, #12408, #12412, #12413)\n  * c23 related improvements (#12368, #12371, #12379, #12381, #12383, #12385, #12386, #12387, #12384)\n  * Generic code cleanups (#12382, #12439, #12455, #12462, #12399, #12473) [core,utils] ignore NULL values in\n    remove_rdpdr_type (#12372)\n  * [codec,fdk] revert use of WinPR types (#12373)\n  * [core,gateway] ignore incomplete rpc header (#12375, #12376)\n  * [warnings] make function declaration names consistent (#12377)\n  * [libfreerdp] Add new define for logon error info (#12380)\n  * [client,x11] improve rails window locking (#12392)\n  * Reload fix missing null checks (#12396)\n  * Bounds checks (#12400)\n  * [server,proxy] check for nullptr before using scard_call_context (#12404)\n  * [uwac] fix rectangular glitch around surface damage regions (#12410)\n  * Address various error handling inconsistencies (#12411)\n  * [core,server] Improve WTS API locking (#12414)\n  * Address some GCC compile issues (#12415, #12420)\n  * Winpr atexit (#12416)\n  * [winpr,smartcard] fix function pointer casts (#12422)\n  * Xf timer fix (#12423)\n  * [client,sdl] workaround for wlroots compositors (#12425)\n  * [client,sdl] fix SdlWindow::query (#12378)\n  * [winpr,smartcard] fix PCSC_ReleaseCardContext (#12427)\n  * [client,x11] eliminate obsolete compile flags (#12428)\n  * [client,common] skip sending input events when not connected (#12429)\n  * Input connected checks (#12430)\n  * Floatbar and display channel improvements (#12431)\n  * [winpr,platform] fix WINPR_ATTR_NODISCARD definition (#12432)\n  * [client] Fix writing of gatewayusagemethod to .rdp files (#12433)\n  * Nodiscard finetune (#12435)\n  * [core] fix missing gateway credential sync (#12436)\n  * [client,sdl3] limit FREERDP_WLROOTS_HACK (#12441)\n  * [core,settings] Allow FreeRDP_instance in setter (#12442)\n  * [codec,h264] make log message trace (#12444)\n  * X11 rails improve (#12440)\n  * [codec,nsc] limit copy area in nsc_process_message (#12448)\n  * Proxy support RFX and NSC settings (#12449)\n  * [client,common] display a shortened help on parsing issues (#12450)\n  * [winpr,smartcard] refine locking for pcsc layer (#12451)\n  * [codec,swscale] allow runtime loading of swscale (#12452)\n  * Swscale fallback (#12454)\n  * Sdl multi scaling support (#12456)\n  * [packaging,flatpak] update runtime and dependencies (#12457)\n  * [codec,video] add doxygen version details (#12458)\n  * [github,templates] update templates (#12460)\n  * [client,sdl] allow FREERDP_WLROOTS_HACK for all sessions (#12461)\n  * [warnings,nodiscard] add log messages for failures (#12463)\n  * [gdi,gdi] ignore empty rectangles (#12467)\n  * Smartcard fix smartcard-login, pass rdpContext for abort (#12466)\n  * [winpr,smartcard] fix compiler warnings (#12469)\n  * [winpr,timezone] fix search for transition dates (#12468)\n  * [client,common] improve /p help (#12471)\n  * Scard logging refactored (#12472)\n  * [emu,scard] fix smartcard emulation (#12475)\n  * Sdl null cursor (#12474)\n\n- Version 3.23.0:\n  * Sdl cleanup (#12202)\n  * [client,sdl] do not apply window offset (#12205)\n  * [client,sdl] add SDL_Error to exceptions (#12214)\n  * Rdp monitor log (#12215)\n  * [winpr,smartcard] implement some attributes (#12213)\n  * [client,windows] Fix return value checks for mouse event functions (#12279)\n  * [channels,rdpecam] fix sws context checks (#12272)\n  * [client,windows] Enhance error handling and context validation (#12264)\n  * [client,windows] Add window handle validation in RDP_EVENT_TYPE_WINDOW_NEW (#12261)\n  * [client,sdl] fix multimon/fullscreen on wayland (#12248)\n  * Vendor by app (#12207)\n  * [core,gateway] relax TSG parsing (#12283)\n  * [winpr,smartcard] simplify PCSC_ReadDeviceSystemName (#12273)\n  * [client,windows] Implement complete keyboard indicator synchronization (#12268)\n  * Fixes more more more (#12286)\n  * Use application details for names (#12285)\n  * warning cleanups (#12289)\n  * Warning cleanup (#12291)\n  * [client,windows] Enhance memory safety with NULL checks and resource protection (#12271)\n  * [client,x11] apply /size:xx% only once (#12293)\n  * Freerdp config test (#12295)\n  * [winpr,smartcard] fix returned attribute length (#12296)\n  * [client,SDL3] Fix properly handle smart-sizing with fullscreen (#12298)\n  * [core,test] fix use after free (#12299)\n  * Sign warnings (#12300)\n  * [cmake,compiler] disable -Wjump-misses-init (#12301)\n  * [codec,color] fix input length checks (#12302)\n  * [client,sdl] improve cursor updates, fix surface sizes (#12303)\n  * Sdl fullscreen (#12217)\n  * [client,sdl] fix move constructor of SdlWindow (#12305)\n  * [utils,smartcard] check stream length on padding (#12306)\n  * [android] Fix invert scrolling default value mismatch (#12309)\n  * Clear fix bounds checks (#12310)\n  * Winpr attr nodiscard fkt ptr (#12311)\n  * [codec,planar] fix missing destination bounds checks (#12312)\n  * [codec,clear] fix destination checks (#12315)\n  * NSC Codec fixes (#12317)\n  * Freerdp api nodiscard (#12313)\n  * [allocations] fix growth of preallocated buffers (#12319)\n  * Rdpdr simplify (#12320)\n  * Resource fix (#12323)\n  * [winpr,utils] ensure message queue capacity (#12322)\n  * [server,shadow] fix return and parameter checks (#12330)\n  * Shadow fixes (#12331)\n  * [rdtk,nodiscard] mark rdtk API nodiscard (#12329)\n  * [client,x11] fix XGetWindowProperty return handling (#12334)\n  * Win32 signal (#12335)\n  * [channel,usb] fix message parsing and creation (#12336)\n  * [cmake] Define WINPR_DEFINE_ATTR_NODISCARD (#12338)\n  * Proxy config fix (#12345)\n  * [codec,progressive] refine progressive decoding (#12347)\n  * [client,sdl] fix sdl_Pointer_New (#12350)\n  * [core,gateway] parse [MS-TSGU] 2.2.10.5 HTTP_CHANNEL_RESPONSE_OPTIONAL (#12353)\n  * X11 kbd sym (#12354)\n  * Windows compile warning fixes (#12357,#12358,#12359)\n","status":"published","published":"2026-04-30T16:54:05Z","modified":"2026-05-05T18:23:52.45993Z","updated_at":"2026-11-02T15:54:02.312556Z"},{"id":"USN-8105-1","title":"freerdp3 vulnerabilities","description":"It was discovered that FreeRDP incorrectly handled certain RDP packets. A\nremote attacker could use this issue to cause FreeRDP to crash, resulting\nin a denial of service, or possibly execute arbitrary code.","status":"published","published":"2026-03-18T12:03:18Z","modified":"2026-10-27T04:16:54.424890397Z","updated_at":"2026-11-02T16:58:22.951676Z"}]}}
