RDP ZGFX Heap Buffer Overflow 漏洞概述 漏洞类型:堆缓冲区溢出(Heap Buffer Overflow) 触发路径:在 函数中,未压缩的 ZGFX 分段数据包包含攻击者控制的长度字段,导致写入固定大小的输出缓冲区时发生越界。 根本原因:未压缩路径缺乏边界检查( , , ),而压缩路径有显式边界检查。 类比漏洞:FreeRDP CVE-2022-39316 和 CVE-2022-39320(ZGFX 缓冲区溢出) CVSS 评分:3.8 (AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H) CWE:CWE-120(基于堆的缓冲区溢出)、CWE-120(无检查大小限制的缓冲区复制) 影响范围 使用 70,000 字节 payload + 4,464 字节堆溢出可越过 结构(约 2.5 MB)。 所有溢出字节由攻击者控制。 系统 tshark 崩溃并触发 SIGSEGV。 修复方案 页面未提供具体修复代码或补丁链接,但指出压缩路径已有显式边界检查,建议对未压缩路径也添加类似检查。 复现步骤(POC 代码) 方法 1:使用 DLT_USER0(最简单、自包含) 方法 2:使用常规 tshark(无需 ASAN —— 会因 SIGSEGV 崩溃) > 页面仅提及此方法,未提供完整代码,需参考“Read more”链接获取详情。