Cyber Posture

CVE-2026-31806

CriticalPublic PoC

Published: 13 March 2026

Published
13 March 2026
Modified
17 March 2026
KEV Added
Patch
CVSS Score 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
EPSS Score 0.0003 8.7th percentile
Risk Priority 20 60% EPSS · 20% KEV · 20% CVSS

Summary

CVE-2026-31806 is a critical-severity Heap-based Buffer Overflow (CWE-122) vulnerability in Freerdp Freerdp. Its CVSS base score is 9.8 (Critical).

Operationally, exploitation aligns with the MITRE ATT&CK technique Exploitation for Client Execution (T1203); ranked at the 8.7th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.

The strongest mitigations our analysis identified are NIST 800-53 SI-10 (Information Input Validation) and SI-2 (Flaw Remediation).

Threat & Defense at a Glance

What attackers do: exploitation maps to Exploitation for Client Execution (T1203). What defenders deploy: see the NIST 800-53 controls recommended below.
Threat & Defense Details

Mitigating Controls (NIST 800-53 r5)AI

prevent

SI-2 requires timely flaw remediation, directly mitigating this CVE by updating FreeRDP to version 3.24.0 where bounds checking for bmp.width and bmp.height is fixed.

prevent

SI-10 mandates validation of information inputs like bmp.width and bmp.height against expected surface dimensions, preventing the heap buffer overflow from unvalidated server-provided values.

prevent

SI-16 provides memory protections such as non-executable heap and ASLR to mitigate exploitation of the heap buffer overflow even if input validation fails.

MITRE ATT&CK Enterprise TechniquesAI

T1203 Exploitation for Client Execution Execution
Adversaries may exploit software vulnerabilities in client applications to execute code.
Why these techniques?

Heap buffer overflow in FreeRDP client (gdi_surface_bits) triggered by malicious RDP server sending crafted SURFACE_BITS_COMMAND/NSCodec data, directly enabling remote code execution on victim client with no auth/UI required.

Confidence: HIGH · MITRE ATT&CK Enterprise v18.1

NVD Description

FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.24.0, the gdi_surface_bits() function processes SURFACE_BITS_COMMAND messages sent by the RDP server. When the command is handled using NSCodec, the bmp.width and bmp.height values provided by the server…

more

are not properly validated against the actual desktop dimensions. A malicious RDP server can supply crafted bmp.width and bmp.height values that exceed the expected surface size. Because these values are used during bitmap decoding and memory operations without proper bounds checking, this can lead to a heap buffer overflow. Since the attacker can also control the associated pixel data transmitted by the server, the overflow may be exploitable to overwrite adjacent heap memory. This vulnerability is fixed in 3.24.0.

Deeper analysisAI

CVE-2026-31806 is a heap buffer overflow vulnerability in FreeRDP, a free implementation of the Remote Desktop Protocol, affecting versions prior to 3.24.0. The flaw occurs in the gdi_surface_bits() function when processing SURFACE_BITS_COMMAND messages sent by the RDP server using NSCodec. The bmp.width and bmp.height values provided by the server are not properly validated against the actual desktop dimensions, enabling a malicious server to supply crafted values that exceed the expected surface size. This leads to improper bounds checking during bitmap decoding and memory operations, classified under CWE-122 with a CVSS score of 9.8 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H).

A remote attacker controlling a malicious RDP server can exploit this vulnerability when a victim client connects to it. By sending oversized bmp.width and bmp.height values along with controlled pixel data, the attacker triggers a heap buffer overflow, allowing overwrite of adjacent heap memory. This may enable arbitrary code execution or other severe impacts, requiring no authentication or user interaction from the victim.

The vulnerability is addressed in FreeRDP version 3.24.0. Mitigation involves updating to 3.24.0 or later. Details are available in the fix commit at https://github.com/FreeRDP/FreeRDP/commit/83d9aedea278a74af3e490ff5eeb889c016dbb2b and the GitHub security advisory at https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-rrqm-46rj-cmx2.

Details

CWE(s)

Affected Products

freerdp
freerdp
≤ 3.24.0

CVEs Like This One

CVE-2026-23533Same product: Freerdp Freerdp
CVE-2026-23532Same product: Freerdp Freerdp
CVE-2026-23531Same product: Freerdp Freerdp
CVE-2026-23530Same product: Freerdp Freerdp
CVE-2026-23534Same product: Freerdp Freerdp
CVE-2026-22854Same product: Freerdp Freerdp
CVE-2026-33986Same product: Freerdp Freerdp
CVE-2026-33984Same product: Freerdp Freerdp
CVE-2026-33987Same product: Freerdp Freerdp
CVE-2026-31883Same product: Freerdp Freerdp

References