FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.27.0, the glyph_cache_get function in libfreerdp/cache/glyph.c checks whether index is greater than cache->number instead of greater than or equal to it. A malicious RDP server can use GLYPH_FRAGMENT_USE replay in update_process_glyph_fragments to make the default cache receive index 254 when cache->number is 254, reading one pointer beyond the entries array and dereferencing it as a glyph. This can crash the client and may disclose adjacent heap data. This issue is fixed in version 3.27.0.
Fix
Patch, vendor advisory and mitigation references on NVD 4
- https://github.com/FreeRDP/FreeRDP/commit/c29324750e3cbcba8761f147b7a5235cc686930f Patch
- https://github.com/FreeRDP/FreeRDP/pull/12885 Issue Tracking, Patch
- https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-6xmj-pr98-cx4c Exploit, Mitigation, Vendor Advisory
- https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-6xmj-pr98-cx4c Exploit, Mitigation, Vendor Advisory
Every line above is quoted from NVD, CISA, Microsoft, the vendor's own advisory or DISA; nothing is generated.
Change history 1
- First seenCVSS 7.1 · freerdpNVD modified 2026-10-26 11:10
Affected (CPE criteria) 1
cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:*
References 5
- https://github.com/FreeRDP/FreeRDP/commit/c29324750e3cbcba8761f147b7a5235cc686930f Patch
- https://github.com/FreeRDP/FreeRDP/pull/12885 Issue Tracking, Patch
- https://github.com/FreeRDP/FreeRDP/releases/tag/3.27.0 Release Notes
- https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-6xmj-pr98-cx4c Exploit, Mitigation, Vendor Advisory
- https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-6xmj-pr98-cx4c Exploit, Mitigation, Vendor Advisory