Skip to main content

FreeRDP EUVDEUVD-2026-115919

| CVE-2026-121387 MEDIUM
Out-of-bounds Read (CWE-125)
2026-11-03 VulnCheck GHSA-h4g7-hfh9-p954
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Victim connects to malicious RDP server
  2. Delivery
    Server negotiates GSM610 on rdpsnd channel
  3. Exploit
    Send truncated WAVE2 body under frame size
  4. Execution
    Decoder calls gsm_decode before length check
  5. Persist
    Out-of-bounds read crosses unmapped page
  6. Impact
    FreeRDP client process crashes (SIGSEGV)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK

1 technique across 1 tactic: Collection

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

Exploitation Conditions

Exploitation requires a specific, narrow stack: the victim must initiate an RDP connection to a malicious or compromised server (UI:P/UI:R), audio playback must be enabled so the rdpsnd static channel is loaded, and FreeRDP must be built with WITH_GSM=ON and WITH_DSP_FFMPEG=OFF so the built-in libgsm WAV49 decoder is used instead of the preferred FFmpeg DSP backend. The attacking server must offer GSM610 on rdpsnd and send a WAVE2 message whose audio body (after the 12-byte header) is shorter than the next complete WAV49 frame (33- or 32-byte boundary); the channel totalLength and WAVE2 BodySize can remain fully consistent because the missing check is at the codec-frame boundary. Limiting factors that reduce real-world risk: GSM is an optional build feature and many builds prefer the FFmpeg DSP backend (which is not vulnerable here), user interaction to connect is mandatory, audio must be active, and the impact is confined to a client-side crash with no claimed write, code execution, confidentiality, or integrity loss.

Impact

Signals are mostly consistent and point to a medium-severity, availability-only client-side issue rather than an urgent priority. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P, VA:L, 5.3) and the GHSA provisional CVSS 3.1 (AV:N/AC:L/PR:N/UI:R/S:U/A:H, 6.5) agree that this is network-reachable, low-complexity, and requires victim interaction, but they disagree on availability magnitude (4.0 rates VA:L while the GHSA rates A:H) - the demonstrated effect is a full client-process SIGSEGV, which argues for the higher availability rating. No KEV listing is present, so this is not confirmed actively exploited, and no EPSS score was provided, so widespread-exploitation probability cannot be quantified from the input. The vuln.today decision label is 'this_month' (not act_now/emergency), consistent with a non-critical DoS. The advisory ships a bounded guard-page verifier that demonstrates the crash locally; this is a public PoC reference, not a verified working remote exploit, and it should not be conflated with active exploitation. Most importantly, exploitation is gated by a narrow build configuration (WITH_GSM=ON and WITH_DSP_FFMPEG=OFF), the user initiating a connection to a malicious server, and audio being enabled - so real-world exposure is limited despite the network attack vector. Net: a legitimate but low-to-medium real-world priority, not a high-urgency item.

Exploit ScenarioDerived

A user is lured into connecting their FreeRDP-based client to an attacker-controlled or compromised RDP server with audio playback enabled. The malicious server negotiates the GSM610 codec on the rdpsnd channel and sends a length-consistent WAVE2 message whose audio body is one byte short of a complete 32-byte WAV49 frame, causing the built-in decoder to read past the buffer and crash the client (SIGSEGV). A public PoC reference exists in the GHSA advisory (a bounded guard-page verifier); it is not verified as working remote exploit code.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available

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

Alert me

AnalysisAIv1 – Nov 03, 2026

Out-of-bounds read in FreeRDP's built-in GSM610/WAV49 audio decoder lets a malicious or compromised RDP server read past a received audio buffer and, when the read crosses an unmapped page boundary, terminate the client process - an availability-only denial of service with no write, code execution, confidentiality, or integrity impact claimed. FreeRDP releases from 2.0.0 through 3.32.1 are affected only when built with WITH_GSM=ON and WITH_DSP_FFMPEG=OFF, with audio playback enabled so the rdpsnd static channel loads; builds using the FFmpeg DSP backend or without libgsm are not exposed. Exploitation requires the victim to initiate the RDP session, the server to offer GSM610, and a WAVE2 message whose audio body is shorter than the next complete 33- or 32-byte WAV49 frame - the advisory ships a bounded guard-page proof-of-concept verifier that reproduces the read locally, but no confirmed working remote exploit code and no CISA KEV listing exists, so this is a medium-severity, schedule-for-this-month client fix rather than an emergency.

