CVE-2026-55648 in FreeRDPinfo

Summary

by MITRE • 08/19/2026

FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.27.0, freerdp_image_copy_from_icon_data in libfreerdp/codec/color.c calculates nWidth multiplied by nHeight multiplied by FreeRDPGetBytesPerPixel(format) in 32-bit arithmetic. A malicious RDP server can send a RAIL TS_ICON_INFO update with dimensions such as 32768 by 32768 and 32 bits per pixel so the required-size calculation wraps, bypassing the cbBitsColor source bounds check before freerdp_image_copy_no_overlap reads attacker-controlled icon data. This affects RemoteApp clients using the vulnerable library path, while xfreerdp has a caller-side mitigation. This issue is fixed in version 3.27.0.

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

Analysis

by VulDB Data Team • 08/20/2026

The vulnerability identified in FreeRDP prior to version 3.27.0 represents a critical integer overflow flaw within the image processing subsystem, specifically located in the libfreerdp/codec/color.c module. This component is responsible for handling color data conversions and image copying operations essential for rendering remote desktop sessions. The core technical defect lies in how the library calculates the required buffer size for icon images during the freerdp_image_copy_from_icon_data function execution. When processing a Remote Application (RAIL) TS_ICON_INFO update, the system computes the total byte count by multiplying the width of the image by its height and then by the number of bytes per pixel determined by the current color format. This arithmetic operation is performed using 32-bit signed integers rather than larger data types capable of handling significantly higher values. Consequently, when a malicious Remote Desktop Protocol server provides an icon with dimensions such as 32768 pixels in width and height alongside a standard 32 bits per pixel depth, the resulting multiplication exceeds the maximum value representable by a 32-bit signed integer. This overflow causes the calculated size to wrap around to a small positive number or zero, effectively underestimating the actual memory requirements of the image data.

This miscalculation has severe operational consequences because it directly bypasses critical bounds checking mechanisms designed to prevent buffer overflows. The vulnerability allows an attacker-controlled icon update with excessively large dimensions to pass validation checks that rely on this flawed size calculation. Specifically, the cbBitsColor source bounds check fails to detect the discrepancy between the declared data length and the actual memory footprint required for safe processing. As a result, when the freerdp_image_copy_no_overlap function proceeds to read the attacker-controlled icon data into a pre-allocated buffer based on the underestimated size, it triggers an out-of-bounds write or read operation. This condition can lead to arbitrary code execution if the overflow allows overwriting adjacent memory structures with controlled values, potentially compromising the integrity and confidentiality of the client system hosting the FreeRDP instance. The impact is particularly acute for applications utilizing RemoteApp functionality, as these clients rely heavily on dynamic icon updates and are more exposed to this specific attack vector compared to standard full-session connections.

The mitigation strategy implemented in version 3.27.0 addresses this root cause by ensuring that arithmetic operations involving image dimensions utilize data types with sufficient capacity to prevent overflow under normal or malicious input conditions. Additionally, it is noted that the xfreerdp command-line client possesses a caller-side mitigation that limits exposure to this specific flaw even in older versions, likely through stricter validation of input parameters before they reach the vulnerable codec functions. However, for other clients and libraries linked against the affected FreeRDP components, upgrading to version 3.27.0 or later is mandatory to eliminate the risk. Security practitioners should also consider implementing network-level filtering rules that restrict RAIL TS_ICON_INFO updates from untrusted servers, thereby adding a layer of defense-in-depth beyond software patching. This vulnerability aligns with Common Weakness Enumeration category CWE-190 regarding integer overflow and relates to ATT&CK techniques involving exploitation via client-side vulnerabilities in remote access tools, emphasizing the need for rigorous input validation and safe arithmetic practices in network-facing applications.

Responsible

GitHub M

Reservation

06/17/2026

Disclosure

08/19/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Do you want to use VulDB in your project?

Use the official API to access entries easily!