FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.24.0, a size_t underflow in the IMA-ADPCM and MS-ADPCM audio decoders leads to heap-buffer-overflow write via the RDPSND audio channel. In libfreerdp/codec/dsp.c, the IMA-ADPCM and MS-ADPCM decoders subtract block header sizes from a size_t variable without checking for underflow. When nBlockAlign (received from the server) is set such that size % block_size == 0 triggers the header parsing at a point where size is smaller than the header (4 or 8 bytes), the subtraction wraps size to ~SIZE_MAX. The while (size > 0) loop then continues for an astronomical number of iterations. This vulnerability is fixed in 3.24.0.
A heap overflow condition is a buffer overflow, where the buffer that can be overwritten is allocated in the heap portion of memory, generally meaning that the buffer was allocated using a routine such as malloc().
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Freerdp | Freerdp | * | 3.24.0 (excluding) |
| Red Hat Enterprise Linux 10 | RedHat | freerdp-2:3.10.3-5.el10_1.8 | * |
| Red Hat Enterprise Linux 10 | RedHat | freerdp-2:3.10.3-12.el10_2.5 | * |
| Red Hat Enterprise Linux 10.0 Extended Update Support | RedHat | freerdp-2:3.10.3-3.el10_0.7 | * |
| Red Hat Enterprise Linux 7 Extended Lifecycle Support | RedHat | freerdp-0:2.1.1-5.el7_9.9 | * |
| Red Hat Enterprise Linux 8 | RedHat | freerdp-2:2.11.7-9.el8_10 | * |
| Red Hat Enterprise Linux 8.4 Advanced Mission Critical Update Support | RedHat | freerdp-2:2.2.0-14.el8_4 | * |
| Red Hat Enterprise Linux 8.4 Extended Update Support Long-Life Add-On | RedHat | freerdp-2:2.2.0-14.el8_4 | * |
| Red Hat Enterprise Linux 8.6 Advanced Mission Critical Update Support | RedHat | freerdp-2:2.2.0-7.el8_6.8 | * |
| Red Hat Enterprise Linux 8.6 Telecommunications Update Service | RedHat | freerdp-2:2.2.0-7.el8_6.8 | * |
| Red Hat Enterprise Linux 8.6 Update Services for SAP Solutions | RedHat | freerdp-2:2.2.0-7.el8_6.8 | * |
| Red Hat Enterprise Linux 8.8 Telecommunications Update Service | RedHat | freerdp-2:2.2.0-12.el8_8.8 | * |
| Red Hat Enterprise Linux 8.8 Update Services for SAP Solutions | RedHat | freerdp-2:2.2.0-12.el8_8.8 | * |
| Red Hat Enterprise Linux 9 | RedHat | freerdp-2:2.11.7-1.el9_7.7 | * |
| Red Hat Enterprise Linux 9 | RedHat | freerdp-2:2.11.7-7.el9_8.3 | * |
| Red Hat Enterprise Linux 9.0 Update Services for SAP Solutions | RedHat | freerdp-2:2.4.1-3.el9_0.7 | * |
| Red Hat Enterprise Linux 9.2 Update Services for SAP Solutions | RedHat | freerdp-2:2.4.1-6.el9_2.9 | * |
| Red Hat Enterprise Linux 9.4 Extended Update Support | RedHat | freerdp-2:2.11.2-1.el9_4.8 | * |
| Red Hat Enterprise Linux 9.6 Extended Update Support | RedHat | freerdp-2:2.11.7-1.el9_6.10 | * |
| Freerdp | Ubuntu | esm-infra/xenial | * |
| Freerdp3 | Ubuntu | noble | * |
| Freerdp3 | Ubuntu | questing | * |
| Freerdp3 | Ubuntu | upstream | * |