FreeRDP vulnerabilities
181 known CVE vulnerabilities in FreeRDP, translated and rated.
- CVE-2026-23732High
FreeRDP before version 3.21.0 has a vulnerability in FastGlyph parsing where data length is not validated against the minimum size implied by cx/cy. A malicious server can trigger a client-side global buffer overflow, causing a crash (DoS).
- CVE-2026-22856High
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 is fixed in 3.20.1.
- CVE-2013-4119High
FreeRDP before 1.1.0-beta+2013071101 allows remote attackers to cause a denial of service (NULL pointer dereference and application crash) by disconnecting before authentication has finished.
- CVE-2013-4118High
FreeRDP before 1.1.0-beta1 allows remote attackers to cause a denial of service via NULL pointer dereference, leading to application crash.
- CVE-2014-0250High
Multiple integer overflows in client/X11/xf_graphics.c in FreeRDP allow remote attackers to have an unspecified impact via the width and height to the xf_Pointer_New or xf_Bitmap_Decompress function, which causes an incorrect amount of memory to be allocated.
- CVE-2026-91949Critical
FreeRDP server versions before 3.31.0 contain a protocol negotiation bypass vulnerability that allows unauthenticated attackers to establish RDSTLS connections despite server policy disabling them. Attackers can send incompatible protocol requests, receive negotiation failures, then complete TLS handshake and enter RDSTLS to bypass pre-authentication transport restrictions.
- CVE-2026-63633Critical
In FreeRDP before 3.28.0, freerdp_dsp_decode_opus calls Stream_EnsureRemainingCapacity on the context buffer even though opus_decode writes to the caller-supplied stream. A malicious RDP server negotiating WAVE_FORMAT_OPUS can cause large decoded frames to be written beyond the allocated buffer, leading to client heap corruption, crash, and potential code execution.
- CVE-2026-55194Critical
In FreeRDP before 3.27.0, rpc_client_recv_fragment ensures response reassembly stream capacity using only the server-declared alloc_hint rather than the actual StubLength. A malicious TS Gateway can send a response with a small alloc_hint and a much larger frag_length, causing a buffer overflow in the pdu->s buffer. This can crash the client and may permit code execution.
- CVE-2026-55191Critical
In FreeRDP before 3.27.0, clients negotiating RDPGFX AVC444 calculate the intermediate YUV444 allocation size using 32-bit multiplication in avc444_ensure_buffer. A malicious RDP server can supply surface dimensions causing integer wrap, leading to an undersized buffer allocation. This can cause a client crash and may permit code execution.
- CVE-2026-73242Critical
FreeRDP, a free implementation of the Remote Desktop Protocol, prior to version 3.30.0 has a vulnerability in the kerberos_DecryptMessage function that fails to bound the peer-controlled GSS Wrap-token EC field before using it with RRC in IOV pointer offsets. A malicious RDP peer can trigger out-of-bounds reads and in-place writes during CredSSP/NLA Kerberos decryption.
- CVE-2026-68579Critical
FreeRDP before 3.30.0 has a heap-based buffer overflow in CliprdrStream_Read. A malicious RDP server can send an oversized response, causing an out-of-bounds write.
- CVE-2026-67289Critical
FreeRDP before version 3.29.0 (affected versions <= 3.28.0) does not validate CRLF and control characters in the server-controlled RDP redirection TargetNetAddress field. This value is copied into the client's ServerHostname and, when the client connects through an HTTP proxy, is written directly into the proxy CONNECT request line and Host header by http_proxy_connect() without filtering. A malicious or compromised RDP server can send a crafted redirection PDU containing embedded control characters to inject arbitrary headers/requests into the HTTP proxy CONNECT request.
- CVE-2026-66402Critical
FreeRDP before version 3.29.0 (affected versions <= 3.28.0) contains multiple TLS certificate identity validation weaknesses in tls_verify_certificate(), tls_match_hostname(), and x509_utils_get_dns_names(). Because FreeRDP performs custom Common Name and DNS SAN string matching instead of using OpenSSL's length-aware identity validation APIs, it (1) truncates DNS SAN values at embedded NUL bytes (accepting e.g. 'victim.example\0.attacker.example' as 'victim.example'), (2) accepts a matching Common Name even when non-matching DNS SAN entries are present, and (3) accepts IP-literal targets via DNS/CN matching without comparing iPAddress SANs. Under a trusted or misissued certificate chain, an attacker positioned to present such a certificate can bypass server identity verification, weakening TLS server authentication.
- CVE-2026-64620Critical
A heap-based buffer overflow in FreeRDP before version 3.28.0 (affected <=3.27.1) in the crypto_rsa_common() function. The function writes the modular exponentiation result to the output buffer before checking bounds, allowing out-of-bounds writes.
- CVE-2026-57158Critical
FreeRDP versions 3.21.0 through 3.27.9 contain an incomplete fix for CVE-2026-23530 in the planar_decompress_plane_rle_only function in planar.c. A malicious RDP server can send a crafted planar RDPGFX_CMDID_WIRETOSURFACE_1 payload that reads one byte past the input buffer.
- CVE-2026-57156Critical
In 32-bit builds of FreeRDP prior to 3.28.0, an integer overflow occurs in the update_read_delta_points function in libfreerdp/core/orders.c. A malicious RDP server can exploit this to allocate an undersized heap buffer and write beyond its bounds.
- CVE-2026-45700Critical
FreeRDP prior to 3.26.0 has an out-of-bounds heap write in the planar bitmap decoder. An attacker can bypass coordinate validation and write past the internal buffer.
- CVE-2026-31806Critical
In FreeRDP prior to 3.24.0, the gdi_surface_bits() function fails to properly validate bmp.width and bmp.height values from the RDP server. A malicious server can supply crafted values exceeding the surface size, causing a heap buffer overflow during bitmap decoding. The attacker controls pixel data, potentially allowing overwriting adjacent heap memory.
- CVE-2026-23884Critical
In FreeRDP prior to version 3.21.0, offscreen bitmap deletion leaves `gdi->drawing` pointing to freed memory, causing a use-after-free (UAF) when related update packets arrive. A malicious server can trigger this client-side vulnerability, causing a crash (DoS) and potential heap corruption with code-execution risk.
- CVE-2026-23883Critical
In FreeRDP prior to version 3.21.0, the `xf_Pointer_New` function frees `cursorPixels` on failure, then `pointer_free` calls `xf_Pointer_Free` which frees it again, triggering an ASan-detected use-after-free. A malicious server can trigger a client-side use after free, causing a crash (DoS) and potential heap corruption with code-execution risk depending on allocator behavior and surrounding heap layout.
- CVE-2026-23534Critical
In FreeRDP 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.
- CVE-2026-23533Critical
In FreeRDP prior to version 3.21.0, a client-side heap buffer overflow exists in the RDPGFX ClearCodec decode path. Maliciously crafted residual data causes out-of-bounds writes during color output, potentially leading to a crash and code execution.
- CVE-2026-23532Critical
In FreeRDP prior to version 3.21.0, a client-side heap buffer overflow exists in the `gdi_SurfaceToSurface` path due to a mismatch between destination rectangle clamping and the actual copy size. This can cause a crash and potential heap corruption with code-execution risk.
- CVE-2026-23531Critical
In FreeRDP 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-bounds read/write via crafted RDPGFX surface updates. A malicious server can trigger a client-side heap buffer overflow, causing a crash (DoS) and potential heap corruption with code-execution risk.
- CVE-2026-23530Critical
In FreeRDP prior to version 3.21.0, the `freerdp_bitmap_decompress_planar` function does not validate `nSrcWidth`/`nSrcHeight` against `planar->maxWidth`/`maxHeight` before RLE decode. A malicious server can trigger a client-side heap buffer overflow, causing a crash (DoS) and potential heap corruption with code-execution risk.
- CVE-2026-22859Critical
In FreeRDP prior to version 3.20.1, a vulnerability exists due to missing bounds checking on server-supplied MSUSB_INTERFACE_DESCRIPTOR values. The URBDRC client uses these values as indices in libusb_udev_complete_msconfig_setup, causing an out-of-bounds read.
- CVE-2026-22858Critical
In FreeRDP before version 3.20.1, a global buffer overflow was observed in the Base64 decoding path. The root cause is implementation-defined char signedness: on Arm/AArch64 builds, plain char is treated as unsigned, so the guard c <= 0 can be optimized into a simple c != 0 check, allowing non-ASCII bytes (0x80-0xFF) to bypass the intended range restriction and be used as an index into a global lookup table, causing out-of-bounds access.
- CVE-2026-22857Critical
FreeRDP before version 3.20.1 contains a use-after-free vulnerability in the irp_thread_func function. The IRP object is freed by irp->Complete() and then accessed again on the error path, potentially leading to memory corruption.
- CVE-2026-22855Critical
In FreeRDP prior to 3.20.1, a heap out-of-bounds read vulnerability exists in the smartcard SetAttrib path when cbAttrLen does not match the actual NDR buffer length.
- CVE-2026-22854Critical
FreeRDP before version 3.20.1 contains a heap-buffer-overflow vulnerability in drive read. A server-controlled read length is used without a hard upper bound, allowing an oversized read to overwrite heap memory.
- CVE-2026-22853Critical
In FreeRDP prior to version 3.20.1, a vulnerability exists due to missing bounds checking on the element count in the NDR array reader of the RDPEAR protocol. An attacker can exploit this to write beyond the allocated heap buffer, causing a heap buffer overflow in the ndr_read_uint8Array function.
- CVE-2026-22852Critical
FreeRDP before version 3.20.1 contains a heap-buffer-overflow write vulnerability when processing Audio Input (AUDIN) format lists. audin_process_formats reuses callback->formats_count across multiple PDUs and writes past the newly allocated array, causing memory corruption and a crash.
- CVE-2025-68118Critical
FreeRDP before version 3.20.0 contains a vulnerability in certificate handling on Windows platforms. The function freerdp_certificate_data_hash_uses uses the Microsoft-specific _snprintf to format certificate cache filenames without guaranteeing NUL termination, which when an attacker controls the hostname can lead to a heap-based out-of-bounds read.
- CVE-2026-114047Medium
FreeRDP from 2.0.0 before 3.32.0 contains an improper certificate validation vulnerability in its proxy that accepts untrusted target TLS certificates when no verification module is configured. Network-positioned attackers can intercept the proxy's outbound connection and present a self-signed, wrong-hostname certificate to impersonate the RDP target and receive proxied session data.
- CVE-2026-114046Medium
FreeRDP 3.0.0 before 3.32.0 contains a null-pointer dereference in the smartcard emulation backend that accepts a null per-reader name in SCardGetStatusChange requests. A malicious RDP server can send a crafted reader-state entry with a null szReader, causing strcmp or _wcscmp to crash the client process.
- CVE-2026-114045High
FreeRDP before 3.32.1 contains a heap-based buffer overflow in the server-side rdpsnd channel because an integer wraparound in rdpsnd_server_select_format() DVI_ADPCM block-alignment arithmetic bypasses validation. A malicious RDP client can send two SNDC_FORMATS PDUs with an nBlockAlign too small for nChannels, causing an unbounded heap write during server audio playback, potentially enabling code execution.
- CVE-2026-114044Medium
FreeRDP before 3.32.1 contains a heap out-of-bounds read vulnerability in the Android client that allows malicious RDP servers to read beyond surface buffers by supplying unvalidated mappedWidth and mappedHeight values. Attackers can send a crafted RDPGFX_MAP_SURFACE_TO_WINDOW_PDU with oversized dimensions, causing android_UpdateWindowFromSurface to copy heap memory beyond the allocation, leading to crashes or memory disclosure.
- CVE-2026-114043Medium
FreeRDP before 3.32.1 contains a heap-based out-of-bounds read in WinPR's clipboard PNG-to-CF_DIB synthesis because winpr_read_png_from_buffer() allocates a bit-packed buffer for PNGs with bit depth below 8, while winpr_bitmap_write_buffer() copies rows assuming one byte per pixel. A malicious RDP server can send a crafted low-bit-depth PNG clipboard payload that, when pasted by the victim, discloses megabytes of heap memory.
- CVE-2026-114042Medium
FreeRDP 3.32.0 contains a use-after-free vulnerability in the drdynvc channel that frees a pool-owned stream with the owned-stream deallocator when totalLength is smaller than the chunk size. A malicious RDP server can send a single well-formed Virtual Channel PDU to trigger the free and crash the client during teardown.
- CVE-2026-114041Medium
FreeRDP before 3.32.1 on Windows contains a heap out-of-bounds read in client_cli_present_gateway_message that passes a byte count as wide-character printf precision. A malicious RD Gateway can send pre-authentication consent or service messages, causing the client to read twice the buffer size, leaking heap memory or crashing.
- CVE-2026-111881High
FreeRDP from 3.14.1 before 3.32.0 contains an integer underflow in the WinPR BMP writer, where a mismatched stride calculation passes SIZE_MAX - 3 to Stream_Zero for sub-byte images. A malicious RDP clipboard peer can return a crafted 1-bpp BMP processed by clipboard_synthesize_image_format_to_bmp for CF_DIB/CF_DIBV5, crashing the client or causing an out-of-bounds write.
- CVE-2026-111880High
FreeRDP versions from 2.0.0 before 3.32.0 contain a heap out-of-bounds write in the server hash-callback NTLM path that fails to validate the MIC offset. Unauthenticated attackers can send a crafted AUTHENTICATE_MESSAGE with a backward session-key offset and MIC offset to write 16 zero bytes beyond the allocation.
- CVE-2026-111382High
FreeRDP before 3.32.0 contains a client-side heap out-of-bounds write vulnerability in general_LumaToYUV444 and general_ChromaV2ToYUV444. A malicious RDP server can send RDPGFX AVC444 or AVC444v2 frames with odd-height region rects ending at surface height, causing writes past the U/V planes.
- CVE-2026-111381High
FreeRDP before 3.32.0 contains a heap buffer overflow vulnerability in persistent_cache_read_entry_v2. A local attacker can corrupt heap memory via integer wraparound in bitmap size calculation by supplying a crafted v2 persistent cache file with oversized width and height values.
- CVE-2026-111380High
FreeRDP from 3.29.0 before 3.32.0 contains an integer overflow in the Apple audin backends (audin_mac.m, audin_ios.m). The audio queue buffer size is computed as FramesPerPacket * 2 * nChannels in UINT32 arithmetic, bypassing the CVE-2026-91962 fix. A malicious RDP server can send FramesPerPacket of 2^30 in the audin Open PDU, causing the multiplication to wrap and undersized AudioQueueAllocateBuffer allocations, leading to a heap out-of-bounds write in macOS and iOS clients.
- CVE-2026-111379High
FreeRDP before 3.32.0 contains a heap buffer overflow vulnerability in persistent_cache_read_entry_v3. A local attacker can corrupt memory by supplying a crafted v3 persistent cache file with large width and height values that wrap the size calculation in persist_cache_get_data, causing fread to overflow an undersized buffer.
- CVE-2026-111378High
FreeRDP from 3.0.0 before 3.32.0 contains an uncontrolled resource consumption vulnerability in parse_nla_mode_pdu. An unauthenticated attacker can exhaust server memory by completing TLS and streaming bytes not beginning with the DER SEQUENCE tag 0x30, causing unbounded receive buffer growth before NLA authentication.
- CVE-2026-111377Medium
FreeRDP from 2.0.0 before 3.32.0 contains an unbounded reassembly vulnerability in WTSProcessChannelData that fails to enforce cumulative fragment limits. Authenticated clients can start a static virtual channel message, withhold the LAST flag, and send endless fragments to exhaust server memory.
- CVE-2026-111376Medium
FreeRDP from 3.30.0 before 3.32.0 contains a heap out-of-bounds read vulnerability in the Windows client's CliprdrStream_New that allows malicious RDP servers to trigger invalid memory reads via short clipboard responses. Attackers can answer a FILECONTENTS_SIZE request with a cbRequested of fewer than eight bytes when a user pastes a remote file.
- CVE-2026-111375Medium
FreeRDP from 3.0.0 before 3.32.0 contains an out-of-bounds read vulnerability in the Windows RAIL client. A malicious RDP server can send a non-NUL-terminated window title, causing heap over-reads, title corruption, or client crashes.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

