CVE-2026-121964

Description

A flaw was found in FreeRDP. A compromised or malicious Remote Desktop (RD) Gateway server can send specially crafted Remote Procedure Call (RPC) network messages to a connecting client. Because the client verifies total buffer capacity instead of remaining buffer space before writing incoming data, client heap memory can be overwritten. An attacker can exploit this flaw to potentially execute arbitrary code or crash the client application, resulting in a Denial of Service (DoS).

Statement

This vulnerability is rated as Important because successful exploitation enables a compromised Remote Desktop Gateway to corrupt heap memory and potentially achieve arbitrary code execution with the permissions of the client user. Exploitation requires user initiation by connecting through an untrusted gateway, preventing unauthenticated remote attackers from triggering the vulnerability independently. Furthermore, standard direct RDP connections that do not route traffic through RD Gateway RPC transport are not exposed to this flaw.

Mitigation

Limit FreeRDP connections strictly to trusted Remote Desktop Gateways and ensure server certificate verification is enforced.

Operational controls:
1. Avoid routing RDP connections through untrusted or unverified RD Gateways (do not supply untrusted hosts to the `/g:` or `/gw:` parameters).
2. Connect directly to target RDP servers, utilizing a trusted VPN rather than an intermediate RD Gateway where feasible.
3. Ensure strict TLS certificate validation is maintained; do not supply the `/cert:ignore` option on the command line or disable certificate validation in connection profiles.

If FreeRDP client functionality is not required on the system, remove the package:
# dnf remove freerdp

Caveats: Removing the `freerdp` package may also remove dependent desktop packages or graphical remote desktop clients (such as GNOME Connections or Remmina).

--- CME Mitigation Guidance (2026-11-06) ---
Disclaimer: The following mitigation solutions are provided as a courtesy, pending the application of an official patch. This content was generated utilizing AI tools in conjunction with data from https://cmetaxonomy.org. Customers are advised to independently evaluate and test these temporary mitigations within their own infrastructure.

The highest-value action is to enforce remaining stream buffer capacity validation rather than total capacity checks in the FreeRDP RD Gateway RPC client during fragment processing: upgrade to FreeRDP 3.32.2 (or the fixed Freerdp builds), which verify remaining buffer capacity from the current stream offset instead of total capacity before writing incoming RPC fragments, closing all 2 injection vectors (crafted RPC BIND_ACK fragments, crafted RPC ALTER_CONTEXT_RESP fragments). Until patched, this is only a concern on FreeRDP client connections routed through an RD Gateway — Direct RDP connections not routed through RD Gateway RPC transport are unaffected — so Avoid routing RDP connections through untrusted RD Gateways, connect directly over trusted VPNs instead of intermediate gateways, and maintain strict TLS certificate validation by avoiding cert:ignore options. As a compensating measure, Enable ASLR to randomize FreeRDP memory addresses and complicate reliable exploitation following heap corruption, Enforce Full RELRO and PIE to prevent Global Offset Table overwrites and randomize code segment locations, Use Control Flow Integrity or Shadow Call Stack to validate indirect call targets against function pointer hijacking, Deploy EDR agents to monitor and detect anomalous process execution or memory injection spawned from the FreeRDP process, and Enforce NX/XD non-executable memory protections on the heap to prevent execution of injected payload code. These controls limit blast radius and contain exploitation, but they do not fix the underlying heap-based buffer overflow defect — apply the upstream patch to fully remediate.

Highest-impact CME: CME-404 Certificate Pinning (high)

Common Vulnerability Scoring System (CVSS) Score Details

Info alert:Important note

CVSS scores for open source components depend on vendor-specific factors (e.g. version or build chain). Therefore, Red Hat's score and impact rating can be different from NVD and other vendors. Red Hat remains the authoritative CVE Naming Authority (CNA) source for its products and services (see Red Hat classifications).

The following CVSS metrics and score provided are preliminary and subject to review.

CVSS v3 Score Breakdown

Red HatNVDcve.org
Base Score8.8N/A7.5
Attack VectorNetworkN/ANetwork
Attack ComplexityLowN/ALow
Privileges RequiredNoneN/ANone
User InteractionRequiredN/ANone
ScopeUnchangedN/AUnchanged
ConfidentialityHighN/ANone
Integrity ImpactHighN/ANone
Availability ImpactHighN/AHigh

Vector

Red Hat: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

cve.org: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Understanding the Weakness (CWE)

Integrity

Technical Impact: Modify Memory; Execute Unauthorized Code or Commands

Write operations could cause memory corruption. In some cases, an adversary can modify control data such as return addresses in order to execute unexpected code.

Availability

Technical Impact: DoS: Crash, Exit, or Restart

Attempting to access out-of-range, invalid, or unauthorized memory could cause the product to crash.

Other

Technical Impact: Unexpected State

Subsequent write operations can produce undefined or unexpected results.

Frequently Asked Questions

Want to get errata notifications? Sign up here.