Description
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.
Published: 2026-08-19
Score: 7.7 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

FreeRDP, a free implementation of the Remote Desktop Protocol, suffered a heap buffer overflow in the Opus audio decoding routine. The bug occurs when a server negotiates the WAVE_FORMAT_OPUS audio codec with a client that has had Opus support compiled in but the FFmpeg DSP layer disabled. The vulnerable function writes decoded PCM data into a buffer without properly checking that the destination stream is large enough, allowing a crafted large frame to overflow a 4096‑byte stream buffer. The overflow corrupts the client heap, causing a crash and potentially enabling arbitrary code execution on the client side.

Affected Systems

All versions of FreeRDP earlier than 3.28.0 are affected. The fix was introduced in the 3.28.0 release, which corrects the buffer‑sizing logic in freerdp_dsp_decode_opus. Administrators should verify whether their installations use any of the vulnerable build options: WITH_OPUS enabled and WITH_DSP_FFMPEG disabled.

Risk and Exploitability

The CVSS score is 7.7, indicating high severity. The EPSS score is not available, so the likelihood of exploitation cannot be quantified, but the lack of presence in the CISA KEV catalog suggests there are no known widespread attacks. The attack vector is server‑to‑client; a malicious RDP server can trigger the overflow by sending a large Opus frame. The vulnerability requires that the client support Opus and that the server negotiate it, so denial of service or remote code execution is only possible if those conditions are met.

Generated by OpenCVE AI on August 20, 2026 at 00:04 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to FreeRDP 3.28.0 or later to apply the buffer‑checking fix.
  • If upgrading immediately is not feasible, disable Opus support on the client side or enable the FFmpeg DSP layer (WITH_DSP_FFMPEG) so that the buffer truncation path is no longer exercised.
  • Update server configuration to avoid offering the OPUS codec or to restrict maximum frame size, mitigating the risk of a crafted overflow payload.

Generated by OpenCVE AI on August 20, 2026 at 00:04 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 19 Aug 2026 20:00:00 +0000

Type Values Removed Values Added
First Time appeared Freerdp
Freerdp freerdp
Vendors & Products Freerdp
Freerdp freerdp

Wed, 19 Aug 2026 18:15:00 +0000

Type Values Removed Values Added
Description 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.
Title FreeRDP: Heap buffer overflow in Opus audio decode (`freerdp_dsp_decode_opus` resizes the wrong stream) — server→client
Weaknesses CWE-122
References
Metrics cvssV4_0

{'score': 7.7, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-19T18:00:52.230Z

Reserved: 2026-07-17T14:11:15.482Z

Link: CVE-2026-63633

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-19T18:17:10.017

Modified: 2026-08-19T18:17:10.017

Link: CVE-2026-63633

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-20T00:15:03Z

Weaknesses
  • CWE-122

    Heap-based Buffer Overflow