Safeguard
Vulnerability Analysis•

CVE-2026-63633: Critical Heap Overflow in FreeRDP Opus Decoder

CVE-2026-63633 is a critical heap overflow in the FreeRDP client Opus decoder before 3.28.0. Upgrade to 3.28.0 and use only trusted RDP servers.

Safeguard Security Team
3 min read

CVE-2026-63633 is a critical (CVSS 9.8) heap buffer overflow in the FreeRDP client, in the Opus audio decoder. A malicious RDP server can corrupt the client's memory. It affects FreeRDP up to 3.27.1 and is fixed in 3.28.0. Upgrade, and connect only to servers you trust.

What's affected

  • FreeRDP versions up to and including 3.27.1. Fixed in 3.28.0.
  • Function: freerdp_dsp_decode_opus in libfreerdp/codec/dsp.c.
  • Build condition: a client built with WITH_OPUS enabled and WITH_DSP_FFMPEG disabled, per the record.
  • Weakness: CWE-122, heap based buffer overflow. CVSS 9.8 (critical), vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.

The GitHub advisory rates it High and says the direction is server to client.

How to check if you're exposed

Find the FreeRDP version in every place it is installed or embedded.

xfreerdp --version 2>/dev/null || xfreerdp3 --version
# Debian and Ubuntu
dpkg -l | grep -i freerdp
# Red Hat family
rpm -qa | grep -i freerdp

FreeRDP is also embedded in remote desktop tools, gateways and appliances. For those, ask the vendor which FreeRDP version they ship. The free in-browser scan at gold.safeguard.sh/scan covers dependencies in your projects.

What to do now

  1. Find every FreeRDP client install and every product that embeds it.
  2. Upgrade to FreeRDP 3.28.0 or later, or to your distribution's patched package.
  3. Until then, connect only to RDP servers you control or trust.
  4. If you build FreeRDP yourself, note the Opus and FFmpeg build options. The affected path is the one with Opus enabled and the FFmpeg DSP disabled.
  5. Rebuild container images and application bundles that carry the library.

Why it matters

The decoder resized the wrong buffer before decoding audio. Opus decoding writes into a fixed size destination, and the decoded frame can be far larger than that destination. The advisory describes a write of several kilobytes past a 4 KB buffer, which corrupts nearby heap objects.

That is CWE-122. Heap corruption can crash the client and, in the worst case, allow code execution. The attacker has to be the server, or sit between the client and the server, so the main exposure is a user who connects to a server they do not control. The record's KEV flag is false.

An earlier FreeRDP fix for a similar overflow in the same file covered other audio decoders and did not touch the Opus path, according to the advisory.

Try it yourself

Click through it at your own pace, or open it full screen.

Quick check

Who does the attacker have to be?

A malicious RDP server, according to the record. The client is the victim.

Which build options matter?

The record names Opus enabled and the FFmpeg DSP disabled.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.