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.
CVSS Details
- CVSS 3.1 Base Score: 8.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade libwinpr-develUpgrade freerdp-libsUpgrade libwinprUpgrade freerdp-develUpgrade freerdp | Apr 2, 2026 | Mar 30, 2026 |
| Alpine Linux | — | Upgrade freerdp | Mar 2, 2026 | Feb 25, 2026 |
| Amazon Linux Ami 2 | — | Upgrade freerdpUpgrade libwinpr-develUpgrade freerdp-develUpgrade freerdp-libsUpgrade freerdp-debuginfoUpgrade libwinpr | May 20, 2026 | May 20, 2026 |
| Amazon_linux_2023 | — | Upgrade libwinprUpgrade freerdp-server-debuginfoUpgrade freerdpUpgrade freerdp-develUpgrade freerdp-debuginfoUpgrade freerdp-debugsourceUpgrade freerdp-serverUpgrade libwinpr-develUpgrade freerdp-libsUpgrade libwinpr-debuginfoUpgrade freerdp-libs-debuginfo | Mar 27, 2026 | Feb 25, 2026 |
| Debian | — | Upgrade freerdp3 | Jul 23, 2026 | Jul 23, 2026 |
| Oracle_linux | — | Upgrade freerdpUpgrade libwinpr-develUpgrade freerdp-serverUpgrade freerdp-libsUpgrade libwinprUpgrade freerdp-devel | Mar 27, 2026 | Feb 25, 2026 |
| Redhat_linux | — | Upgrade freerdpUpgrade libwinpr-develUpgrade freerdp-debuginfoUpgrade freerdp-debugsourceUpgrade libwinpr-debuginfoUpgrade freerdp-serverUpgrade freerdp-libs-debuginfoUpgrade freerdp-libsUpgrade freerdp-server-debuginfoUpgrade freerdp-develUpgrade libwinpr | Mar 27, 2026 | Feb 25, 2026 |
| Rocky_linux | — | Upgrade freerdp-libsUpgrade libwinpr-debuginfoUpgrade freerdp-develUpgrade freerdp-libs-debuginfoUpgrade libwinprUpgrade freerdp-debugsourceUpgrade freerdpUpgrade libwinpr-develUpgrade freerdp-debuginfo | Apr 8, 2026 | Apr 7, 2026 |
| Ubuntu | — | Upgrade libfreerdp3-3 | Mar 19, 2026 | Feb 25, 2026 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub