CyberSecBulletin

FreeRDP vulnerabilities

We track 156 vulnerabilities in FreeRDP products. 156 are rated high or critical, and none are known to be exploited. The most recent was published on November 4, 2026.

156vulnerabilities
63critical
93high
0exploited
8.5average CVSS score

Latest FreeRDP vulnerabilities

  • 8.2 High severity

    FreeRDP: Out-of-bounds Write

    CVE-2026-29774FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.24.0, a client-side heap buffer overflow occurs in the FreeRDP client's AVC420/AVC444 YUV-to-RGB conversion path due to missing horizontal bounds validation of H.264 metablock regionRe

  • 7.5 High severity

    FreeRDP: Integer Overflow or Wraparound

    CVE-2026-27951FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, the function `Stream_EnsureCapacity` can create an endless blocking loop. This may affect all client and server implementations using `FreeRDP`. For practical exploitatio

  • 7.5 High severity

    FreeRDP: Use After Free

    CVE-2026-27950FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, the fix for the heap-use-after-free described in CVE-2026-24680 is incomplete. While the vulnerable execution flow referenced in the advisory exists in the SDL2 implement

  • 7.5 High severity

    FreeRDP: Use After Free

    CVE-2026-26986FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, `rail_window_free` dereferences a freed `xfAppWindow` pointer during `HashTable_Free` cleanup because `xf_rail_window_common` calls `free(appWindow)` on title allocation

  • 8.8 High severity

    FreeRDP: Out-of-bounds Write

    CVE-2026-26965FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, in the RLE planar decode path, `planar_decompress_plane_rle()` writes into `pDstData` at `((nYDst+y) * nDstStep) + (4*nXDst) + nChannel` without verifying that `(nYDst+nS

  • 8.8 High severity

    FreeRDP: Out-of-bounds Write

    CVE-2026-26955FreeRDP

    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 com

  • 9.8 Critical severity

    FreeRDP: Use After Free

    CVE-2026-25997FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, `xf_clipboard_format_equal` reads freed `lastSentFormats` memory because `xf_clipboard_formats_free` (called from the cliprdr channel thread during auto-reconnect) frees

  • 9.8 Critical severity

    FreeRDP: Use After Free

    CVE-2026-25959FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, `xf_cliprdr_provide_data_` passes freed `pDstData` to `XChangeProperty` because the cliprdr channel thread calls `xf_cliprdr_server_format_data_response` which converts a

  • 9.8 Critical severity

    FreeRDP: Use After Free

    CVE-2026-25955FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, `xf_AppUpdateWindowFromSurface` reuses a cached `XImage` whose `data` pointer references a freed RDPGFX surface buffer, because `gdi_DeleteSurface` frees `surface->data`

  • 7.5 High severity

    FreeRDP: Use After Free

    CVE-2026-25954FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, `xf_rail_server_local_move_size` dereferences a freed `xfAppWindow` pointer because `xf_rail_get_window` returns an unprotected pointer from the `railWindows` hash table,

  • 9.8 Critical severity

    FreeRDP: Use After Free

    CVE-2026-25953FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, `xf_AppUpdateWindowFromSurface` reads from a freed `xfAppWindow` because the RDPGFX DVC thread obtains a bare pointer via `xf_rail_get_window` without any lifetime protec

  • 9.8 Critical severity

    FreeRDP: Use After Free

    CVE-2026-25952FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, `xf_SetWindowMinMaxInfo` dereferences a freed `xfAppWindow` pointer because `xf_rail_get_window` in `xf_rail_server_min_max_info` returns an unprotected pointer from the

  • 7.5 High severity

    FreeRDP: Out-of-bounds Read

    CVE-2026-25942FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, `xf_rail_server_execute_result` indexes the global `error_code_names[]` array (7 elements, indices 0–6) with an unchecked `execResult->execResult` value received from the

  • 8.1 High severity

    FreeRDP is a free implementation of the Remote Desktop Protocol.

    CVE-2026-25941FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Versions on the 2.x branch prior to to 2.11.8 and on the 3.x branch prior to 3.23.0 have an out-of-bounds read vulnerability in the FreeRDP client's RDPGFX channel that allows a malicious RDP ser

  • 7.5 High severity

    FreeRDP: Use After Free

    CVE-2026-24684FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.22.0, the RDPSND async playback thread can process queued PDUs after the channel is closed and internal state is freed, leading to a use after free in rdpsnd_treat_wave. This vulnerabi

  • 7.5 High severity

    FreeRDP: Use After Free

    CVE-2026-24683FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. ainput_send_input_event caches channel_callback in a local variable and later uses it without synchronization; a concurrent channel close can free or reinitialize the callback, leading to a use a

  • 7.5 High severity

    FreeRDP: Heap-based Buffer Overflow

    CVE-2026-24682FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.22.0, audin_server_recv_formats frees an incorrect number of audio formats on parse failure (i + i), leading to out-of-bounds access in audio_formats_free. This vulnerability is fixed

  • 7.5 High severity

    FreeRDP: Use After Free

    CVE-2026-24681FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.22.0, aAsynchronous bulk transfer completions can use a freed channel callback after URBDRC channel close, leading to a use after free in urb_write_completion. This vulnerability is fi

  • 7.5 High severity

    FreeRDP: Use After Free

    CVE-2026-24680FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.22.0, sdl_Pointer_New frees data on failure, then pointer_free calls sdl_Pointer_Free and frees it again, triggering ASan UAF. This vulnerability is fixed in 3.22.0.

  • 9.1 Critical severity

    FreeRDP: Heap-based Buffer Overflow

    CVE-2026-24679FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.22.0, The URBDRC client uses server-supplied interface numbers as array indices without bounds checks, causing an out-of-bounds read in libusb_udev_select_interface. This vulnerability

  • 7.5 High severity

    FreeRDP: Use After Free

    CVE-2026-24678FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.22.0, A capture thread sends sample responses using a freed channel callback after a device channel close, leading to a use after free in ecam_channel_write. This vulnerability is fixe

  • 9.1 Critical severity

    FreeRDP: Use After Free

    CVE-2026-24677FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.22.0, ecam_encoder_compress_h264 trusts server-controlled dimensions and does not validate the source buffer size, leading to an out-of-bounds read in sws_scale. This vulnerability is

  • 7.5 High severity

    FreeRDP: Use After Free

    CVE-2026-24676FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.22.0, AUDIN format renegotiation frees the active format list while the capture thread continues using audin->format, leading to a use after free in audio_format_compatible. This vulne

  • 7.5 High severity

    FreeRDP: Use After Free

    CVE-2026-24675FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.22.0, urb_select_interface can free the device's MS config on error but later code still dereferences it, leading to a use after free in libusb_udev_select_interface. This vulnerabilit

  • 7.5 High severity

    FreeRDP: Use After Free

    CVE-2026-24491FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.22.0, video_timer can send client notifications after the control channel is closed, dereferencing a freed callback and triggering a use after free. This vulnerability is fixed in 3.22

  • 7.5 High severity

    FreeRDP: NULL Pointer Dereference

    CVE-2026-23948FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.22.0, a NULL pointer dereference vulnerability in rdp_write_logon_info_v2() allows a malicious RDP server to crash FreeRDP proxy by sending a specially crafted LogonInfoV2 PDU with cbD

  • 9.8 Critical severity

    FreeRDP: Use After Free

    CVE-2026-23884FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.21.0, offscreen bitmap deletion leaves `gdi->drawing` pointing to freed memory, causing UAF when related update packets arrive. A malicious server can trigger a client‑side use

  • 9.8 Critical severity

    FreeRDP: Use After Free

    CVE-2026-23883FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.21.0, `xf_Pointer_New` frees `cursorPixels` on failure, then `pointer_free` calls `xf_Pointer_Free` and frees it again, triggering ASan UAF. A malicious server can trigger a cl

  • 7.5 High severity

    FreeRDP: Heap-based Buffer Overflow

    CVE-2026-23732FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.21.0, FastGlyph parsing trusts `cbData`/remaining length and never validates against the minimum size implied by `cx/cy`. A malicious server can trigger a client‑side global bu

  • 9.8 Critical severity

    FreeRDP: Heap-based Buffer Overflow

    CVE-2026-23534FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.21.0, a client-side heap buffer overflow occurs in the ClearCodec bands decode path when crafted band coordinates allow writes past the end of the destination surface buffer. A

  • 9.8 Critical severity

    FreeRDP: Heap-based Buffer Overflow

    CVE-2026-23533FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.21.0, a client-side heap buffer overflow occurs in the RDPGFX ClearCodec decode path when maliciously crafted residual data causes out-of-bounds writes during color output. A m

  • 9.8 Critical severity

    FreeRDP: Heap-based Buffer Overflow

    CVE-2026-23532FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.21.0, a client-side heap buffer overflow occurs in the FreeRDP client’s `gdi_SurfaceToSurface` path due to a mismatch between destination rectangle clamping and the actual copy

  • 9.8 Critical severity

    FreeRDP: Heap-based Buffer Overflow

    CVE-2026-23531FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.21.0, in ClearCodec, when `glyphData` is present, `clear_decompress` calls `freerdp_image_copy_no_overlap` without validating the destination rectangle, allowing an out-of-boun

  • 9.8 Critical severity

    FreeRDP: Heap-based Buffer Overflow

    CVE-2026-23530FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.21.0,`freerdp_bitmap_decompress_planar` does not validate `nSrcWidth`/`nSrcHeight` against `planar->maxWidth`/`maxHeight` before RLE decode. A malicious server can trigger a cl

  • 9.1 Critical severity

    FreeRDP: Out-of-bounds Read

    CVE-2026-22859FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.20.1, the URBDRC client does not perform bounds checking on server‑supplied MSUSB_INTERFACE_DESCRIPTOR values and uses them as indices in libusb_udev_complete_msconfig_setup, causing a

  • 9.1 Critical severity

    FreeRDP: Out-of-bounds Read

    CVE-2026-22858FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.20.1, global-buffer-overflow was observed in FreeRDP's Base64 decoding path. The root cause appears to be implementation-defined char signedness: on Arm/AArch64 builds, plain char is t

  • 9.8 Critical severity

    FreeRDP: Use After Free

    CVE-2026-22857FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.20.1, a heap use-after-free occurs in irp_thread_func because the IRP is freed by irp->Complete() and then accessed again on the error path. This vulnerability is fixed in 3.20.1.

  • 8.1 High severity

    FreeRDP: Concurrent Execution using Shared Resource with Improper Synchronization

    CVE-2026-22856FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.20.1, a race in the serial channel IRP thread tracking allows a heap use‑after‑free when one thread removes an entry from serial->IrpThreads while another reads it. This vulnerability

  • 9.1 Critical severity

    FreeRDP: Out-of-bounds Read

    CVE-2026-22855FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.20.1, a heap out-of-bounds read occurs in the smartcard SetAttrib path when cbAttrLen does not match the actual NDR buffer length. This vulnerability is fixed in 3.20.1.

  • 9.8 Critical severity

    FreeRDP: Heap-based Buffer Overflow

    CVE-2026-22854FreeRDP

    FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.20.1, a heap-buffer-overflow occurs in drive read when a server-controlled read length is used to read file data into an IRP output stream buffer without a hard upper bound, allowing a