CVE-2026-26955

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.
Configurations

Configuration 1 (hide)

cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:*

History

27 Feb 2026, 14:50

Type Values Removed Values Added
First Time Freerdp
Freerdp freerdp
References () https://github.com/FreeRDP/FreeRDP/commit/7d8fdce2d0ef337cb86cb37fc0c436c905e04d77 - () https://github.com/FreeRDP/FreeRDP/commit/7d8fdce2d0ef337cb86cb37fc0c436c905e04d77 - Patch
References () https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-mr6w-ch7c-mqqj - () https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-mr6w-ch7c-mqqj - Exploit, Mitigation, Patch, Vendor Advisory
CPE cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:*

27 Feb 2026, 14:06

Type Values Removed Values Added
Summary
  • (es) FreeRDP es una implementación gratuita del Protocolo de Escritorio Remoto. Antes de la versión 3.23.0, un servidor RDP malicioso puede desencadenar un desbordamiento de búfer de montón en clientes FreeRDP que utilizan la tubería de superficie GDI (por ejemplo, 'xfreerdp') enviando un comando de superficie RDPGFX ClearCodec con un rectángulo de destino fuera de límites. El gestor 'gdi_SurfaceCommand_ClearCodec()' no llama a 'is_within_surface()' para validar el rectángulo del comando contra las dimensiones de la superficie de destino, permitiendo que 'cmd->left'/'cmd->top' (y los desplazamientos del rectángulo del subcódec) controlados por el atacante alcancen rutinas de copia de imagen que escriben en 'surface->data' sin aplicación de límites. La escritura OOB corrompe el puntero 'codecs*' de una estructura 'gdiGfxSurface' adyacente con datos de píxeles controlados por el atacante, y la corrupción de 'codecs*' es suficiente para alcanzar una llamada a puntero de función indirecta ('NSC_CONTEXT.decode' en 'nsc.c:500') en un comando de códec subsiguiente — control total del puntero de instrucción (RIP) demostrado en el arnés de explotabilidad. Los usuarios deben actualizar a la versión 3.23.0 para recibir un parche.

25 Feb 2026, 21:16

Type Values Removed Values Added
New CVE

Information

Published : 2026-02-25 21:16

Updated : 2026-02-27 14:50


NVD link : CVE-2026-26955

Mitre link : CVE-2026-26955

CVE.ORG link : CVE-2026-26955


JSON object : View

Products Affected

freerdp

  • freerdp
CWE
CWE-787

Out-of-bounds Write