CVE Catalog

CVE-2026-26955

HighCVSS 8.8
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.54%

42th percentile - higher than 42% of all known CVEs

Summary

In FreeRDP prior to version 3.23.0, a heap buffer overflow vulnerability exists in clients using the GDI surface pipeline. A malicious RDP server can send an RDPGFX ClearCodec surface command with an out-of-bounds destination rectangle, causing a write beyond allocated memory. This allows overwriting the `codecs*` pointer in the `gdiGfxSurface` structure, leading to arbitrary code execution.

Risk Assessment

The organization is at risk of remote code execution on FreeRDP client machines via a malicious RDP server. An attacker could gain full control of the victim's system, leading to data theft, malware installation, or lateral movement within the network.

Recommendation

Upgrade FreeRDP to version 3.23.0 or later immediately, which includes a fix for this vulnerability. If upgrading is not possible, restrict RDP connections to trusted servers only.

Other vulnerabilities in FreeRDP

See all
Original NVD description (English source)

FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, a malicious RDP server can trigger a heap buffer overflow in FreeRDP clients using the GDI surface pipeline (e.g., `xfreerdp`) by sending an RDPGFX ClearCodec surface command with an out-of-bounds destination rectangle. The `gdi_SurfaceCommand_ClearCodec()` handler does not call `is_within_surface()` to validate the command rectangle against the destination surface dimensions, allowing attacker-controlled `cmd->left`/`cmd->top` (and subcodec rectangle offsets) to reach image copy routines that write into `surface->data` without bounds enforcement. The OOB write corrupts an adjacent `gdiGfxSurface` struct's `codecs*` pointer with attacker-controlled pixel data, and corruption of `codecs*` is sufficient to reach an indirect function pointer call (`NSC_CONTEXT.decode` at `nsc.c:500`) on a subsequent codec command — full instruction pointer (RIP) control demonstrated in exploitability harness. Users should upgrade to version 3.23.0 to receive a patch.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS