CVE-2026-91946 in FreeRDPinfo

Summary

by MITRE • 09/15/2026

FreeRDP versions before 3.31.0 contain an information disclosure vulnerability in the RDPGFX server's ResetGraphics PDU serializer that fails to initialize padding bytes in the fixed 340-byte wire format. Attackers can receive uninitialized heap memory including live pointers and GLib function addresses transmitted in the PDU, defeating heap ASLR and disclosing the GLib module base address.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Analysis

by VulDB Data Team • 09/15/2026

The vulnerability identified in FreeRDP versions prior to 3.31.0 represents a critical information disclosure flaw within the Remote Desktop Graphics (RDPGFX) server implementation. Specifically, this issue resides in the serializer for the ResetGraphics Protocol Data Unit (PDU). The RDP protocol is designed to transmit graphical updates from a remote host to a client machine, and efficient serialization of these data structures is essential for performance and correctness. In this specific instance, the software constructs a fixed-size wire format buffer that includes padding bytes intended to align data or fill unused space in the packet structure. However, the implementation fails to explicitly initialize these padding regions with zeros or other deterministic values before transmission. This oversight results in the inclusion of whatever residual data previously occupied those memory locations on the server's heap into the outgoing network stream.

From a technical perspective, this constitutes an uninitialized variable vulnerability where sensitive kernel or user-space memory contents are inadvertently exposed over the network interface. Because the padding bytes are drawn from the heap without prior clearing, they may contain remnants of previous allocations. These remnants can include live pointers to other objects in memory, stack addresses, and crucially, function addresses associated with dynamically linked libraries such as GLib. The transmission of these raw memory contents allows a remote attacker who is connected to or interacting with the vulnerable FreeRDP server instance to capture this data through standard network sniffing tools or by analyzing the structured PDU responses received from the server.

The operational impact of this vulnerability extends beyond simple information leakage, as it serves as a powerful enabler for further exploitation techniques. By obtaining live pointers and GLib function addresses, an attacker can effectively defeat Address Space Layout Randomization (ASLR). ASLR is a fundamental security mechanism that randomizes the memory locations of key program components to prevent attackers from predicting code execution points. With knowledge of the base address of the GLib module and other heap layouts, an attacker can calculate the precise location of executable code within the process space. This significantly lowers the barrier for executing arbitrary code or bypassing other memory corruption protections that rely on unpredictability of memory addresses.

This vulnerability aligns with Common Weakness Enumeration (CWE) category CWE-200: Exposure of Sensitive Information to an Unauthorized Actor, and more specifically reflects characteristics of CWE-908: Use of Uninitialized Resource. In the context of the MITRE ATT&CK framework, this behavior facilitates reconnaissance activities by allowing adversaries to gather information about the target system's memory layout and library versions. Such intelligence is often a precursor to privilege escalation or remote code execution attacks, particularly when combined with other vulnerabilities that allow for heap corruption or arbitrary write primitives. The disclosure of GLib addresses specifically aids in constructing reliable exploit chains against applications relying on this widely used C utility library.

Mitigation strategies primarily involve upgrading the FreeRDP installation to version 3.31.0 or later, where the serialization logic has been corrected to properly initialize all padding bytes before they are transmitted over the network. For environments where immediate patching is not feasible due to compatibility constraints, temporary mitigations may include restricting access to the RDP service through strict firewall rules and network segmentation to limit exposure to untrusted networks. Additionally, deploying intrusion detection systems that monitor for anomalous patterns in PDU sizes or unexpected data structures might help identify exploitation attempts, although this is less effective against standard protocol-compliant traffic. Ensuring that all dependencies are updated alongside the core application helps maintain a consistent security posture and reduces the attack surface associated with third-party library vulnerabilities.

Responsible

VulnCheck

Reservation

09/15/2026

Disclosure

09/15/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Interested in the pricing of exploits?

See the underground prices here!