FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.28.0, freerdpdspdecodeopus in libfreerdp/codec/dsp.c calls StreamEnsureRemainingCapacity on context->common.buffer even though opusdecode writes decoded PCM into the caller-supplied out stream. A malicious RDP server that negotiates WAVEFORMATOPUS with a client built with WITHOPUS enabled and WITHDSPFFMPEG disabled can make libopus write a large decoded frame beyond the 4096-byte StreamPoolTake destination used by channels/rdpsnd/client/rdpsndmain.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"
[
{
"target": {
"file": "libfreerdp/codec/dsp.c"
},
"deprecated": false,
"source": "https://github.com/freerdp/freerdp/commit/0ed1f95d36913581cf31124f94eb5843d4263eae",
"id": "CVE-2026-63633-83072978",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"50412241537439287339051924614947765380",
"49341555708200915349026338678074468340",
"121381456941358467672481463834867398307",
"281295834099241788360371637861352183973"
]
},
"signature_type": "Line"
}
]
"2026-08-21T08:19:15Z"