漏洞关键信息摘要 漏洞类型: Heap-use-after-free 影响版本: ≤ 3.22.0 修复版本: 3.23.0 CVE ID: CVE-2026-25997 严重性: 中等 弱点类型: CWE-416 漏洞描述 问题概述: 在自动重新连接时尝试读取已释放的 内存,可能引发堆越界访问。 详细分析: - X11 事件线程在检测到剪贴板所有权变化时调用一系列函数,包括 ,该函数同时在 数组上迭代并调用 。 - 自动重新连接期间,剪贴板通道线程释放 数组,而 X11 事件线程还在同时访问它,导致堆越界访问。 证明思路(PoC): 1. 使用 AddressSanitizer 编译 xfreerdp。 2. 设置 RDP 服务以在3秒后断开连接,触发客户端自动重新连接。 3. 使用特定参数连接,包括剪贴板支持和自动重新连接设置。 4. 并发地模拟剪贴板所有权变化。 5. 人为构建场景导致 试图访问已释放的内存。 修复建议: 通过在 调用前后锁定 来序列化释放操作与读取操作,避免在释放内存时发生并发访问。 影响: 恶意服务器可能利用此漏洞触发客户端堆越界访问,导致拒绝服务(DoS)或代码执行风险,视具体情况和内存管理器行为而定。 修复版本: 问题已在commit 5840940中得到解决。