CVE-2025-11708CVE-2025-11708是Mozilla Firefox浏览器及其衍生产品Thunderbird中存在的一个高危Use-After-Free(UAF,释放后使用)漏洞,CVSS评分高达9.8,属于严重级别。该漏洞位于Firefox多媒体处理子系统的MediaTrackGraphImpl::GetInstance()函数中,属于浏览器媒体轨道图(Media Track Graph)管理模块的核心组件。MediaTrackGraphImpl是Firefox WebRTC及媒体播放功能的基础组件,负责管理浏览器中所有的音频和视频轨道,处理媒体流的创建、销毁及状态转换。当该组件的GetInstance()方法存在释放后使用缺陷时,攻击者可以通过精心构造的恶意网页或媒体内容,在用户访问时触发对已释放内存的非法访问。该漏洞的攻击向量为网络(AV:N),无需认证(PR:N)和用户交互(UI:N),意味着攻击者可以通过远程方式直接利用此漏洞。受影响的版本包括Firefox 144之前的所有Firefox版本、Firefox ESR 140.4之前的所有延长支持版本、Thunderbird 144之前的所有版本以及Thunderbird 140.4之前的所有延长支持版本。该漏洞对机密性、完整性和可用性均产生高影响,攻击者成功利用后可导致远程代码执行、内存信息泄露或浏览器崩溃,严重威胁用户系统和数据安全。Mozilla已于2025年10月14日发布安全公告mfsa2025-81至mfsa2025-85修复此问题。
该漏洞的核心问题在于MediaTrackGraphImpl::GetInstance()函数的实现中存在Use-After-Free缺陷。MediaTrackGraphImpl是Firefox媒体处理引擎的核心单例类,负责维护浏览器中所有媒体轨道(MediaTrack)的生命周期和拓扑关系。GetInstance()函数用于获取该单例对象的引用,但在特定条件下,单例对象可能在被引用之前已被销毁或回收。技术原理分析如下:1)当浏览器处理多个媒体流(如WebRTC通话、HTML5视频播放、音频捕获等)时,MediaTrackGraphImpl会动态管理内部数据结构;2)在某些边界条件下(如媒体设备热插拔、权限变更、页面快速导航等),MediaTrackGraphImpl单例的引用计数管理可能出现异常;3)GetInstance()函数返回的指针可能指向已被释放的内存区域;4)攻击者通过构造特殊的HTML/JavaScript页面,利用Web Audio API、MediaStream API或WebRTC API触发特定的媒体轨道创建和销毁序列;5)当浏览器尝试通过GetInstance()访问已释放的内存时,会导致任意代码执行或信息泄露。攻击者通常需要构造一个包含恶意媒体内容的HTML页面,通过JavaScript动态创建和销毁MediaStreamTrack对象,利用竞态条件(Race Condition)触发UAF。由于该漏洞无需用户交互即可远程利用,攻击者可以将其嵌入到任何网页中,通过钓鱼链接或恶意广告进行大规模传播。