CVE-2026-26965
CVE-2026-26965 is a high-severity vulnerability in Freerdp with a CVSS 3.x base score of 8.8. It is not currently listed as actively exploited by CISA, and its EPSS exploit-prediction score is low. The underlying weakness is classified as CWE-787.
Key facts
- Severity: High (CVSS 3.x base score 8.8)
- EPSS exploit prediction: 1% (44th percentile)
- Actively exploited: Not listed in CISA KEV
- EU (EUVD) id: EUVD-2026-8740
- Weakness: CWE-787
- Affected product: Freerdp
- Published:
- Last modified:
Description
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.
Frequently asked questions
- What is CVE-2026-26965?
- 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.
- How severe is CVE-2026-26965?
- CVE-2026-26965 has a CVSS 3.x base score of 8.8, rated high severity. It is exploitable over network with low attack complexity, requires no privileges and user interaction. Impact on confidentiality is high, integrity high, and availability high.
- Is CVE-2026-26965 being actively exploited?
- It is not currently listed in CISA's KEV catalog. Its EPSS exploit-prediction score is 1% (44th percentile), an estimate of the probability of exploitation in the next 30 days.
- What products are affected by CVE-2026-26965?
- CVE-2026-26965 affects Freerdp. See the affected-products list for the exact vulnerable versions.
- How do I fix CVE-2026-26965?
- Review the linked vendor and NVD advisories for patched versions and mitigations, then upgrade or apply the recommended workaround. Given its high severity, prioritise patching exposed systems.
- Does CVE-2026-26965 have an EU (EUVD) identifier?
- Yes. CVE-2026-26965 is tracked in the ENISA EU Vulnerability Database (EUVD) as EUVD-2026-8740.
- When was CVE-2026-26965 published?
- CVE-2026-26965 was published on 2026-02-25 and last updated on 2026-06-30.
References
- https://github.com/FreeRDP/FreeRDP/commit/a0be5cb87d760bb1c803ad1bb835aa1e73e62abc
- https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-5vgf-mw4f-r33h
- https://access.redhat.com/errata/RHSA-2026:19033
- https://access.redhat.com/errata/RHSA-2026:5936
- https://access.redhat.com/errata/RHSA-2026:5939
- https://access.redhat.com/errata/RHSA-2026:6004
- https://access.redhat.com/errata/RHSA-2026:6005
- https://access.redhat.com/errata/RHSA-2026:6384
- https://access.redhat.com/errata/RHSA-2026:6385
- https://access.redhat.com/errata/RHSA-2026:6395
- https://access.redhat.com/errata/RHSA-2026:6396
- https://access.redhat.com/errata/RHSA-2026:6616
- https://access.redhat.com/errata/RHSA-2026:6665
- https://access.redhat.com/errata/RHSA-2026:6712
- https://access.redhat.com/errata/RHSA-2026:6764
- https://access.redhat.com/errata/RHSA-2026:7292
- https://access.redhat.com/security/cve/CVE-2026-26965
- https://bugzilla.redhat.com/show_bug.cgi?id=2442959
- https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-26965.json
Affected products (1)
- cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:*
More vulnerabilities in Freerdp
- CVE-2026-45700 — Critical (CVSS 9.8): FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.26.0, FreeRDP's planar bitmap decoder has…
- CVE-2026-31806 — Critical (CVSS 9.8): FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.24.0, the gdi_surface_bits() function…
- CVE-2026-25997 — Critical (CVSS 9.8): FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, `xf_clipboard_format_equal`…
- CVE-2026-25959 — Critical (CVSS 9.8): FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, `xf_cliprdr_provide_data_`…
- CVE-2026-25955 — Critical (CVSS 9.8): FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0,…
- CVE-2026-25953 — Critical (CVSS 9.8): FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0,…
Other CWE-787 (Out-of-bounds Write) vulnerabilities
- CVE-2026-42369 — Critical (CVSS 10.0): GV-VMS V20 is a Video Monitoring Software used to gather the feeds of many surveillance cameras and manage other…
- CVE-2026-4746 — Critical (CVSS 10.0): Out-of-bounds Write vulnerability in timeplus-io proton (base/poco/Foundation/src modules). This vulnerability is…
- CVE-2025-43300 — Critical (CVSS 10.0): An out-of-bounds write issue was addressed with improved bounds checking. This issue is fixed in iOS 15.8.5 and iPadOS…
- CVE-2025-24201 — Critical (CVSS 10.0): An out-of-bounds write issue was addressed with improved checks to prevent unauthorized actions. This issue is fixed in…
- CVE-2024-42479 — Critical (CVSS 10.0): llama.cpp provides LLM inference in C/C++. The unsafe `data` pointer member in the `rpc_tensor` structure can cause…
- CVE-2024-39791 — Critical (CVSS 10.0): Stack-based buffer overflow vulnerabilities affecting Vonets industrial wifi bridge relays and wifi bridge…