CVE-2026-31883: FreeRDP has a `size_t` underflow in ADPCM decoder leads to heap-buffer-overflow write
FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.24.0, a sizet 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 sizet variable without checking for underflow. When nBlockAlign (received from the server) is set such that size % blocksize == 0 triggers the header parsing at a point where size is smaller than the header (4 or 8 bytes), the subtraction wraps size to ~SIZEMAX. The while (size > 0) loop then continues for an astronomical number of iterations. This vulnerability is fixed in 3.24.0.
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2026-31883?
CVE-2026-31883 is classified as a high-severity vulnerability due to the potential exploitation via heap-buffer overflow.
How do I fix CVE-2026-31883?
To fix CVE-2026-31883, update FreeRDP to version 3.24.0 or later.
What types of systems are affected by CVE-2026-31883?
CVE-2026-31883 affects FreeRDP versions prior to 3.24.0 that utilize the RDPSND audio channel.
What impact does CVE-2026-31883 have on FreeRDP?
CVE-2026-31883 can lead to a heap-buffer-overflow write, potentially allowing for arbitrary code execution.
When was CVE-2026-31883 disclosed?
CVE-2026-31883 was disclosed prior to the release of FreeRDP version 3.24.0.