CVE-2023-39356
Missing offset validation leading to Out-of-Bounds Read in FreeRDP
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
1Exploited in Wild
-Decision
Descriptions
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->numRectangles` is less than 45. Looping through `multi_opaque_rect->`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.
reeRDP es una implementación libre del Protocolo de Escritorio Remoto (RDP), publicado bajo la licencia Apache. En las versiones afectadas, una falta de validación de desplazamiento puede conducir a una lectura fuera de límites en la función `gdi_multi_opaque_rect`. En particular, no hay código para validar si el valor `multi_opaque_rect->numRectangles` es menor que 45. Hacer un bucle a través de `multi_opaque_rect->`numRectangles` sin las comprobaciones adecuadas de los límites puede provocar errores de lectura fuera de los límites, lo que probablemente provoque un fallo. Este problema se ha solucionado en las versiones 2.11.0 y 3.0.0-beta3. Se recomienda a los usuarios que actualicen. No se conocen soluciones para esta vulnerabilidad.
A flaw was found in FreeRDP. Looping through `multi_opaque_rect->`numRectangles without proper boundary checks can lead to a heap-buffer-overflow, which may result in a crash.
This update for freerdp fixes the following issues. Fixed incorrect offset calculation leading to DoS. Fixed Null Pointer Dereference leading DoS in RemoteFX. Fixed Invalid offset validation leading to Out Of Bound Write. Fixed Missing offset validation leading to Out Of Bound Read. Fixed Out-Of-Bounds Read in nsc_rle_decompress_data. Fixed Missing offset validation leading to Out-of-Bounds Read in gdi_multi_opaque_rect. Fixed Integer-Underflow leading to Out-Of-Bound Read in zgfx_decompress_segment. Fixed IntegerOverflow leading to Out-Of-Bound Write Vulnerability in gdi_CreateSurface. Fixed Out-Of-Bounds Read in general_LumaToYUV444. Fixed Out-Of-Bounds Write in clear_decompress_bands_data. Fixed Out-Of-Bounds Write in progressive_decompress. Fixed Out-Of-Bounds Write in general_YUV444ToRGB_8u_P3AC4R_BGRX. Fixed Out-Of-Bounds Read in general_YUV444ToRGB_8u_P3AC4R_BGRX. Fixed Out-Of-Bounds Read in RleDecompress. Fixed Global-Buffer-Overflow in ncrush_decompress.
CVSS Scores
SSVC
- Decision:-
Timeline
- 2023-07-28 CVE Reserved
- 2023-08-31 CVE Published
- 2025-02-13 CVE Updated
- 2025-02-13 First Exploit
- 2025-07-15 EPSS Updated
- ---------- Exploited in Wild
- ---------- KEV Due Date
CWE
- CWE-125: Out-of-bounds Read
CAPEC
References (11)
URL | Date | SRC |
---|---|---|
https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-q5v5-qhj5-mh6m | 2025-02-13 |
URL | Date | SRC |
---|
URL | Date | SRC |
---|---|---|
https://access.redhat.com/security/cve/CVE-2023-39356 | 2024-04-30 | |
https://bugzilla.redhat.com/show_bug.cgi?id=2236759 | 2024-04-30 |
Affected Vendors, Products, and Versions
Vendor | Product | Version | Other | Status | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Vendor | Product | Version | Other | Status | <-- --> | Vendor | Product | Version | Other | Status |
Freerdp Search vendor "Freerdp" | Freerdp Search vendor "Freerdp" for product "Freerdp" | < 2.11.0 Search vendor "Freerdp" for product "Freerdp" and version " < 2.11.0" | - |
Affected
| ||||||
Freerdp Search vendor "Freerdp" | Freerdp Search vendor "Freerdp" for product "Freerdp" | 3.0.0 Search vendor "Freerdp" for product "Freerdp" and version "3.0.0" | beta1 |
Affected
| ||||||
Freerdp Search vendor "Freerdp" | Freerdp Search vendor "Freerdp" for product "Freerdp" | 3.0.0 Search vendor "Freerdp" for product "Freerdp" and version "3.0.0" | beta2 |
Affected
| ||||||
Debian Search vendor "Debian" | Debian Linux Search vendor "Debian" for product "Debian Linux" | 10.0 Search vendor "Debian" for product "Debian Linux" and version "10.0" | - |
Affected
| ||||||
Fedoraproject Search vendor "Fedoraproject" | Fedora Search vendor "Fedoraproject" for product "Fedora" | 37 Search vendor "Fedoraproject" for product "Fedora" and version "37" | - |
Affected
| ||||||
Fedoraproject Search vendor "Fedoraproject" | Fedora Search vendor "Fedoraproject" for product "Fedora" | 38 Search vendor "Fedoraproject" for product "Fedora" and version "38" | - |
Affected
| ||||||
Fedoraproject Search vendor "Fedoraproject" | Fedora Search vendor "Fedoraproject" for product "Fedora" | 39 Search vendor "Fedoraproject" for product "Fedora" and version "39" | - |
Affected
|