{"id":"CVE-2026-40254","aliases":["DEBIAN-CVE-2026-40254","EUVD-2026-25381","GHSA-3xpj-m4hx-8vmx","SUSE-SU-2026:22194-1","SUSE-SU-2026:3562-1","UBUNTU-CVE-2026-40254","USN-8561-1","openSUSE-SU-2026:10832-1","openSUSE-SU-2026:21116-1"],"status":"published","title":"FreeRDP: contains_dotdot() off-by-one allows drive channel path traversal via terminal ..","description":"FreeRDP is a free implementation of the Remote Desktop Protocol. Versions prior to 3.25.0 have an off-by-one in the path traversal filter in `channels/drive/client/drive_file.c`. The `contains_dotdot()` function catches `../` and `..\\` mid-path but misses `..` when it's the last component with no trailing separator. A rogue RDP server can read, list, or write files one directory above the client's shared folder through RDPDR requests. This requires the victim to connect with drive redirection enabled. Version 3.25.0 patches the issue.","severity":{"version":"3.1","score":4.2,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.002,"percentile":0.0996,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-193"],"published":"2026-04-24T02:24:50Z","modified":"2026-10-28T02:30:41Z","fixes":[{"ecosystem":"Debian:13","package":"freerdp3","fixed_in":["3.15.0+dfsg-2.1+deb13u3"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"freerdp3","fixed_in":["3.25.0+dfsg-1"],"sources":["osv"]},{"ecosystem":"Ubuntu:24.04:LTS","package":"freerdp3","fixed_in":["3.30.0+dfsg-0ubuntu0.24.04.1"],"sources":["osv"]},{"ecosystem":"Ubuntu:26.04:LTS","package":"freerdp3","fixed_in":["3.30.0+dfsg-0ubuntu0.26.04.1"],"sources":["osv"]},{"ecosystem":"openSUSE:Tumbleweed","package":"freerdp","fixed_in":["3.26.0-1.1"],"sources":["osv"]}],"affected":[{"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+deb13u3"}]}],"versions":["3.15.0+dfsg-2.1","3.15.0+dfsg-2.1+deb13u1","3.15.0+dfsg-2.1+deb13u2"]},{"source":"osv","ecosystem":"Debian:14","package":"freerdp3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.25.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","3.23.0+dfsg-1~bpo13+1","3.24.0+dfsg-1","3.24.0+dfsg-2","3.24.1+dfsg-1","3.24.2+dfsg-1","3.24.2+dfsg-1~bpo13+1"]},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server 16.0","package":"freerdp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.26.0-160000.1.1"}]}],"bundled":11},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server for SAP applications 16.0","package":"freerdp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.26.0-160000.1.1"}]}],"bundled":11},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Module for Package Hub 15 SP7","package":"freerdp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.10.3-150700.3.17.1"}]}],"bundled":20},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Workstation Extension 15 SP7","package":"freerdp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.10.3-150700.3.17.1"}]}],"bundled":20},{"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.30.0+dfsg-0ubuntu0.24.04.1"}]}],"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","3.5.1+dfsg1-0ubuntu1.4","3.5.1+dfsg1-0ubuntu1.5","3.5.1+dfsg1-0ubuntu1.6"]},{"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"}]}],"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","3.16.0+dfsg-2ubuntu0.3","3.16.0+dfsg-2ubuntu0.4","3.16.0+dfsg-2ubuntu0.5"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"freerdp3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.30.0+dfsg-0ubuntu0.26.04.1"}]}],"versions":["3.16.0+dfsg-2","3.18.0+dfsg-1ubuntu1","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.24.1+dfsg-1ubuntu1","3.24.2+dfsg-1ubuntu1","3.24.2+dfsg-1ubuntu1.1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"freerdp3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.30.0+dfsg-0ubuntu0.24.04.1"}]}],"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","3.5.1+dfsg1-0ubuntu1.4","3.5.1+dfsg1-0ubuntu1.5","3.5.1+dfsg1-0ubuntu1.6"],"bundled":34},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"freerdp3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.30.0+dfsg-0ubuntu0.26.04.1"}]}],"versions":["3.16.0+dfsg-2","3.18.0+dfsg-1ubuntu1","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.24.1+dfsg-1ubuntu1","3.24.2+dfsg-1ubuntu1","3.24.2+dfsg-1ubuntu1.1"],"bundled":34},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"freerdp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.26.0-1.1"}]}]},{"source":"osv","ecosystem":"openSUSE:Leap 16.0","package":"freerdp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.26.0-160000.1.1"}]}],"bundled":11}],"products":[{"vendor":"freerdp","product":"freerdp"}],"references":[{"url":"https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-3xpj-m4hx-8vmx","tags":["x_refsource_CONFIRM","exploit","Exploit","Mitigation","Vendor Advisory","advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/40xxx/CVE-2026-40254.json","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-40254","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-40254","tags":["advisory"]},{"url":"https://www.suse.com/support/update/announcement/2026/suse-su-202622194-1/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1174200","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://bugzilla.suse.com/1262743","tags":["report"]},{"url":"https://bugzilla.suse.com/1266317","tags":["report"]},{"url":"https://bugzilla.suse.com/1267008","tags":["report"]},{"url":"https://bugzilla.suse.com/1267009","tags":["report"]},{"url":"https://bugzilla.suse.com/1267010","tags":["report"]},{"url":"https://bugzilla.suse.com/1267011","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2026-33982","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://www.suse.com/security/cve/CVE-2026-40033","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-40254","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-44420","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-44421","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-44422","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-45700","tags":["web"]},{"url":"https://www.suse.com/support/update/announcement/2026/suse-su-20263562-1/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1258939","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/1271071","tags":["report"]},{"url":"https://bugzilla.suse.com/1271303","tags":["report"]},{"url":"https://bugzilla.suse.com/1271304","tags":["report"]},{"url":"https://bugzilla.suse.com/1271305","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2026-27951","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-33983","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-33984","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-56297","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-57156","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-57157","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-57158","tags":["web"]},{"url":"https://ubuntu.com/security/CVE-2026-40254","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-40254","tags":["report"]},{"url":"https://ubuntu.com/security/notices/USN-8561-1","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-27951","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-29774","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-29775","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-29776","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-31806","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-31883","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-31884","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-31885","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-31897","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-33952","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-33977","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-33982","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-33983","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-33984","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-33985","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-33986","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-33987","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-33995","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-40033","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-44420","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-44421","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-44422","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-55191","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-55192","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-55193","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-55194","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-55564","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-55648","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-55827","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-56297","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-57156","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-57157","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2026-57158","tags":["report"]},{"url":"","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2026-40254","title":"FreeRDP: contains_dotdot() off-by-one allows drive channel path traversal via terminal ..","description":"FreeRDP is a free implementation of the Remote Desktop Protocol. Versions prior to 3.25.0 have an off-by-one in the path traversal filter in `channels/drive/client/drive_file.c`. The `contains_dotdot()` function catches `../` and `..\\` mid-path but misses `..` when it's the last component with no trailing separator. A rogue RDP server can read, list, or write files one directory above the client's shared folder through RDPDR requests. This requires the victim to connect with drive redirection enabled. Version 3.25.0 patches the issue.","status":"published","published":"2026-04-24T02:24:50.794Z","modified":"2026-04-24T12:06:22.722Z","cvss":[{"version":"3.1","score":4.2,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-193"],"updated_at":"2026-11-02T13:43:22.599321Z"}],"euvd":[{"id":"EUVD-2026-25381","description":"FreeRDP is a free implementation of the Remote Desktop Protocol. Versions prior to 3.25.0 have an off-by-one in the path traversal filter in `channels/drive/client/drive_file.c`. The `contains_dotdot()` function catches `../` and `..\\` mid-path but misses `..` when it's the last component with no trailing separator. A rogue RDP server can read, list, or write files one directory above the client's shared folder through RDPDR requests. This requires the victim to connect with drive redirection enabled. Version 3.25.0 patches the issue.","status":"published","published":"2026-04-24T02:24:50Z","modified":"2026-04-24T12:06:22Z","cvss":[{"version":"3.1","score":4.2,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T19:24:18.636842Z"}],"nvd":[{"id":"CVE-2026-40254","description":"FreeRDP is a free implementation of the Remote Desktop Protocol. Versions prior to 3.25.0 have an off-by-one in the path traversal filter in `channels/drive/client/drive_file.c`. The `contains_dotdot()` function catches `../` and `..\\` mid-path but misses `..` when it's the last component with no trailing separator. A rogue RDP server can read, list, or write files one directory above the client's shared folder through RDPDR requests. This requires the victim to connect with drive redirection enabled. Version 3.25.0 patches the issue.","status":"published","published":"2026-04-24T03:16:11.373Z","modified":"2026-06-17T10:44:55.02Z","cvss":[{"version":"3.1","score":4.2,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N","level":"medium","assessor":"secondary"},{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-193"],"updated_at":"2026-11-02T14:12:15.867234Z"}],"osv":[{"id":"CVE-2026-40254","title":"FreeRDP: contains_dotdot() off-by-one allows drive channel path traversal via terminal ..","description":"FreeRDP is a free implementation of the Remote Desktop Protocol. Versions prior to 3.25.0 have an off-by-one in the path traversal filter in `channels/drive/client/drive_file.c`. The `contains_dotdot()` function catches `../` and `..\\` mid-path but misses `..` when it's the last component with no trailing separator. A rogue RDP server can read, list, or write files one directory above the client's shared folder through RDPDR requests. This requires the victim to connect with drive redirection enabled. Version 3.25.0 patches the issue.","status":"published","published":"2026-04-24T02:24:50.794Z","modified":"2026-10-28T02:30:41.286503146Z","cvss":[{"version":"3.1","score":4.2,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-193"],"updated_at":"2026-11-02T15:45:03.424067Z"},{"id":"DEBIAN-CVE-2026-40254","description":"FreeRDP is a free implementation of the Remote Desktop Protocol. Versions prior to 3.25.0 have an off-by-one in the path traversal filter in `channels/drive/client/drive_file.c`. The `contains_dotdot()` function catches `../` and `..\\` mid-path but misses `..` when it's the last component with no trailing separator. A rogue RDP server can read, list, or write files one directory above the client's shared folder through RDPDR requests. This requires the victim to connect with drive redirection enabled. Version 3.25.0 patches the issue.","status":"published","published":"2026-04-24T03:16:11.373Z","modified":"2026-10-01T03:03:11.481381905Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T15:45:54.892385Z"},{"id":"UBUNTU-CVE-2026-40254","description":"FreeRDP is a free implementation of the Remote Desktop Protocol. Versions prior to 3.25.0 have an off-by-one in the path traversal filter in `channels/drive/client/drive_file.c`. The `contains_dotdot()` function catches `../` and `..\\` mid-path but misses `..` when it's the last component with no trailing separator. A rogue RDP server can read, list, or write files one directory above the client's shared folder through RDPDR requests. This requires the victim to connect with drive redirection enabled. Version 3.25.0 patches the issue.","status":"published","published":"2026-04-24T03:16:00Z","modified":"2026-07-21T13:08:46.026169094Z","cvss":[{"version":"3.1","score":4.2,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N","level":"medium"},{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T16:56:16.686388Z"},{"id":"openSUSE-SU-2026:10832-1","title":"freerdp-3.26.0-1.1 on GA media","description":"These are all security issues fixed in the freerdp-3.26.0-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-05-21T00:00:00Z","modified":"2026-05-22T09:00:05.273299803Z","updated_at":"2026-11-02T16:58:38.415593Z"},{"id":"openSUSE-SU-2026:21116-1","title":"Security update for freerdp","description":"This update for freerdp fixes the following issues\n\nUpdate to version 3.26.0:\n\n- CVE-2026-33982: heap-buffer-overflow READ vulnerability at 24 bytes before the allocation, in\n  winpr_aligned_offset_recalloc() (bsc#1261222).\n- CVE-2026-33985: FreeRDP: Information disclosure via heap memory out of bounds read (bsc#1261217).\n- CVE-2026-33986: heap OOB write due to H.264 YUV buffer dimension desync (bsc#1261223).\n- CVE-2026-33987: heap OOB 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- CVE-2026-40033: heap buffer overflow in `gdi_CacheToSurface` allows attackers to cause a denial of service or achieve\n  remote execute code (bsc#1266317).\n- CVE-2026-40254: off-by-one in contains_dotdot() allows drive channel path traversal (bsc#1262743).\n- CVE-2026-44420: Prior to 3.26.0, a malicious RDP client can trigger a heap-buffer-overflow write in FreeRDP's server-\n  side clipboard (cliprdr) channel (bsc#1267008).\n- CVE-2026-44421: Prior to 3.26.0, a malicious RDP server can trigger a heap-buffer-overflow write in the FreeRDP client\n  by sending crafted RDPGFX PDUs (bsc#1267009).\n- CVE-2026-44422: Prior to 3.26.0, a malicious-server-triggerable heap use-after-free / double-free in the FreeRDP\n  client's RDPEAR authentication-redirection path exists (bsc#1267010).\n- CVE-2026-45700: n attacker can bypass the check with a large nDstStep and a large nXDst, causing\n  planar_decompress_plane_rle() to write past the end of pTempData (bsc#1267011).\n\nChanges:\n\n * cmake: Findyuv: Use correct pkgconfig name (#12666)\n * Remove deallocator attribute from rfx_message_free (#12681)\n * [winpr,utils] improve winpr/ntlm.h (#12677)\n * rdpecam-v4l: stop the capture thread when streaming is cleared (#12690)\n * fix(winpr,ncrypt): support PIV retired key slots for smartcard logon (#12684)\n * [core,instance] fix deprecation guards (#12691)\n * [ci,alt-arch] enable internal MD4, MD5 and RC4 (#12692)\n * Add VideoToolbox H.264 support for ffmpeg (#12694)\n * [client,common] add /args-from:file: syntax (#12697)\n * [ci,freebsd] update freebsd builds (#12698, #12700, #12701, #12702)\n * [client, android] UI modernization, SQLCipher and more (#12685, #12686, #12687, #12730,\n * #12731, #12736, #12737, #12688)\n * [cmake,deps] use alias target for sso-mib (#12706)\n * [core,settings] add auto reconnect triggered flag (#12709)\n * Force YUV420P when videotoolbox is used (#12711)\n * Release cleanups (#12712)\n * [gdi,gfx] fix bounds checks and proxy unit tests (#12713)\n * Improved input checks (#12714)\n * [winpr,utils] add unit tests for command line parser (#12716)\n * Cmdline fixes (#12717)\n * [codec,planar] fix bounds checks (#12718)\n * [client,common] add freerdp_client_settings_parse_command_line_argume... (#12724)\n * [winpr,sspi] clean up ntlm code (#12732)\n * Experimental AV1 support has been added. This currently works only with FreeRDP based servers.\n * Most notably there is now support for [MS-RDPEWA] (FIDO2 redirection)\n * Android client received a (small) facelift\n * Improved SDL3 client drawing performance\n * Console output support for SDL3 (windows) and windows native client\n * RDP proxy now supports NSCodec and RFX modes.\n * RDP PRoxy now has smartcard emulation and SAM file support (via config file)\n * Smartcard KSP support for NLA authentication\n * [winpr,wlog] add WLog_SetGlobalPrefix (#12497)\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)\n * winpr: 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 * [winpr,sspi] Fix context nullptr handling (#12543)\n * Dev 3.24.3 dev0 (#12545)\n * Fix memory leak in gdi_create_bitmap() on gdi_CreateBitmap failure (libfreerdp/gdi/graphics.c) (#12547)\n * Fix memory leak in vgids_read_do_fkt() on Stream_New failure (libfreerdp/emu/scard/smartcard_virtual_gids.c) (#12548)\n * Proxy config improve (#12549)\n * Proxy config improve (#12550)\n * [client,sdl] clamp cursor hotspot (#12553)\n * RFC: Research/av1 codec extension (#12527)\n * [winpr,kerberos] fix krb_log_context_encryption (#12555)\n * [client,sdl] fix global init return check (#12558)\n * Fix remote credential with windows11h2 (#12560)\n * Proxy scard auth improvements (#12561)\n * [winpr,sspi] guard krb5_get_etype_info (#12562)\n * [utils,smartcard] fix STATUS_BUFFER_TOO_SMALL (#12564)\n * [client,common] do not manipulate security settings for smartcard-logon (#12567)\n * [channels,audin] fix regression for microphone (#12570)\n * [client,sdl] add SDL_KMOD_MODE and SDL_KMOD_LEVEL5 (#12569)\n * Fix unbound strlen on slotDescription (#12571)\n * build: Update FindFFmpeg.cmake to support Apple frameworks with 'lib' prefix (#12565)\n * [channels,rdpewa] add WebAuthn virtual channel support (#12572)\n * [core] fix freerdp_get_nla_sspi_error always returning 0 on client (#12574)\n * [ci] enable rdpewa channel (#12576)\n * small refactoring (#12578)\n * Rdpewa unify notifications (#12581)\n * [client,sdl] fix crash when clicking 'cancel' on PIN popup (#12580)\n * [channels,drive] refine bounds checks (#12584)\n * fix: smartcard logon with ECC keys and minidriver-assigned container names (#12585)\n * Various papercuts (#12583)\n * fix: console output on Windows client (#12573)\n * [winpr,crt] dump stack on aligned memory errors (#12588)\n * [client,x11] keep scancode input for Ctrl/Alt/Super combinations in /kbd:unicode mode (#12590)\n * [codec,progressive] fix underflow guard in progressive_rfx_quant_sub (#12592)\n * fix: wfreerdp floatbar visibility (#12594)\n * [winpr,json] return a copy from WINPR_JSON_Print* (#12595)\n * [client,sdl] drop WITH_DEBUG_SDL_EVENTS (#12599)\n * Ncrypt and asn1 cleanup (#12604)\n * Video channel fix (#12593)\n * [codec,h264] fix media foundation backend (#12606)\n * fix(sdl): detect Hyprland and river in tryFallback() (#12608)\n * Proxy stress fixes (#12597)\n * Add new fuzzer tests (#12613)\n * fix(sdl): use SDL_Renderer instead of software surfaces (#12607)\n * fix(sdl): BFS neighbor walk pop/begin mismatch in addOrUpdateDisplay (#12614)\n * fix(sdl): promote first monitor as primary when subset excludes primary (#12618)\n * [ci,android] default to only aarch64 (#12622)\n * Fix process exit code on non-pidfd platforms (macOS, BSD)#12534) (#12586)\n * warning cleanups (#12626)\n * fix: prevent PostQuitMessage in RemoteApp WM_DESTROY handler (#12629)\n * [winpr,ntlm] fix message cleanup across the SSPI lifecycle (#12609)\n * Code bug fixes (#12632)\n * Oss fixes (#12633)\n * [client,android] add an option to enable keeping screen on when connected (#12630)\n * [client, android] Fix layout overlaps, migrate to AndroidX, and update UI components (#12628)\n * Proxy config tests (#12636)\n * Proxy config optional targethost (#12637)\n * [client,sdl] set SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME (#12639)\n * Nightly deb fix (#12640, #12641, #12649, #12650, #12642, #12643)\n * [winpr,input] fix korean keyboard mapping (#12646)\n * [client,sdl] set hints before SDL_Init (#12644)\n * Sdl inhibit option (#12647)\n * [client,X11] fix residual race in xf_clipboard_formats_free (#12648)\n * (sdl3): Fix oversized window on HiDPI Wayland (#12635)\n * [cache,bitmap] fix off-by-one in bitmap_cache_put bounds check (#12651)\n * [winpr,sspi] free fields buffer immediately (#12654)\n * [codec,dsp] fix fencepost error in dsp_ima_clamp_step (#12655)\n * RDPECAM MJPEG support\n * Support for FDK-AAC for sound and microphone redirection\n * Support timezones as JSON resources\n * Rely preferably on pkgconfig to pull devel packages instead of\n * A new option /cert that unifies all certificate related options (gh#FreeRDP/FreeRDP#5880)\n","status":"published","published":"2026-06-20T06:54:39Z","modified":"2026-06-30T18:24:42.695507415Z","updated_at":"2026-11-02T16:58:41.885092Z"},{"id":"SUSE-SU-2026:22194-1","title":"Security update for freerdp","description":"This update for freerdp fixes the following issues\n\nUpdate to version 3.26.0:\n\n- CVE-2026-33982: heap-buffer-overflow READ vulnerability at 24 bytes before the allocation, in\n  winpr_aligned_offset_recalloc() (bsc#1261222).\n- CVE-2026-33985: FreeRDP: Information disclosure via heap memory out of bounds read (bsc#1261217).\n- CVE-2026-33986: heap OOB write due to H.264 YUV buffer dimension desync (bsc#1261223).\n- CVE-2026-33987: heap OOB 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- CVE-2026-40033: heap buffer overflow in `gdi_CacheToSurface` allows attackers to cause a denial of service or achieve\n  remote execute code (bsc#1266317).\n- CVE-2026-40254: off-by-one in contains_dotdot() allows drive channel path traversal (bsc#1262743).\n- CVE-2026-44420: Prior to 3.26.0, a malicious RDP client can trigger a heap-buffer-overflow write in FreeRDP's server-\n  side clipboard (cliprdr) channel (bsc#1267008).\n- CVE-2026-44421: Prior to 3.26.0, a malicious RDP server can trigger a heap-buffer-overflow write in the FreeRDP client\n  by sending crafted RDPGFX PDUs (bsc#1267009).\n- CVE-2026-44422: Prior to 3.26.0, a malicious-server-triggerable heap use-after-free / double-free in the FreeRDP\n  client's RDPEAR authentication-redirection path exists (bsc#1267010).\n- CVE-2026-45700: n attacker can bypass the check with a large nDstStep and a large nXDst, causing\n  planar_decompress_plane_rle() to write past the end of pTempData (bsc#1267011).\n\nChanges:\n\n * cmake: Findyuv: Use correct pkgconfig name (#12666)\n * Remove deallocator attribute from rfx_message_free (#12681)\n * [winpr,utils] improve winpr/ntlm.h (#12677)\n * rdpecam-v4l: stop the capture thread when streaming is cleared (#12690)\n * fix(winpr,ncrypt): support PIV retired key slots for smartcard logon (#12684)\n * [core,instance] fix deprecation guards (#12691)\n * [ci,alt-arch] enable internal MD4, MD5 and RC4 (#12692)\n * Add VideoToolbox H.264 support for ffmpeg (#12694)\n * [client,common] add /args-from:file: syntax (#12697)\n * [ci,freebsd] update freebsd builds (#12698, #12700, #12701, #12702)\n * [client, android] UI modernization, SQLCipher and more (#12685, #12686, #12687, #12730,\n * #12731, #12736, #12737, #12688)\n * [cmake,deps] use alias target for sso-mib (#12706)\n * [core,settings] add auto reconnect triggered flag (#12709)\n * Force YUV420P when videotoolbox is used (#12711)\n * Release cleanups (#12712)\n * [gdi,gfx] fix bounds checks and proxy unit tests (#12713)\n * Improved input checks (#12714)\n * [winpr,utils] add unit tests for command line parser (#12716)\n * Cmdline fixes (#12717)\n * [codec,planar] fix bounds checks (#12718)\n * [client,common] add freerdp_client_settings_parse_command_line_argume... (#12724)\n * [winpr,sspi] clean up ntlm code (#12732)\n * Experimental AV1 support has been added. This currently works only with FreeRDP based servers.\n * Most notably there is now support for [MS-RDPEWA] (FIDO2 redirection)\n * Android client received a (small) facelift\n * Improved SDL3 client drawing performance\n * Console output support for SDL3 (windows) and windows native client\n * RDP proxy now supports NSCodec and RFX modes.\n * RDP PRoxy now has smartcard emulation and SAM file support (via config file)\n * Smartcard KSP support for NLA authentication\n * [winpr,wlog] add WLog_SetGlobalPrefix (#12497)\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)\n * winpr: 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 * [winpr,sspi] Fix context nullptr handling (#12543)\n * Dev 3.24.3 dev0 (#12545)\n * Fix memory leak in gdi_create_bitmap() on gdi_CreateBitmap failure (libfreerdp/gdi/graphics.c) (#12547)\n * Fix memory leak in vgids_read_do_fkt() on Stream_New failure (libfreerdp/emu/scard/smartcard_virtual_gids.c) (#12548)\n * Proxy config improve (#12549)\n * Proxy config improve (#12550)\n * [client,sdl] clamp cursor hotspot (#12553)\n * RFC: Research/av1 codec extension (#12527)\n * [winpr,kerberos] fix krb_log_context_encryption (#12555)\n * [client,sdl] fix global init return check (#12558)\n * Fix remote credential with windows11h2 (#12560)\n * Proxy scard auth improvements (#12561)\n * [winpr,sspi] guard krb5_get_etype_info (#12562)\n * [utils,smartcard] fix STATUS_BUFFER_TOO_SMALL (#12564)\n * [client,common] do not manipulate security settings for smartcard-logon (#12567)\n * [channels,audin] fix regression for microphone (#12570)\n * [client,sdl] add SDL_KMOD_MODE and SDL_KMOD_LEVEL5 (#12569)\n * Fix unbound strlen on slotDescription (#12571)\n * build: Update FindFFmpeg.cmake to support Apple frameworks with 'lib' prefix (#12565)\n * [channels,rdpewa] add WebAuthn virtual channel support (#12572)\n * [core] fix freerdp_get_nla_sspi_error always returning 0 on client (#12574)\n * [ci] enable rdpewa channel (#12576)\n * small refactoring (#12578)\n * Rdpewa unify notifications (#12581)\n * [client,sdl] fix crash when clicking 'cancel' on PIN popup (#12580)\n * [channels,drive] refine bounds checks (#12584)\n * fix: smartcard logon with ECC keys and minidriver-assigned container names (#12585)\n * Various papercuts (#12583)\n * fix: console output on Windows client (#12573)\n * [winpr,crt] dump stack on aligned memory errors (#12588)\n * [client,x11] keep scancode input for Ctrl/Alt/Super combinations in /kbd:unicode mode (#12590)\n * [codec,progressive] fix underflow guard in progressive_rfx_quant_sub (#12592)\n * fix: wfreerdp floatbar visibility (#12594)\n * [winpr,json] return a copy from WINPR_JSON_Print* (#12595)\n * [client,sdl] drop WITH_DEBUG_SDL_EVENTS (#12599)\n * Ncrypt and asn1 cleanup (#12604)\n * Video channel fix (#12593)\n * [codec,h264] fix media foundation backend (#12606)\n * fix(sdl): detect Hyprland and river in tryFallback() (#12608)\n * Proxy stress fixes (#12597)\n * Add new fuzzer tests (#12613)\n * fix(sdl): use SDL_Renderer instead of software surfaces (#12607)\n * fix(sdl): BFS neighbor walk pop/begin mismatch in addOrUpdateDisplay (#12614)\n * fix(sdl): promote first monitor as primary when subset excludes primary (#12618)\n * [ci,android] default to only aarch64 (#12622)\n * Fix process exit code on non-pidfd platforms (macOS, BSD)#12534) (#12586)\n * warning cleanups (#12626)\n * fix: prevent PostQuitMessage in RemoteApp WM_DESTROY handler (#12629)\n * [winpr,ntlm] fix message cleanup across the SSPI lifecycle (#12609)\n * Code bug fixes (#12632)\n * Oss fixes (#12633)\n * [client,android] add an option to enable keeping screen on when connected (#12630)\n * [client, android] Fix layout overlaps, migrate to AndroidX, and update UI components (#12628)\n * Proxy config tests (#12636)\n * Proxy config optional targethost (#12637)\n * [client,sdl] set SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME (#12639)\n * Nightly deb fix (#12640, #12641, #12649, #12650, #12642, #12643)\n * [winpr,input] fix korean keyboard mapping (#12646)\n * [client,sdl] set hints before SDL_Init (#12644)\n * Sdl inhibit option (#12647)\n * [client,X11] fix residual race in xf_clipboard_formats_free (#12648)\n * (sdl3): Fix oversized window on HiDPI Wayland (#12635)\n * [cache,bitmap] fix off-by-one in bitmap_cache_put bounds check (#12651)\n * [winpr,sspi] free fields buffer immediately (#12654)\n * [codec,dsp] fix fencepost error in dsp_ima_clamp_step (#12655)\n * RDPECAM MJPEG support\n * Support for FDK-AAC for sound and microphone redirection\n * Support timezones as JSON resources\n * Rely preferably on pkgconfig to pull devel packages instead of\n * A new option /cert that unifies all certificate related options (gh#FreeRDP/FreeRDP#5880)\n","status":"published","published":"2026-06-20T06:53:51Z","modified":"2026-06-24T09:00:06.643436239Z","updated_at":"2026-11-02T15:54:02.654057Z"},{"id":"SUSE-SU-2026:3562-1","title":"Security update for freerdp","description":"This update for freerdp fixes the following issues:\n\n- CVE-2026-27951: 32-bit system denial of service via endless blocking loop in `Stream_EnsureCapacity` (bsc#1258939).\n- CVE-2026-33952: client denial of service via unvalidated authentication length field (bsc#1261196).\n- CVE-2026-33977: client denial of service via malformed IMA ADPCM audio data (bsc#1261198).\n- CVE-2026-33982: heap buffer overread in `winpr_aligned_offset_recalloc()` can lead to undefined behavior\n  (bsc#1261222).\n- CVE-2026-33983: improper error handling can lead to use of incorrect shift exponent, undefined behavior and an 80\n  billion iteration loop (bsc#1261200).\n- CVE-2026-33984: heap buffer overflow allows arbitrary code execution via crafted pixel data (bsc#1261211).\n- CVE-2026-33985: heap out-of-bounds read can leak sensitive data when pixel data is rendered to screen (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 in `kerberos_AcceptSecurityContext()` and `kerberos_InitializeSecurityContextA()` can\n  lead to crash during NLA connection teardown with a failed authentication attempt (bsc#1261227).\n- CVE-2026-40033: heap buffer overflow in `gdi_CacheToSurface` allows attackers to cause a denial of service or achieve\n  remote code execution (bsc#1266317).\n- CVE-2026-40254: off-by-one error in `contains_dotdot()` allows for drive channel path traversal (bsc#1262743).\n- CVE-2026-44420: heap buffer overwrite can be triggered in server-side clipboard channel when a malicious client sends\n  a `CB_CLIP_CAPS` PDU with a too-small `capabilitySetLength` (bsc#1267008).\n- CVE-2026-44421: improper validation in `gdi_CacheToSurface` can lead to a heap buffer overwrite client when an RDP\n  server sends crafted RDPGFX PDUs (bsc#1267009).\n- CVE-2026-44422: improper memory management can lead to heap use-after-free/double-free in a client's RDPEAR\n  authentication-redirection path (bsc#1267010).\n- CVE-2026-45700: data check bypass when decoding RLE planar data can lead to an out-of-bounds heap write\n  (bsc#1267011).\n- CVE-2026-56297: improper synchronization of `channel_callback` access can lead to use-after-free in\n  `dvcman_channel_close` and `dvcman_call_on_receive` triggered by a malicious RDP server (bsc#1271071).\n- CVE-2026-57156: integer overflow in `update_read_delta_points` allows malicious RDP peers to cause a heap buffer\n  overflow (bsc#1271303).\n- CVE-2026-57157: 2-byte heap out-of-bounds read via attacker-supplied MS-RDPECAM `DeviceName` and `VirtualChannelName`\n  fields (bsc#1271304).\n- CVE-2026-57158: incomplete fix for CVE-2026-23530 in `planar_decompress_plane_rle_only` allows a malicious RDP server\n  to trigger a one byte buffer overflow via a truncated `RDPGFX_CMDID_WIRETOSURFACE_1` planar payload (bsc#1271305).\n","status":"published","published":"2026-08-10T18:16:39Z","modified":"2026-08-12T10:45:04.866306661Z","updated_at":"2026-11-02T15:54:05.392906Z"},{"id":"USN-8561-1","title":"freerdp3 vulnerabilities","description":"It was discovered that FreeRDP contained multiple security issues. An\nattacker could possibly use these issues to obtain sensitive information,\ncause FreeRDP to crash, resulting in a denial of service, or execute\narbitrary code.","status":"published","published":"2026-07-20T11:49:26Z","modified":"2026-10-01T00:17:47.242027428Z","updated_at":"2026-11-02T16:58:25.103481Z"}]}}
