{"id":"UBUNTU-CVE-2023-39356","details":"FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. In affected versions a missing offset validation may lead to an Out Of Bound Read in the function `gdi_multi_opaque_rect`. In particular there is no code to validate if the value `multi_opaque_rect-\u003enumRectangles` is less than 45. Looping through `multi_opaque_rect-\u003e`numRectangles without proper boundary checks can lead to Out-of-Bounds Read errors which will likely lead to a crash. This issue has been addressed in versions 2.11.0 and 3.0.0-beta3. Users are advised to upgrade. There are no known workarounds for this vulnerability.","modified":"2026-04-22T14:10:23.976509Z","published":"2023-08-31T21:15:00Z","related":["USN-6522-1","USN-6522-2"],"upstream":["CVE-2023-39356"],"references":[{"type":"REPORT","url":"https://ubuntu.com/security/CVE-2023-39356"},{"type":"REPORT","url":"https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-q5v5-qhj5-mh6m"},{"type":"REPORT","url":"https://github.com/FreeRDP/FreeRDP/blob/63a2f65618748c12f79ff7450d46c6e194f2db76/libfreerdp/gdi/gdi.c#L723C1-L758"},{"type":"REPORT","url":"https://github.com/FreeRDP/FreeRDP/blob/63a2f65618748c12f79ff7450d46c6e194f2db76/libfreerdp/core/orders.c#L1503-L1504"},{"type":"REPORT","url":"https://github.com/FreeRDP/FreeRDP/blob/63a2f65618748c12f79ff7450d46c6e194f2db76/include/freerdp/primary.h#L186-L196"},{"type":"ADVISORY","url":"https://ubuntu.com/security/notices/USN-6522-1"},{"type":"ADVISORY","url":"https://ubuntu.com/security/notices/USN-6522-2"},{"type":"REPORT","url":"https://www.cve.org/CVERecord?id=CVE-2023-39356"}],"affected":[{"package":{"name":"freerdp2","ecosystem":"Ubuntu:Pro:18.04:LTS","purl":"pkg:deb/ubuntu/freerdp2@2.2.0+dfsg1-0ubuntu0.18.04.4+esm2?arch=source&distro=esm-infra/bionic"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.2.0+dfsg1-0ubuntu0.18.04.4+esm2"}]}],"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"],"ecosystem_specific":{"availability":"Available with Ubuntu Pro (Infra-only): https://ubuntu.com/pro","binaries":[{"binary_name":"freerdp2-shadow-x11","binary_version":"2.2.0+dfsg1-0ubuntu0.18.04.4+esm2"},{"binary_name":"freerdp2-wayland","binary_version":"2.2.0+dfsg1-0ubuntu0.18.04.4+esm2"},{"binary_name":"freerdp2-x11","binary_version":"2.2.0+dfsg1-0ubuntu0.18.04.4+esm2"},{"binary_name":"libfreerdp-client2-2","binary_version":"2.2.0+dfsg1-0ubuntu0.18.04.4+esm2"},{"binary_name":"libfreerdp-server2-2","binary_version":"2.2.0+dfsg1-0ubuntu0.18.04.4+esm2"},{"binary_name":"libfreerdp-shadow-subsystem2-2","binary_version":"2.2.0+dfsg1-0ubuntu0.18.04.4+esm2"},{"binary_name":"libfreerdp-shadow2-2","binary_version":"2.2.0+dfsg1-0ubuntu0.18.04.4+esm2"},{"binary_name":"libfreerdp2-2","binary_version":"2.2.0+dfsg1-0ubuntu0.18.04.4+esm2"},{"binary_name":"libuwac0-0","binary_version":"2.2.0+dfsg1-0ubuntu0.18.04.4+esm2"},{"binary_name":"libwinpr-tools2-2","binary_version":"2.2.0+dfsg1-0ubuntu0.18.04.4+esm2"},{"binary_name":"libwinpr2-2","binary_version":"2.2.0+dfsg1-0ubuntu0.18.04.4+esm2"},{"binary_name":"winpr-utils","binary_version":"2.2.0+dfsg1-0ubuntu0.18.04.4+esm2"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2023/UBUNTU-CVE-2023-39356.json"}},{"package":{"name":"freerdp2","ecosystem":"Ubuntu:20.04:LTS","purl":"pkg:deb/ubuntu/freerdp2@2.2.0+dfsg1-0ubuntu0.20.04.6?arch=source&distro=focal"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.2.0+dfsg1-0ubuntu0.20.04.6"}]}],"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"],"ecosystem_specific":{"availability":"No subscription required","binaries":[{"binary_name":"freerdp2-shadow-x11","binary_version":"2.2.0+dfsg1-0ubuntu0.20.04.6"},{"binary_name":"freerdp2-wayland","binary_version":"2.2.0+dfsg1-0ubuntu0.20.04.6"},{"binary_name":"freerdp2-x11","binary_version":"2.2.0+dfsg1-0ubuntu0.20.04.6"},{"binary_name":"libfreerdp-client2-2","binary_version":"2.2.0+dfsg1-0ubuntu0.20.04.6"},{"binary_name":"libfreerdp-server2-2","binary_version":"2.2.0+dfsg1-0ubuntu0.20.04.6"},{"binary_name":"libfreerdp-shadow-subsystem2-2","binary_version":"2.2.0+dfsg1-0ubuntu0.20.04.6"},{"binary_version":"2.2.0+dfsg1-0ubuntu0.20.04.6","binary_name":"libfreerdp-shadow2-2"},{"binary_name":"libfreerdp2-2","binary_version":"2.2.0+dfsg1-0ubuntu0.20.04.6"},{"binary_version":"2.2.0+dfsg1-0ubuntu0.20.04.6","binary_name":"libuwac0-0"},{"binary_name":"libwinpr-tools2-2","binary_version":"2.2.0+dfsg1-0ubuntu0.20.04.6"},{"binary_name":"libwinpr2-2","binary_version":"2.2.0+dfsg1-0ubuntu0.20.04.6"},{"binary_name":"winpr-utils","binary_version":"2.2.0+dfsg1-0ubuntu0.20.04.6"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2023/UBUNTU-CVE-2023-39356.json"}},{"package":{"name":"freerdp2","ecosystem":"Ubuntu:22.04:LTS","purl":"pkg:deb/ubuntu/freerdp2@2.6.1+dfsg1-3ubuntu2.5?arch=source&distro=jammy"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.6.1+dfsg1-3ubuntu2.5"}]}],"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"],"ecosystem_specific":{"availability":"No subscription required","binaries":[{"binary_name":"freerdp2-shadow-x11","binary_version":"2.6.1+dfsg1-3ubuntu2.5"},{"binary_name":"freerdp2-wayland","binary_version":"2.6.1+dfsg1-3ubuntu2.5"},{"binary_name":"freerdp2-x11","binary_version":"2.6.1+dfsg1-3ubuntu2.5"},{"binary_name":"libfreerdp-client2-2","binary_version":"2.6.1+dfsg1-3ubuntu2.5"},{"binary_name":"libfreerdp-server2-2","binary_version":"2.6.1+dfsg1-3ubuntu2.5"},{"binary_name":"libfreerdp-shadow-subsystem2-2","binary_version":"2.6.1+dfsg1-3ubuntu2.5"},{"binary_name":"libfreerdp-shadow2-2","binary_version":"2.6.1+dfsg1-3ubuntu2.5"},{"binary_name":"libfreerdp2-2","binary_version":"2.6.1+dfsg1-3ubuntu2.5"},{"binary_version":"2.6.1+dfsg1-3ubuntu2.5","binary_name":"libuwac0-0"},{"binary_name":"libwinpr-tools2-2","binary_version":"2.6.1+dfsg1-3ubuntu2.5"},{"binary_name":"libwinpr2-2","binary_version":"2.6.1+dfsg1-3ubuntu2.5"},{"binary_name":"winpr-utils","binary_version":"2.6.1+dfsg1-3ubuntu2.5"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2023/UBUNTU-CVE-2023-39356.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H"},{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"},{"type":"Ubuntu","score":"medium"}]}