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.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-122"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/63xxx/CVE-2026-63633.json"
}"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-63633.json"
[
{
"deprecated": false,
"digest": {
"line_hashes": [
"50412241537439287339051924614947765380",
"49341555708200915349026338678074468340",
"121381456941358467672481463834867398307",
"281295834099241788360371637861352183973"
],
"threshold": 0.9
},
"id": "CVE-2026-63633-83072978",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/freerdp/freerdp/commit/0ed1f95d36913581cf31124f94eb5843d4263eae",
"target": {
"file": "libfreerdp/codec/dsp.c"
}
}
]
"2026-08-28T08:05:19Z"