RemediationAI

Upgrade to FreeRDP 3.32.2, the first release outside the stated 'before 3.32.2' affected range, and verify the exact fixed version against GHSA-wg7g-gx9g-r96c (https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-wg7g-gx9g-r96c) because one metadata source lists 3.22.2 while 3.32.1 was independently reproduced as vulnerable. The upstream fix is a per-frame bound check before every gsm_decode call - frameSize = ((offset % 65) == 0) ? 33 : 32; if ((size - offset) < frameSize) return FALSE; - with regression inputs of 33, 65, 0, 1, 32, 34 and 64 bytes. Where an immediate upgrade is not possible, the exposure disappears entirely if the client is rebuilt with WITH_DSP_FFMPEG=ON (FFmpeg backend handles this path and is not affected) or with WITH_GSM=OFF; both trade off the built-in GSM610/WAV49 decoding capability, and the FFmpeg build adds a runtime dependency on libavcodec. Disabling rdpsnd audio redirection (or running with audio playback off) removes the attack surface at the cost of client audio over RDP. These are build/deployment-level workarounds only - the vendor's complete fix is the patched decoder.

Affected VersionsENISA

FreeRDP 2.0.0 <3.32.2

Affected Packages

euvd freerdp fix: 3.32.2

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

CWE-125 out-of-bounds read in freerdp_dsp_decode_gsm610, the fallback audio decoder compiled into FreeRDP when libgsm support is enabled and the FFmpeg DSP backend is not. libgsm's WAV49 mode packs GSM frames into an alternating 33-byte / 32-byte pattern (offset 0 uses 33 bytes, offset 33 uses 32 bytes, repeating every 65 bytes) and exposes a lengthless gsm_decode() API that cannot know how many bytes the caller actually supplied. FreeRDP's loop is bounded only by 'offset < size': it calls gsm_decode() before verifying that a full frame remains, then advances by the frame size afterwards. A length-consistent WAVE2 message - valid 12-byte header plus a short audio body - therefore passes the rdpsnd channel and WAVE2 length checks and hands libgsm a pointer with fewer valid bytes behind it than the codec will consume. The vulnerable decoder was introduced by commit f89c1857b9773fe0a472caf95bc533f43abad48d on 2018-02-20 and is source-confirmed in 3.0.0, 3.13.0, 3.20.0, 3.24.0, 3.28.0, 3.31.1, 3.32.0, 3.32.1 and the master snapshot tested (3fd6912fcae17069c69c256b30c50af66fe625ee); the guard-page reproduction shows a 33-byte control decoding 320 bytes with exit 0 while a 32-byte body segfaults (exit 139), and on ordinary heap layouts the same over-read can silently touch adjacent mapped memory instead of crashing.

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 (VulnCheck) PRIMARY 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
vuln.today AI 6.5 MEDIUM

A malicious server reaches the client over the network with no auth (AV:N/PR:N) but the victim must initiate the connection (UI:R); impact is a full client crash (A:H), no C/I impact.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

Lifecycle Timeline

2
Patch available
Nov 03, 2026 - 16:17 EUVD
CVE Published
Nov 03, 2026 - 14:27 cve.org
MEDIUM 5.3

DescriptionCVE.org

FreeRDP 2.0.0 before 3.32.2 contains an out-of-bounds read vulnerability in freerdp_dsp_decode_gsm610 that allows malicious RDP servers to read past audio buffers by sending truncated GSM610 frames. Attackers can negotiate GSM610 on rdpsnd and send a WAVE2 message shorter than a 33- or 32-byte WAV49 frame to crash the client.

Threat Intelligence Overview

Prevalence
High
de facto open-source RDP client, widely embedded in Linux remote-desktop tools
Data Quality
4 sources
Confidence: Medium

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 MEDIUM
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
High

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
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.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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

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