CVE-2026-63633
WysokieCVSS 7.7Streszczenie
W FreeRDP przed wersją 3.28.0 funkcja freerdp_dsp_decode_opus wywołuje Stream_EnsureRemainingCapacity na buforze kontekstu, mimo że opus_decode zapisuje dane do bufora dostarczonego przez wywołującego. Złośliwy serwer RDP negocjujący WAVE_FORMAT_OPUS może spowodować zapis dużych ramek poza przydzielony bufor, co prowadzi do uszkodzenia sterty klienta, awarii i potencjalnego wykonania kodu.
Ocena ryzyka
Złośliwy serwer RDP może doprowadzić do awarii klienta lub uzyskać możliwość wykonania kodu, co stanowi poważne zagrożenie dla integralności systemu.
Rekomendacja
Zaktualizuj FreeRDP do wersji 3.28.0 lub nowszej, która zawiera poprawkę.
Oryginalny opis (angielski, źródło NVD)
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.

