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+nSrcHeight)` fits in the destination height or that `(nXDst+nSrcWidth)` fits in the destination stride. When `TempFormat != DstFormat`, `pDstData` becomes `planar->pTempData` (sized for the desktop), while `nYDst` is only validated against the **surface** by `is_within_surface()`. A malicious RDP server can exploit this to perform a heap out-of-bounds write with attacker-controlled offset and pixel data on any connecting FreeRDP client. The OOB write reaches up to 132,096 bytes past the temp buffer end, and on the brk heap (desktop ≤ 128×128), an adjacent `NSC_CONTEXT` struct's `decode` function pointer is overwritten with attacker-controlled pixel data — control-flow–relevant corruption (function pointer overwritten) demonstrated under deterministic heap layout (`nsc->decode = 0xFF414141FF414141`). Version 3.23.0 fixes the vulnerability.
Security readout for executives and security teams
Plain-English summary
A malicious RDP server can corrupt memory in vulnerable FreeRDP clients before 3.23.0. This matters when employees or systems connect to RDP endpoints they do not fully trust. Successful exploitation could affect confidentiality, integrity, and availability, but the supplied sources do not show known active exploitation.
Executive priority
Treat as high priority for client fleets that use FreeRDP, particularly in support, administration, or third-party access workflows. Patch promptly, but escalation to emergency response depends on evidence of exposure to untrusted RDP servers.
Technical view
The flaw is a heap out-of-bounds write in FreeRDP's RLE planar decode path. Bounds checks validate destination coordinates against the surface, while writes can target a desktop-sized temporary buffer. The advisory describes attacker-controlled offset and pixel-data writes, including control-flow-relevant function pointer corruption in a demonstrated heap layout.
Likely exposure
Exposure is most likely on workstations, jump hosts, thin-client environments, and automation that use FreeRDP clients before 3.23.0, especially where users connect to third-party or untrusted RDP servers.
Exploitation context
The CVSS vector requires user interaction because a FreeRDP client must connect to a malicious RDP server. KEV is false in the supplied bundle, and no cited source establishes active exploitation.
Researcher notes
The key issue is a surface-versus-desktop bounds mismatch when TempFormat differs from DstFormat. Sources describe writes beyond planar->pTempData and demonstrated function pointer corruption, but do not provide evidence of public exploitation in the supplied bundle.
Mitigation direction
Upgrade FreeRDP to version 3.23.0 or later.
Apply vendor-patched packages where FreeRDP is distributed by an OS vendor.
Restrict FreeRDP use to trusted RDP servers until patched.
Review Red Hat advisories if using affected Red Hat packages.
Monitor vendor guidance for additional platform-specific remediation.
Validation and detection
Inventory systems with FreeRDP installed or bundled.
Confirm installed FreeRDP versions are 3.23.0 or vendor-fixed builds.
Check package status against Red Hat or distribution advisories.
Identify users or workflows connecting FreeRDP to external RDP servers.
Confirm endpoint telemetry shows no unexpected FreeRDP usage patterns.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-787: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
2CVSS vectors
5Timeline events
2ADP providers
20Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: pocAutomatable: noTechnical Impact: total
CVSS vector scores
2 official scores
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-787 · source CWE mapping
Out-of-bounds Write
Out-of-bounds Write represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.