Skip to main content

FreeRDP CVE-2026-64620

| EUVDEUVD-2026-45935 CRITICAL
Heap-based Buffer Overflow (CWE-122)
2026-07-20 disclosure@vulncheck.com GHSA-xmhx-cqxp-qrgq
9.3
CVSS 4.0 · Vendor: vulncheck
Share

Severity by source

Vendor (vulncheck) PRIMARY
9.3 CRITICAL
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
7.5 HIGH

Unauthenticated network trigger with low complexity (AV:N/AC:L/PR:N/UI:N); vendor describes impact as denial of service only, so C:N/I:N and A:H rather than the input's overstated confidentiality/integrity Highs.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
8.2 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H
Red Hat
8.1 HIGH
qualitative

Primary rating from Vendor (vulncheck).

CVSS VectorVendor: vulncheck

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

4
Patch available
Jul 20, 2026 - 15:33 EUVD
Source Code Evidence Fetched
Jul 20, 2026 - 12:39 vuln.today
Analysis Generated
Jul 20, 2026 - 12:39 vuln.today
CVE Published
Jul 20, 2026 - 12:19 cve.org
CRITICAL 9.3

DescriptionCVE.org

FreeRDP before 3.28.0 (affected <=3.27.1) contains a heap-based buffer overflow in crypto_rsa_common() (libfreerdp/crypto/crypto.c). The function writes the modular-exponentiation result into the caller's output buffer via BN_bn2bin() and only afterward checks output_length > out_length, so out-of-bounds bytes are written before the bounds check. On the server side, when a client selects RDP Standard Security, the encrypted client random is decrypted into a fixed 32-byte buffer. Because the server publishes its RSA public key, an unauthenticated attacker can forge a ciphertext whose decrypted value is up to the full modulus length (e.g. 256 bytes for RSA-2048), overflowing the 32-byte heap buffer by up to ~224 attacker-controlled bytes pre-authentication, resulting in denial of service.

AnalysisAI

Denial of service in FreeRDP servers (versions <=3.27.1) allows unauthenticated remote attackers to crash the service by forging a malicious encrypted client random during RDP Standard Security negotiation. Because the server publishes its RSA public key, an attacker can craft a ciphertext whose decrypted plaintext spans the full RSA modulus (up to 256 bytes for RSA-2048), overflowing a fixed 32-byte heap buffer in crypto_rsa_common() by roughly 224 attacker-controlled bytes before any authentication occurs. No public exploit identified at time of analysis, and the flaw is not listed in CISA KEV; the fix landed in FreeRDP 3.28.0.

Technical ContextAI

FreeRDP is a widely used open-source implementation of the Remote Desktop Protocol (RDP), providing both client and server components. The bug lives in libfreerdp/crypto/crypto.c, in crypto_rsa_common(), which performs modular exponentiation for RSA operations and writes the result into a caller-supplied output buffer using OpenSSL's BN_bn2bin(). The ordering error is the root cause: BN_bn2bin() writes output_length bytes into the destination first, and only afterward is the check output_length > out_length performed - an out-of-bounds write that has already happened by the time the bounds check runs (classic CWE-122, heap-based buffer overflow). On the server side, when a client selects RDP Standard Security, the server decrypts the client-supplied encrypted client random into a fixed 32-byte heap buffer; since the RSA public key is published by the server, an attacker fully controls the plaintext length up to the modulus size, making the overflow trivially reachable pre-authentication.

RemediationAI

Vendor-released patch: upgrade to FreeRDP 3.28.0 or later, which reorders the bounds check before the BN_bn2bin() write in crypto_rsa_common(); this is the primary and complete fix (reference GHSA-pjqx-v446-x7fc and commit 1f7a716d39b5605bb8a83b0c3c97a6ce386609ef). Because the vulnerability is only reachable when a client selects RDP Standard Security, an effective interim workaround is to configure the FreeRDP-based server to require Enhanced RDP Security (TLS/CredSSP/NLA) and disable RDP Standard Security, which removes the vulnerable decryption path - the trade-off is that legacy clients that only support Standard Security will no longer be able to connect. Where the server cannot be reconfigured quickly, restrict network reachability by firewalling the RDP listener (TCP 3389) to trusted management networks or placing it behind a VPN, accepting the trade-off of reduced accessibility for remote users until the patch is applied. Rebuild and redeploy any downstream products or distribution packages that statically bundle FreeRDP.

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

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP7 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP7 Affected
SUSE Linux Enterprise Server 15 SP7 Affected

Share

CVE-2026-64620 vulnerability details – vuln.today

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