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
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).