Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure client to malicious RDP server
-
DeliverySend crafted SERVER_LICENSE_REQUEST with large scopeCount
-
ExploitBypass truncated length check
-
ExecutionTrigger heap out-of-bounds write
-
ImpactExecute 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
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
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).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
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.
Use-after-free in FreeRDP xf_clipboard_format_equal before 3.23.0. Clipboard format comparison uses freed memory. Fifth
Use-after-free in FreeRDP xf_AppUpdateWindowFromSurface before 3.23.0. Surface-to-window update triggers memory corrupti
Use-after-free in FreeRDP xf_SetWindowMinMaxInfo before version 3.23.0. X11 client window management triggers memory cor
Use-after-free in FreeRDP xf_cliprdr_provide_data clipboard handling before 3.23.0. Clipboard data exchange triggers mem
FreeRDP IRP thread handler has a use-after-free where the IRP is freed by Complete() then accessed on the error path. Fi
FreeRDP drive read heap overflow when server-controlled read length exceeds IRP output buffer. Fixed in 3.20.1. PoC avai
FreeRDP client before 3.20.1 has a heap buffer overflow in AUDIN format processing. A malicious RDP server can corrupt m
Use-after-free in FreeRDP xf_AppUpdateWindowFromSurface before 3.23.0. Different code path from CVE-2026-25953. PoC and
FreeRDP is a free implementation of the Remote Desktop Protocol. Rated critical severity (CVSS 9.8), this vulnerability
FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical
FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical
FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical
EUVD-2026-97699
GHSA-782m-c8ch-x5jc
NVD
CVE.org
EPSS
Exploit-DB