Skip to main content
Vulnerability Database/CVE-2026-111382

CVE-2026-111382: FreeRDP Buffer Overflow Vulnerability

CVE-2026-111382 is a buffer overflow flaw in FreeRDP that enables malicious servers to corrupt client memory through crafted frames. This post explains its technical details, affected versions, and mitigation steps.

Published:

CVE-2026-111382 Overview

CVE-2026-111382 is a client-side heap out-of-bounds write vulnerability [CWE-787] in FreeRDP versions prior to 3.32.0. The flaw resides in the general_LumaToYUV444 and general_ChromaV2ToYUV444 functions used to process RemoteFX Graphics Pipeline (RDPGFX) AVC444 and AVC444v2 video frames. A malicious Remote Desktop Protocol (RDP) server can send crafted frames with odd-height region rectangles ending at the surface height, causing the client to write past the U and V plane buffers. The resulting heap corruption can lead to arbitrary code execution on the connecting client.

Critical Impact

A malicious RDP server can corrupt FreeRDP client heap memory and potentially execute code when a user connects to it.

Affected Products

  • FreeRDP versions prior to 3.32.0
  • Applications and distributions bundling vulnerable FreeRDP libraries
  • RDP clients built on libfreerdp for Linux, macOS, and Windows

Discovery Timeline

  • 2026-10-16 - CVE-2026-111382 published to NVD
  • 2026-10-20 - Last updated in NVD database

Technical Details for CVE-2026-111382

Vulnerability Analysis

FreeRDP implements AVC444 and AVC444v2 video decoding to support the RDPGFX H.264 streaming extension. The general_LumaToYUV444 and general_ChromaV2ToYUV444 routines combine luma and chroma planes into a full YUV444 surface for rendering. These functions assume region rectangles align to even-height boundaries when writing chroma samples to the U and V planes.

When a server supplies a region rectangle whose height is odd and whose bottom edge coincides with the surface height, the chroma combine logic computes an output offset that extends one row beyond the allocated U and V plane buffers. The function then writes attacker-controlled pixel data to that location, producing a linear heap out-of-bounds write.

Root Cause

The root cause is missing boundary validation on the region rectangle height before computing chroma plane write offsets. The code paths treat the lower edge of the rectangle as valid without verifying that the derived chroma row index stays within the allocated U/V plane dimensions. Odd-height rectangles ending at surface height bypass the implicit even-row assumption used by the YUV444 combine math.

Attack Vector

Exploitation requires a victim to initiate an RDP connection to an attacker-controlled server. The attack vector is network-based and requires user interaction to establish the session. Once connected, the malicious server negotiates the RDPGFX dynamic virtual channel and advertises AVC444 or AVC444v2 codec support. The server then transmits crafted H.264 frames paired with region rectangles of odd height that terminate at the surface boundary. The FreeRDP client processes the frames and writes beyond the U/V plane allocations, corrupting adjacent heap metadata or object pointers. Attackers can leverage this primitive to influence control flow and potentially achieve code execution in the client process context.

No public proof-of-concept exploit is available at the time of publication. Refer to the FreeRDP GitHub Security Advisory GHSA-f4pf-pgp4-f2r3 and the VulnCheck Advisory on FreeRDP for additional technical detail.

Detection Methods for CVE-2026-111382

Indicators of Compromise

  • FreeRDP client process crashes or heap corruption aborts during or shortly after an RDP session connection
  • RDP sessions to untrusted or unexpected destination hosts, especially on non-standard TCP ports
  • RDPGFX AVC444 or AVC444v2 codec negotiation followed by immediate client termination or anomalous child process creation

Detection Strategies

  • Inventory endpoints and server workloads for FreeRDP installations and library versions below 3.32.0
  • Monitor process telemetry for unexpected child processes spawned by FreeRDP client binaries such as xfreerdp or wlfreerdp
  • Correlate outbound TCP 3389 connections from workstations with user-initiated RDP activity to identify suspicious destinations

Monitoring Recommendations

  • Enable heap integrity checks and crash reporting on hosts running FreeRDP to capture exploitation attempts
  • Log RDP client connection destinations and alert on connections to IP addresses outside sanctioned ranges
  • Review EDR telemetry for memory access violations originating in libfreerdp modules

How to Mitigate CVE-2026-111382

Immediate Actions Required

  • Upgrade FreeRDP to version 3.32.0 or later on all affected clients and bundled applications
  • Restrict outbound RDP connectivity from end-user workstations to approved internal destinations only
  • Instruct users not to initiate RDP sessions to untrusted or unknown servers until patching is complete

Patch Information

The FreeRDP project addressed the issue in release 3.32.0. Patch details and backport guidance are published in the FreeRDP GitHub Security Advisory GHSA-f4pf-pgp4-f2r3. Downstream Linux distributions and applications embedding libfreerdp should rebuild against the fixed version.

Workarounds

  • Disable the RDPGFX AVC444 and AVC444v2 codecs on FreeRDP clients where configuration options permit
  • Use network segmentation and egress filtering to block RDP traffic to untrusted external hosts
  • Prefer RDP sessions to known, authenticated enterprise servers until all clients are patched
bash
# Example: disable graphics pipeline and AVC codecs when launching xfreerdp
xfreerdp /v:<server> /gfx:off /gfx-h264:off

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.