CVE-2026-23533CVE-2026-23533是FreeRDP远程桌面协议开源实现中的一个严重安全漏洞。该漏洞存在于RDPGFX ClearCodec解码路径中,攻击者可以通过恶意构造的残留数据触发客户端堆缓冲区溢出。在3.21.0版本之前,FreeRDP的ClearCodec解码器在处理颜色输出时未能正确验证数据边界,导致恶意服务器可以发送特制的RDPGFX数据包,当受害者连接到攻击者控制的RDP服务器时,客户端会因处理这些恶意数据而产生越界写入。这不仅可能导致服务拒绝(DoS),还可能造成堆损坏,在特定条件下实现远程代码执行。由于该漏洞评分高达9.8且无需认证即可利用,对所有使用FreeRDP作为RDP客户端的用户构成严重威胁。
该漏洞位于FreeRDP的libfreerdp/codec/clear.c文件的ClearCodec解码逻辑中,具体在处理RDPGFX ClearCodec数据包时的边界检查不足。当服务器发送包含ClearCodec指令的图形数据时,客户端的解码函数会调用clear_decode()或相关处理函数。在处理恶意构造的残留数据(residual data)时,由于缺少足够的边界验证,解码器会将数据写入超出预定缓冲区的内存位置。攻击者可以通过精心构造RDPGFX_CMD_CLEARDEFER等指令,使客户端在执行颜色转换或位图操作时产生越界写入。根据代码中的问题位置(第268-281行和第336行),漏洞涉及ClearCodec的位图处理逻辑。成功利用此漏洞需要攻击者搭建恶意RDP服务器并诱导受害者连接,攻击者可以通过修改RDP连接参数或中间人攻击方式实施入侵。