Skip to main content

FreeRDP EUVDEUVD-2026-62672

| CVE-2026-63633 HIGH
Heap-based Buffer Overflow (CWE-122)
2026-08-19 security-advisories@github.com
7.7
CVSS 4.0 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Attacker hosts malicious RDP server
  2. Delivery
    Victim connects to rogue server
  3. Exploit
    Server negotiates WAVE_FORMAT_OPUS audio format
  4. Install
    Server sends oversized crafted Opus frame
  5. C2
    libopus decodes past 4096-byte heap buffer
  6. Execute
    Heap metadata corrupted
  7. Impact
    Potential code execution on client

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Heap buffer bounds checking
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Two compile-time build flags must both be set in the FreeRDP binary: WITH_OPUS must be ON (enabling libopus integration) and WITH_DSP_FFMPEG must be OFF (disabling the FFmpeg audio decode path). These are build-time conditions baked into the binary at package creation - a runtime configuration check cannot substitute for verifying the build flags used. At runtime, the RDP server must successfully negotiate WAVE_FORMAT_OPUS for the rdpsnd audio channel; since the attacker controls the server, format negotiation is fully under attacker control. The attacker requires no authentication or credentials - they operate as the server. Passive user interaction is required: the victim must initiate an RDP connection to the attacker's server, either directly or through social engineering. Exploitation is impossible against clients built with WITH_OPUS=OFF (no Opus code path exists) or WITH_DSP_FFMPEG=ON (a separate decode path is used); these build combinations are the primary limiting factor reducing the realistic exploitable population.

Impact

The CVSS 4.0 score of 7.7 (High) with vector AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N is broadly consistent with the description: the attack is network-reachable with low complexity once the build-time prerequisites are met, and the CIA impact on the vulnerable client system is fully High. AT:P correctly models that specific compile-time build flags (WITH_OPUS=ON, WITH_DSP_FFMPEG=OFF) must be present in the target binary - a condition outside the attacker's control - which meaningfully narrows the exploitable population relative to a raw AV:N/AC:L score would suggest. The vulnerability is not listed in the CISA KEV catalog and no POC is identified, reducing immediate threat urgency. EPSS data was not provided; given the build prerequisite and the requirement for passive user interaction (victim must connect to attacker's server), opportunistic mass exploitation is unlikely. However, a targeted attacker with knowledge of a client build's Opus support - plausible in enterprise or developer environments - could achieve heap corruption with realistic social engineering. The RCE tag should be treated as a credible ceiling: heap overflows in audio decoders have a well-documented history of weaponization, and this primitive (controlled write beyond a known-sized buffer) is favorable for exploitation.

Exploit ScenarioDerived

An attacker hosts a rogue RDP server and lures a target into connecting - via a phishing email containing a malicious .rdp shortcut, a compromised internal redirect, or a social-engineering pretext. Upon connection, the server advertises and enforces WAVE_FORMAT_OPUS for the rdpsnd audio channel, then transmits a crafted Opus audio packet that decodes to a PCM payload substantially larger than 4096 bytes, overwriting heap memory adjacent to the StreamPool_Take buffer on the client and potentially redirecting execution to attacker-controlled shellcode.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 19, 2026

Heap buffer overflow in FreeRDP's Opus audio codec path allows a malicious RDP server to corrupt client heap memory and potentially execute arbitrary code on any connecting client built with WITH_OPUS enabled and WITH_DSP_FFMPEG disabled. The flaw in freerdp_dsp_decode_opus (versions prior to 3.28.0) stems from a capacity check applied to the wrong buffer, leaving the actual PCM output buffer unguarded against oversized libopus decoded frames that can overrun the fixed 4096-byte StreamPool_Take destination in the rdpsnd channel. No public exploit has been identified at time of analysis, but the confirmed heap write primitive and RCE classification make this a credible code execution risk for susceptible client builds connecting to untrusted servers.

RemediationAI

