「切断」しても切れない通話
Signalでは、ユーザーが通話を終了しようとしても、切断ボタンが機能しない場合がありました。RingRTCライブラリに存在する重大なバグにより、通話の別の参加者が切断を妨害できたためです。その結果、ユーザーが電話を切ろうとした後もマイクが有効なままになる恐れがありました。条件によっては、ビデオストリームも継続する可能性があります。
CVE-2026-113380について
このSignal RingRTCの脆弱性「CVE-2026-113380」は、2026年10月20日に公開されました。CVSS 4.0のスコアは10点満点中9.3で、深刻度は「緊急(Critical)」です。影響を受けるのは、2.72.0より前のすべてのRingRTCバージョンです。
RingRTCは、Signalの音声通話とビデオ通話を担うライブラリです。インターネット上で音声や映像をやり取りする技術であるWebRTCをベースに動作します。
バグの仕組み
原因は、RingRTCが通話の状態を管理するために使うイベントキューにあります。すでに通話に参加している攻撃者が、このキューに大量のリクエストを送りつけて処理を滞らせることができました。その結果、通話を終了するコマンドの処理が遅れていました。
キューが過負荷になると、切断のシグナルが間に合わずに処理されなくなります。プログラムが接続と音声チャネルを閉じられない可能性があります。
攻撃者に必要な条件
電話番号を知っているだけ、あるいはメッセージを送るだけでは攻撃は成立しません。攻撃者は、進行中の通話の相手側にいて、イベント処理に負荷をかける必要があります。攻撃が成功すると、相手側は会話が終わったと思い込んだまま、音声が流れ続ける可能性があります。バグの説明では、ビデオチャネルへの影響も起こりうる結果として挙げられていますが、実証はされていません。
RingRTC 2.72.0での修正
Signalの開発チームは、RingRTC 2.72.0で通話終了の仕組みを修正しました。切断リクエストは、過負荷になったイベントキューとは別に扱われるようになりました。また、処理の停止を待つ時間を5秒に制限しており、固まったハンドラーが接続を永久に保持し続けることはありません。この変更はライブラリの複数のコンポーネントに及びます。
パッチの時期と残る疑問点
修正版のRingRTCは、脆弱性の公開から約1カ月前の9月にリリースされています。Signal Desktopの更新履歴によると、新しいライブラリは同じ月にデスクトップアプリへ反映されました。
一方、AndroidおよびiOSの各Signalバージョンに修正が入った正確な時期は、はっきりしていません。そのため、プラットフォームごとに脆弱なSignalのバージョンを確実に特定することは、現時点ではできません。
リスクの見方
GitHubで公開されているPython製の概念実証(PoC)コードは、キューが過負荷になると通話の終了が遅れる仕組みを示しています。これは不具合のメカニズムを説明するものであり、実際のユーザーに対する盗聴が成功したことを示すものではありません。
CVE-2026-113380を悪用した攻撃が確認されたという公開報告は、これまでのところありません。この脆弱性は、CISAの悪用が確認された脆弱性カタログにも掲載されていません。
影響を受けなかったもの
このバグは、エンドツーエンド暗号化のアルゴリズムには影響しませんでした。メッセージ履歴やパスワードへのアクセスを許すものでもありません。Signalのユーザーは、スマートフォンとパソコンの両方で、提供されている更新プログラムを適用してください。
翻訳元: https://meterpreter.org/signal-ringrtc-vulnerability/