在 Signal 上挂断通话后,千万别急着说什么坏话或秘密——这个加密通讯应用的通话库存在一个 bug,可能导致通话无法正常结束,音频、甚至视频通道仍保持开启。

Signal 通话库存在挂断失败漏洞可能导致麦克风摄像头保持开启,隐私安全资讯配图

该漏洞编号 CVE-2026-113380,周二由 MITRE 公布,CVSS 评分 9.3,被定性为 Signal 开源通话库 RingRTC 在 2.72.0 之前所有版本的严重问题。那个更新上个月就推送了,但漏洞直到现在才公开。

RingRTC 是 Signal 基于 WebRTC 自建的通话库——WebRTC 是 2011 年引入、如今被广泛用于互联网音视频通信的技术。RingRTC 用 WebRTC 提供 Signal 专属通话功能,WebRTC 本身已加密媒体流量,但这并不能阻止 RingRTC 在特定条件下挂不断电话。

本质上,这是对 RingRTC 有限状态机(FSM)事件队列的拒绝服务攻击:通话中若一方用请求塞满 FSM 队列,队列就会不堪重负,无法处理挂断请求,导致通话无法正常终止。该漏洞归类为 CWE-754,即对异常或特殊情况检查不当。GitHub 上的报告还附带了一个概念验证:用 Python 脚本模拟事件队列被淹没后挂断请求无法处理的过程。

如果被恶意利用,另一端的人可能以为通话已结束,但双方(或其中一方)的音视频通道仍然开着。CVE 认为攻击复杂度较低;CISA 已知被利用漏洞目录显示,该漏洞尚未在野外被利用。但 Signal 用户仍应确保把移动端和桌面端应用都更新到最新版本,以免毫无防备地陷入热麦(hot mic)状态。

对比 RingRTC 2.72.0 与之前版本可以发现,Signal 的修复让通话 FSM 能独立于事件队列检测终止请求,同时加入超时机制,防止停滞的处理无限期阻塞挂断。Signal 的发布说明没有完全说清修复版本何时到达各平台——桌面版发布历史显示 RingRTC 2.72.0 是 9 月合入的,但具体全平台上线时间仍不清楚。眼下最稳妥的做法:把应用更新到位,以及在挂断电话后注意自己的嘴。