Skip to main content

FreeRDP CVE-2026-109257

| EUVDEUVD-2026-97701 HIGH
Double Free (CWE-415)
2026-10-12 VulnCheck GHSA-q56w-xxg8-3cmg
8.2
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Connect to FreeRDP server as RDP client
  2. Delivery
    Negotiate NSCodec with oversized desktop geometry
  3. Exploit
    Trigger buffer-growth allocation failure
  4. Execution
    Dangling plane pointers double-freed on teardown
  5. Impact
    Server process crash (denial of service)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Double free prevention
Exploitation Conditions

Requires an RDP server built on FreeRDP (versions before 3.32.0) running in server mode with NSCodec support available for negotiation; the attacker acts as a malicious RDP client and must negotiate NSCodec while specifying a sufficiently large desktop geometry to force a buffer-growth allocation failure inside nsc_context_initialize_encode(). Limiting factors: the AT:P metric reflects that success depends on actually inducing the allocation failure (influenced by memory availability/geometry limits), so the trigger is not perfectly deterministic; impact is confined to a crash (availability) with no code execution, data exposure, or persistence; and the vulnerable server-side deployment mode of FreeRDP is less common than its client-side use.

Impact

This is a moderate-priority availability-only issue, not a critical one despite the 8.2 CVSS 4.0 base score. The vendor-supplied CVSS:4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N) describes a network-reachable, unauthenticated trigger, but crucially scores VC:N/VI:N/VA:H - the only impact is availability (a server crash via CWE-415 double-free). There is no confidentiality or integrity impact and no indication of code execution. The AT:P (attack requirement present) element is significant: exploitation depends on forcing an allocation failure, which is not a guaranteed-success deterministic trigger, lowering practical reliability. No EPSS score was provided, the CVE is NOT on CISA KEV, and no public exploit code was referenced - so there is no public exploit identified at time of analysis. Note the directionality: the attacker is a malicious RDP CLIENT and the victim is an RDP SERVER built on FreeRDP, which is the less common deployment mode for this library (FreeRDP is far more widely used as a client). Net: a reliable DoS against exposed FreeRDP-based RDP servers, worth patching on internet-facing or multi-tenant RDP server deployments, but not an urgent RCE-class emergency.

Exploit ScenarioDerived

A malicious actor connects to an internet-reachable or otherwise accessible RDP server built on FreeRDP (versions before 3.32.0) using a crafted RDP client. During session negotiation the client requests the NSCodec with an unusually large desktop geometry, forcing a buffer-growth allocation failure in nsc_context_initialize_encode() that leaves dangling plane pointers; on context teardown the resulting double-free crashes the server, denying service to legitimate users. No public exploit code was identified at time of analysis, and the attack causes a crash only - no code execution or data disclosure.

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

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

Alert me

AnalysisAIv1 – Oct 12, 2026

A malicious RDP client can crash a FreeRDP-based RDP server running versions before 3.32.0 by negotiating the NSCodec and requesting an oversized desktop geometry, which forces a buffer-growth allocation failure inside nsc_context_initialize_encode() and leaves dangling plane pointers that are later double-freed during context teardown. The impact is availability-only - no code execution, data exposure, or persistence - and the attack is unauthenticated (CVSS PR:N), but success depends on actually inducing the allocation failure, so the trigger is not perfectly deterministic and the vulnerable server-mode deployment is less common than FreeRDP's client-side use. No public exploit code or confirmed active exploitation has been identified at time of analysis, and the assessed CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H) reflects a moderate-priority crash issue rather than the more alarming 8.2 CVSS 4.0 base score suggests.

RemediationAI

Vendor-released patch: upgrade to FreeRDP 3.32.0 or later, which corrects the nsc_context_initialize_encode() error path so plane pointers are not left dangling after a partial allocation failure (see advisory GHSA-2hhg-8xx6-v73w). If upgrading cannot be done immediately, the most effective compensating control is to stop offering NSCodec to peers: build FreeRDP without NSCodec support or remove it from the negotiated codec list on server-mode deployments - the trade-off is that NSCodec-only clients may fail to connect or will fall back to other codecs with different performance characteristics. Because the trigger depends on forcing a buffer-growth allocation failure via large desktop geometry, limiting who can negotiate with the RDP server (restricting it to trusted networks or a VPN) and keeping memory headroom on the host reduces but does not fully eliminate exposure. Note that no public exploit code or confirmed in-the-wild exploitation exists at time of analysis, so these measures address a crash-only availability issue, not an attacker code-execution campaign.

Affected VersionsENISA

FreeRDP 0 <3.32.0

Affected Packages

euvd freerdp fix: 3.32.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

FreeRDP is an open-source implementation of the Remote Desktop Protocol used both as a client and as a server-side library; CVE-2026-109257 lives in the server encoder path. NSCodec is the legacy NS bitmap compression codec (the pre-RemoteFX-era codec) still negotiable in RDP sessions, and nsc_context_initialize_encode() allocates per-plane buffers while storing the resulting plane pointers in the NSC context structure. When a malicious client negotiates NSCodec while specifying a very large desktop geometry, one or more of those plane buffer allocations can fail partway through initialization; the error path does not clear the already-stored plane pointers, so they dangle. The later context teardown frees those stale pointers a second time, the classic double-free pattern under CWE-415. In this specific code path the practical effect is heap-consistency failure or an abort/crash of the RDP server process rather than memory corruption that is reliably exploitable for code execution, which is why the independent assessment caps impact at High availability with no confidentiality or integrity effect. The CPE cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:* confirms that every FreeRDP release prior to 3.32.0 is in scope, but only deployments running FreeRDP in server mode with NSCodec available for negotiation are actually reachable.

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 8.2 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 5.9 MEDIUM

Network-reachable and unauthenticated (AV:N/PR:N), but AC:H because exploitation depends on inducing a non-deterministic allocation failure; impact is availability-only (A:H, C:N/I:N).

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

Lifecycle Timeline

2
Patch available
Oct 12, 2026 - 18:03 EUVD
CVE Published
Oct 12, 2026 - 16:04 cve.org
HIGH 8.2

DescriptionCVE.org

FreeRDP before 3.32.0 contains a double-free vulnerability in nsc_context_initialize_encode() that leaves dangling plane pointers after a partial buffer growth failure. Attackers using a crafted RDP client can negotiate NSCodec with a large desktop geometry to trigger allocation failure, crashing the server during context teardown.

Executive ViewAI

Why It Matters

FreeRDP-based remote desktop servers running versions prior to 3.32.0 are affected by an availability-only denial-of-service vulnerability that can be triggered by an unauthenticated client negotiating NSCodec with an oversized desktop geometry. While exploitation is non-deterministic and server-mode deployments are less common than client-side use, a successful crash could disrupt remote access for affected teams. No public exploit identified at time of analysis, and no vendor-released patch identified at time of analysis, so leadership should prioritize exposure reduction and monitoring for critical remote desktop infrastructure.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis; interim mitigations include restricting RDP server access to trusted networks, disabling NSCodec negotiation or enforcing maximum desktop geometry limits where configurable, monitoring for service crashes, and segmenting RDP infrastructure from general user networks.

Threat Intelligence Overview

EPSS Score
0.3%
Top 77% exploitable
Prevalence
Medium
popular open-source RDP library, but server-mode deployments less common than client
Data Quality
5 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 HIGH
CISA KEV No
Public POC No
EPSS 0.3%
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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Medium

Priority Score

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

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

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

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