Skip to main content

FreeRDP CVE-2026-109255

| EUVDEUVD-2026-97699 MEDIUM
Heap-based Buffer Overflow (CWE-122)
2026-10-12 VulnCheck GHSA-782m-c8ch-x5jc
6.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Lure client to malicious RDP server
  2. Delivery
    Send crafted SERVER_LICENSE_REQUEST with large scopeCount
  3. Exploit
    Bypass truncated length check
  4. Execution
    Trigger heap out-of-bounds write
  5. Impact
    Execute code or crash 32-bit 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

Exploitation requires three concrete conditions drawn from the description: (1) the client must be a 32-bit FreeRDP build between 3.0.0 and 3.32.0 - the integer truncation does not trigger on 64-bit builds; (2) the victim must initiate an RDP connection to an attacker-controlled, malicious, or MITM'd server (UI:P / server-side attack, not a listening-service flaw); and (3) the attacker must deliver a crafted SERVER_LICENSE_REQUEST during license negotiation with a scopeCount large enough to overflow the truncated length check. No authentication is needed on the attacker side (PR:N), but the dependence on outbound user-initiated connection and on a 32-bit client are the primary limiting factors that constrain real-world exploitability.

Impact

This is a client-side vulnerability: a malicious or compromised RDP server attacks a FreeRDP client that connects to it, not the reverse. The CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:H/VA:H) is internally consistent with the description - no authentication (PR:N), but it requires user interaction to initiate a connection (UI:P) and carries an attack requirement (AT:P) that maps directly to the stated precondition that the client be a 32-bit build, since the integer truncation only manifests in 32-bit pointer/length arithmetic. The 6.1 (MEDIUM) score is driven by high integrity and availability impact with zero confidentiality impact (VC:N), matching a heap overflow that corrupts memory for code execution or crash but does not directly disclose data. Exploitation status is no public exploit identified at time of analysis - the CVE is not in CISA KEV and no POC is referenced, only a GHSA advisory and a VulnCheck write-up. There is no signal conflict between severity and exploitation here, but note the key limiting factors that keep real-world risk below the raw network-vector implication: it is reachable only when a user actively connects out to an attacker-controlled server AND runs a 32-bit FreeRDP build, which is increasingly uncommon on modern 64-bit deployments. No EPSS score was provided in the input, so exploitation probability cannot be quantified. Treat this as a moderate-priority patch for fleets that still ship 32-bit RDP clients or embed FreeRDP, rather than an emergency.

Exploit ScenarioDerived

An attacker stands up a malicious RDP server (or compromises/MITMs a legitimate one) and lures a user running a 32-bit FreeRDP-based client to connect. During license negotiation the server returns a crafted SERVER_LICENSE_REQUEST with an oversized scopeCount; the truncated length check in license_check_stream_length passes, and the client writes attacker-controlled data past a heap buffer, enabling a crash (DoS) or potential remote code execution in the client process. No public exploit code is currently identified, and success depends on the victim initiating the outbound connection.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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 – Oct 12, 2026

Heap buffer overflow in FreeRDP's RDP license negotiation path lets a malicious or man-in-the-middle RDP server corrupt client heap memory when a 32-bit FreeRDP client (3.0.0 through the 3.31.x line, fixed in 3.32.0) connects to it and receives a crafted SERVER_LICENSE_REQUEST carrying an oversized scopeCount that defeats the length check. A successful attack can crash or destabilize the client (denial of service) and could potentially lead to code execution in the client's context, but exploitation requires the victim to initiate an outbound RDP session to an attacker-controlled endpoint and the integer truncation only manifests on 32-bit builds, not 64-bit ones. No public exploit identified at time of analysis; the vendor fix is shipped in FreeRDP 3.32.0, and the assessed risk vector is CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H.

RemediationAI

Vendor-released patch: FreeRDP 3.32.0 - upgrade affected 32-bit clients to 3.32.0 or later, where the integer truncation in license_check_stream_length is corrected (see GHSA-hxw3-57rq-3v4m at https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-hxw3-57rq-3v4m and the VulnCheck advisory at https://www.vulncheck.com/advisories/freerdp-3.0.0-before-3.32.0-heap-buffer-overflow-via-license-check-stream-length). If upgrading is not immediately possible, the most reliable compensating control is to remove the vulnerable configuration entirely: migrate clients to 64-bit builds of FreeRDP, since the truncation does not trigger there (trade-off: requires platform migration or reimaging and is not an option for hardware or OS environments locked to 32-bit). Because exploitation depends on the client connecting outbound to an attacker-controlled or spoofed server, tighten the connection surface as well - enforce an allowlist of approved RDP endpoints, and require routing through an RDP gateway with TLS and server certificate validation so a man-in-the-middle cannot deliver the crafted SERVER_LICENSE_REQUEST (trade-off: strict allowlists reduce user flexibility and internal self-signed certificates must be re-enrolled). There is no client-side configuration switch to disable the affected license-parsing path, so network-level detection of malformed license PDUs can support monitoring but does not prevent exploitation.

Affected VersionsENISA

FreeRDP 3.0.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 client stack used directly and by downstream applications that link its client library. The root cause is an integer truncation inside license_check_stream_length in the RDP license negotiation state machine, classified as CWE-122 (heap-based buffer overflow). When a server sends a SERVER_LICENSE_REQUEST PDU, the client parses a scopeCount field and uses it to compute buffer lengths; on 32-bit builds the length value is narrowed during the arithmetic, so the computed size no longer matches the data that follows, and the subsequent copy writes past the end of the heap allocation. Because the malformed data comes from the server the client deliberately connected to, this is a client-side, server-to-client flaw rather than a listening-service bug, which is why the independent assessment scores it CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H with high attack complexity driven by the 32-bit-only precondition plus the need for victim-initiated connection and a crafted license PDU. No confidentiality impact is assessed; integrity and availability impacts are high.

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

Network-reachable but requires a 32-bit client (AC:H) and the victim to connect out to the malicious server (UI:R); no auth (PR:N); memory corruption gives I:H/A:H with no data disclosure (C:N).

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

Lifecycle Timeline

1
Patch available
Oct 12, 2026 - 18:03 EUVD

DescriptionCVE.org

FreeRDP 3.0.0 before 3.32.0 contains an integer truncation vulnerability in license_check_stream_length that allows a malicious RDP server to trigger a heap buffer overflow on 32-bit clients. Attackers can send a crafted SERVER_LICENSE_REQUEST with a large scopeCount that bypasses length checks, causing out-of-bounds writes leading to denial of service or remote code execution.

Threat Intelligence Overview

EPSS Score
0.5%
Top 62% exploitable
Prevalence
Medium
widely-used open-source RDP library, but affected path limited to 32-bit builds
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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.5%
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
Medium

Priority Score

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

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