关键信息 漏洞ID: Bug 1297099 标题: LoadManagerSingleton 弱引用在多个线程中使用 状态: Closed 产品: Core 组件: 音频/视频: MediaStreamGraph 版本: 48 分支 类型: 缺陷 (defect) 优先级: P1 严重性: 严重 (critical) 跟踪信息 里程碑: mozilla51 影响版本: - firefox48: wontfix - firefox49: fixed - firefox-esr45: unaffected - firefox50: fixed - firefox51: fixed 关键描述 _assertion failure: !_empty ``` 问题出现在 LoadManagerSingleton 的 WeakReference 类中的 get 方法。详细代码位置追踪说明了问题出在多线程环境下对 WeakPtr 的不当使用导致的竞态条件。 修复和评论 修复状态: 故障已修复,只为 trunk 版本考虑 Firefox48 和 Firefox50/51 版本受到影响,Firefox49 和 Firefox-esr45 版本不受影响。 具体修复措施: 弱引用变强引用,问题追回至单线程环境中的弱引用使用。 安全审批请求: 更换 LoadManagerSingleton 的弱引用为强引用,暗示新构性在负责的线程环境中使用弱引用最安全,尽可能避免竞态条件。 测试覆盖: 验证在 MPL2 许可环境下单线程强引用转换后,修复测试树通过,影响的安全性评价不高。 其他信息 项目关键词: sec-critical 相关白板: [post-critsmash-triage][adv-main49+] 状态更新: 相关Firefox版本修复完成,且在各版本中关闭相关修足态(fixed,wontfix)。