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 Hat | NVD | cve.org | |
|---|---|---|---|
| Base Score | 8.8 | N/A | 7.5 |
| Attack Vector | Network | N/A | Network |
| Attack Complexity | Low | N/A | Low |
| Privileges Required | None | N/A | None |
| User Interaction | Required | N/A | None |
| Scope | Unchanged | N/A | Unchanged |
| Confidentiality | High | N/A | None |
| Integrity Impact | High | N/A | None |
| Availability Impact | High | N/A | High |
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
Not sure what something means? Check out our Security Glossary.
Want to get errata notifications? Sign up here.