CVE-2023-39356: Missing offset validation leading to Out-of-Bounds Read in FreeRDP
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 gdimultiopaquerect. In particular there is no code to validate if the value multiopaquerect->numRectangles is less than 45. Looping through multiopaquerect->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.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
debian/freerdp2to a version that resolves this vulnerability.Fixed in 2.3.0+dfsg1-2+deb10u4Fixed in 2.11.2+dfsg1-1Fixed in 2.11.5+dfsg1-1 - Upgrade
Upgrade
ubuntu/freerdp2to a version that resolves this vulnerability.Fixed in 2.2.0+dfsg1-0ubuntu0.18.04.4+ - Upgrade
Upgrade
ubuntu/freerdp2to a version that resolves this vulnerability.Fixed in 2.2.0+dfsg1-0ubuntu0.20.04.6 - Upgrade
Upgrade
ubuntu/freerdp2to a version that resolves this vulnerability.Fixed in 2.6.1+dfsg1-3ubuntu2.5 - Upgrade
Upgrade
ubuntu/freerdp2to a version that resolves this vulnerability.Fixed in 2.10.0+dfsg1-1ubuntu0.3 - Upgrade
Upgrade
ubuntu/freerdp2to a version that resolves this vulnerability.Fixed in 2.10.0+dfsg1-1.1ubuntu1.1 - Upgrade
Upgrade
ubuntu/freerdp2to a version that resolves this vulnerability.Fixed in 2.11.0Fixed in 3.0.0- - Upgrade
Upgrade
redhat/freerdpto a version that resolves this vulnerability.Fixed in 2.11.0 - Upgrade
Upgrade
redhat/freerdpto a version that resolves this vulnerability.Fixed in 3.0.0 - Upgrade
Upgrade
FreeRDPto a version that resolves this vulnerability.Fixed in 2.11.0
Event History
Frequently Asked Questions
What is CVE-2023-39356?
CVE-2023-39356 is a vulnerability in FreeRDP that allows an Out Of Bound Read in the function `gdi_multi_opaque_rect` due to missing offset validation.
What is the severity of CVE-2023-39356?
The severity of CVE-2023-39356 is critical with a severity value of 9.1.
How does CVE-2023-39356 affect FreeRDP?
CVE-2023-39356 affects FreeRDP versions up to and excluding 2.11.0, as well as version 3.0.0-beta1 and version 3.0.0-beta2.
How can I fix CVE-2023-39356?
To fix CVE-2023-39356, users should update to a version of FreeRDP that is not affected by the vulnerability.
Where can I find more information about CVE-2023-39356?
More information about CVE-2023-39356 can be found in the references provided: [GitHub - primary.h](https://github.com/FreeRDP/FreeRDP/blob/63a2f65618748c12f79ff7450d46c6e194f2db76/include/freerdp/primary.h#L186-L196), [GitHub - orders.c](https://github.com/FreeRDP/FreeRDP/blob/63a2f65618748c12f79ff7450d46c6e194f2db76/libfreerdp/core/orders.c#L1503-L1504), [GitHub - gdi.c](https://github.com/FreeRDP/FreeRDP/blob/63a2f65618748c12f79ff7450d46c6e194f2db76/libfreerdp/gdi/gdi.c#L723C1-L758).