FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.28.0, freerdp_dsp_decode_opus in libfreerdp/codec/dsp.c calls Stream_EnsureRemainingCapacity on context->common.buffer even though opus_decode writes decoded PCM into the caller-supplied out stream. A malicious RDP server that negotiates WAVE_FORMAT_OPUS with a client built with WITH_OPUS enabled and WITH_DSP_FFMPEG disabled can make libopus write a large decoded frame beyond the 4096-byte StreamPool_Take destination used by channels/rdpsnd/client/rdpsnd_main.c. This can corrupt the client heap, crash the client, and may permit code execution. This issue is fixed in version 3.28.0.
Fix
Patch, vendor advisory and mitigation references on NVD 3
- https://github.com/FreeRDP/FreeRDP/commit/0ed1f95d36913581cf31124f94eb5843d4263eae Patch
- https://github.com/FreeRDP/FreeRDP/pull/12993 Issue Tracking, Patch
- https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-72j9-356v-88xq Exploit, Mitigation, Vendor Advisory
Every line above is quoted from NVD, CISA, Microsoft, the vendor's own advisory or DISA; nothing is generated.
Change history 1
- First seenCVSS 7.7 · freerdpNVD modified 2026-10-26 11:10
Affected (CPE criteria) 1
cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:*
References 4
- https://github.com/FreeRDP/FreeRDP/commit/0ed1f95d36913581cf31124f94eb5843d4263eae Patch
- https://github.com/FreeRDP/FreeRDP/pull/12993 Issue Tracking, Patch
- https://github.com/FreeRDP/FreeRDP/releases/tag/3.28.0 Release Notes
- https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-72j9-356v-88xq Exploit, Mitigation, Vendor Advisory