CVE-2025-11234CVE-2025-11234是QEMU虚拟机管理器中的一个高危安全漏洞,CVSS评分为7.5。该漏洞由Red Hat安全团队发现并报告。QEMU是一款广泛使用的开源虚拟化模拟器,在云计算和服务器虚拟化领域占据重要地位。
该漏洞存在于QEMU的QIOChannelWebsock组件中,具体问题是在WebSocket握手过程中,当QIOChannelWebsock对象在等待完成握手时被释放,会导致一个GSource资源泄漏。GSource是GLib主事件循环中的事件源对象,用于处理异步事件。由于GSource未被正确释放,其关联的回调函数可能在对象已被释放后继续执行,从而触发释放后使用(Use-After-Free)漏洞。
此漏洞可被具有VNC WebSocket端口网络访问权限的恶意客户端利用,在VNC客户端认证之前的WebSocket握手阶段触发拒绝服务攻击(DoS)。由于攻击无需认证且无需用户交互,远程攻击者可以轻松利用此漏洞影响虚拟化服务的可用性。该漏洞主要影响使用QEMU提供VNC WebSocket服务的虚拟化部署环境,包括基于Red Hat Enterprise Linux、OpenStack等平台的云基础设施。Red Hat已发布多个安全公告(RHSA-2025:23228、RHSA-2026:0326、RHSA-2026:0332、RHSA-2026:0702、RHSA-2026:1831)来修复此问题。
QEMU的VNC WebSocket服务器实现使用QIOChannelWebsock类来处理WebSocket协议的握手和数据传输。在GLib事件循环框架下,QIOChannelWebsock通过注册GSource来监听和处理WebSocket握手过程中的I/O事件。
漏洞的根本原因是对象生命周期管理与GSource清理之间的竞态条件。当QIOChannelWebsock对象在等待WebSocket握手完成的过程中被释放时(例如由于连接异常或超时),与该对象关联的GSource未能被同步释放,导致GSource资源泄漏。这个泄漏的GSource仍然保留着指向已释放QIOChannelWebsock对象的回调函数指针。
当事件循环后续触发该GSource时,回调函数将尝试访问已被释放的QIOChannelWebsock对象的内存区域,从而触发释放后使用漏洞。由于GLib事件循环的异步特性,这种竞态条件在网络I/O密集的场景下更容易触发。
攻击利用方式:远程攻击者只需向目标QEMU实例的VNC WebSocket端口(默认通常为HTTP端口上的WebSocket升级路径)发起恶意连接请求。攻击者可以故意构造特殊的握手序列或不完整的WebSocket帧,触发QIOChannelWebsock对象的提前释放,随后通过重新触发事件循环中的GSource回调来触发释放后使用,最终导致QEMU进程崩溃或服务不可用。整个攻击在VNC认证之前即可完成,无需任何凭据。