CVE-2026-23732CVE-2026-23732是FreeRDP中的一个高危安全漏洞,CVSS评分达到7.5分。该漏洞存在于FreeRDP的FastGlyph解析功能中,由于程序在处理Glyph数据时过度信任客户端数据中的cbData字段和剩余长度,而没有对cx/cy参数所暗示的最小缓冲区大小进行验证。攻击者可以通过构建恶意的RDP服务器,在响应客户端Glyph请求时发送精心构造的FastGlyph数据,触发客户端的全局缓冲区溢出。成功利用此漏洞可导致FreeRDP客户端崩溃,造成拒绝服务(DoS)攻击。由于该漏洞通过网络即可发起攻击,且无需认证和用户交互,因此具有较高的利用价值。FreeRDP是开源的远程桌面协议(RDP)实现,广泛应用于多种Linux和Unix系统以及跨平台桌面环境中。
该漏洞的根本原因在于FreeRDP的FastGlyph解析逻辑存在安全缺陷。在libfreerdp/cache/glyph.c的FastPathPacketFastGlyph函数(第463-480行)中,程序直接使用服务器提供的cbData值来分配或访问缓冲区,而没有根据Glyph的尺寸参数(cx/cy)计算所需的最小内存大小进行边界检查。具体来说,当恶意RDP服务器发送的FastGlyph数据包中,cbData字段声明的长度大于根据cx*cy计算出的实际所需大小时,会导致越界写入或读取操作。此外,在libfreerdp/codec/color.c和libfreerdp/core/graphics.c中相关的颜色处理和图形绘制函数也存在类似的验证缺失问题。攻击者可以通过在RDP会话中伪装成恶意服务器,发送包含畸形Glyph数据的响应包,触发客户端内存损坏。漏洞利用成功的标志是FreeRDP客户端进程崩溃或出现未定义行为。攻击复杂度低,属于即发即用(once-and-done)类型的漏洞。