CVE-2026-22857CVE-2026-22857是FreeRDP远程桌面协议实现中的一个严重安全漏洞,CVSS评分高达9.8,属于严重级别。该漏洞存在于FreeRDP 3.20.1之前的版本中,具体位于irp_thread_func函数。漏洞根本原因是堆内存使用后释放(Heap Use-After-Free):IRP(I/O Request Packet)在irp->Complete()调用时被释放,但在错误处理路径中该内存被再次访问,导致潜在的远程代码执行风险。攻击者可通过构造恶意的RDP连接请求触发此漏洞。由于攻击向量为网络可利用(AV:N),且无需认证(PR:N)和用户交互(UI:N),任何能够发起RDP连接的攻击者都可以尝试利用此漏洞。漏洞影响FreeRDP的机密性、完整性和可用性三个方面,均为高影响级别。FreeRDP作为开源的RDP协议实现,被广泛应用于多种Linux发行版和跨平台远程桌面解决方案中,因此该漏洞影响范围较广。
FreeRDP是一个开源的远程桌面协议(RDP)实现,用于支持Linux/Unix系统连接到Windows远程桌面。在irp_thread_func函数中存在堆使用后释放漏洞:当IRP(I/O请求包)通过irp->Complete()被释放后,函数在错误处理路径中会再次访问已释放的IRP内存指针。这种情况发生在RDP协议处理过程中,当处理特定的请求或响应时,如果发生错误,代码会在未正确同步的情况下尝试访问已释放的内存对象。攻击者可以通过向目标FreeRDP客户端或服务器发送精心构造的RDP数据包来触发该漏洞。在RDP连接建立或数据交换阶段,特定的请求序列会导致irP在完成处理后被释放,但随后在错误路径中再次被引用,形成典型的use-after-free条件。成功利用此漏洞可能导致远程代码执行,攻击者可在受影响系统上执行任意代码。由于这是内存破坏类漏洞,成功的利用需要攻击者精确控制堆布局和内存布局。