Upgrade FreeRDP to version 3.28.0 or later; this release contains the fix confirmed by commit 0ed1f95d36913581cf31124f94eb5843d4263eae (https://github.com/FreeRDP/FreeRDP/commit/0ed1f95d36913581cf31124f94eb5843d4263eae) and PR #12993 (https://github.com/FreeRDP/FreeRDP/pull/12993), tagged at https://github.com/FreeRDP/FreeRDP/releases/tag/3.28.0. For organizations unable to upgrade immediately, recompiling FreeRDP with WITH_OPUS=OFF eliminates the vulnerable code path entirely at the cost of losing Opus audio codec support in RDP audio redirection - this is the cleanest workaround and has no security side effects. Alternatively, recompiling with WITH_DSP_FFMPEG=ON routes Opus audio decoding through FFmpeg's separate path, bypassing the vulnerable function; this requires FFmpeg development libraries as a build dependency and adds FFmpeg's own attack surface. Neither compile-time workaround should be considered a permanent substitute for patching to 3.28.0. Distribution maintainers should issue updated packages and document the build flags used.

Affected VersionsENISA

FreeRDP < 3.28.0

Affected Packages

euvd freerdp fix: 3.28.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability resides in libfreerdp/codec/dsp.c (CWE-122: Heap-based Buffer Overflow). In the freerdp_dsp_decode_opus function, Stream_EnsureRemainingCapacity was called on context->common.buffer - an internal codec buffer - rather than on the caller-supplied out stream that libopus actually writes decoded PCM audio into. The rdpsnd channel (channels/rdpsnd/client/rdpsnd_main.c) allocates a fixed 4096-byte destination via StreamPool_Take; since the capacity guard targets the wrong object, that destination is never resized before libopus writes into it. A malicious RDP server that negotiates WAVE_FORMAT_OPUS and sends a large Opus audio frame causes libopus to decode PCM output beyond the end of the 4096-byte heap region, corrupting adjacent heap metadata. The commit diff at 0ed1f95d36913581cf31124f94eb5843d4263eae confirms the root cause as a single-line wrong-buffer reference. This code path is only reachable when FreeRDP is compiled with WITH_OPUS=ON and WITH_DSP_FFMPEG=OFF; the FFMPEG code path routes audio through a separate decode function not affected by this bug.

Know when Freerdp gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (github) PRIMARY 7.7 HIGH
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
vuln.today AI 7.5 HIGH

AC:H reflects compile-time build prerequisites outside attacker control (WITH_OPUS=ON, WITH_DSP_FFMPEG=OFF); UI:R because victim must actively initiate the RDP connection to the attacker's server.

3.1 AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Red Hat 8.8 HIGH

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Aug 19, 2026 - 19:18 EUVD
CVE Published
Aug 19, 2026 - 18:17 cve.org
HIGH 7.7

DescriptionCVE.org

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.

Executive ViewAI

Why It Matters

FreeRDP clients are vulnerable to remote code execution through a heap buffer overflow in the Opus audio codec decoder affecting versions prior to 3.28.0. No public exploit has been identified at time of analysis; however, the confirmed code execution path creates material risk for organizations whose endpoints connect to RDP infrastructure, potentially enabling credential theft, data exfiltration, or lateral movement within enterprise networks.

Business Impact: High
Compensating Controls

Disable Opus audio codec in FreeRDP client configurations; recompile with WITH_DSP_FFMPEG enabled if rebuilding from source; restrict RDP connections to managed servers only via firewall and network segmentation; implement detailed RDP connection logging to detect anomalous client-to-server connection patterns; segment client systems to prevent lateral movement if compromise occurs.

Threat Intelligence Overview

EPSS Score
0.5%
Top 61% exploitable
Prevalence
Medium
widely-used open-source RDP client library across Linux distributions
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

A heap overflow occurs when a program writes data beyond the bounds of a buffer allocated in the heap memory region.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

CVE-2026-25997 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_clipboard_format_equal before 3.23.0. Clipboard format comparison uses freed memory. Fifth

CVE-2026-25953 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_AppUpdateWindowFromSurface before 3.23.0. Surface-to-window update triggers memory corrupti

CVE-2026-25952 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_SetWindowMinMaxInfo before version 3.23.0. X11 client window management triggers memory cor

CVE-2026-25959 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_cliprdr_provide_data clipboard handling before 3.23.0. Clipboard data exchange triggers mem

CVE-2026-22857 CRITICAL POC
9.8 Jan 14

FreeRDP IRP thread handler has a use-after-free where the IRP is freed by Complete() then accessed on the error path. Fi

CVE-2026-22854 CRITICAL POC
9.8 Jan 14

FreeRDP drive read heap overflow when server-controlled read length exceeds IRP output buffer. Fixed in 3.20.1. PoC avai

CVE-2026-22852 CRITICAL POC
9.8 Jan 14

FreeRDP client before 3.20.1 has a heap buffer overflow in AUDIN format processing. A malicious RDP server can corrupt m

CVE-2026-25955 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_AppUpdateWindowFromSurface before 3.23.0. Different code path from CVE-2026-25953. PoC and

CVE-2024-32041 CRITICAL POC
9.8 Apr 22

FreeRDP is a free implementation of the Remote Desktop Protocol. Rated critical severity (CVSS 9.8), this vulnerability

CVE-2023-40574 CRITICAL POC
9.8 Aug 31

FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical

CVE-2023-40569 CRITICAL POC
9.8 Aug 31

FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical

CVE-2023-40567 CRITICAL POC
9.8 Aug 31

FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical

Vendor StatusVendor

SUSE

Product Status
openSUSE Tumbleweed Fixed

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy