CVE-2026-26965: FreeRDP has Out-of-bounds Write
FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, in the RLE planar decode path, planardecompressplanerle() writes into pDstData at ((nYDst+y) nDstStep) + (4nXDst) + 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 iswithinsurface(). 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 NSCCONTEXT 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.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
FreeRDPto a version that resolves this vulnerability.Fixed in 3.23.0
Event History
Frequently Asked Questions
What is the severity of CVE-2026-26965?
CVE-2026-26965 has been assessed with a high severity level due to potential buffer overflow vulnerabilities.
How do I fix CVE-2026-26965?
To remediate CVE-2026-26965, upgrade FreeRDP to version 3.23.0 or later.
What types of systems are affected by CVE-2026-26965?
CVE-2026-26965 affects FreeRDP installations prior to version 3.23.0.
What impact does CVE-2026-26965 have on affected systems?
CVE-2026-26965 can potentially lead to arbitrary code execution on affected systems.
Is there a workaround for CVE-2026-26965?
There are no known workarounds for CVE-2026-26965; updating the software is essential.