何が起きたか・対象
Signal for iOSで、グループから削除された元メンバーが、受信者の端末に残る自分の過去のグループ投稿を編集できる問題がありました。識別子はGHSL-2026-105です。
攻撃者は元の投稿時刻を指定し、グループ情報を省いた編集要求を受信者へ送ります。端末はそれを個人会話の要求として扱うため、グループへの在籍確認を行いません。一方、編集対象は送信者と時刻だけで検索し、会話を識別するthread IDを照合しないため、別の会話である元のグループ投稿を見つけて書き換えてしまいます。攻撃者自身の投稿であることや48時間の編集可能期間などの条件は残り、他人の投稿を自由に編集できる問題ではありません。
報告・修正・公開の時系列
8.6で検証され、2026-04-10に報告、04-15に重複報告と確認され、同日8.7.0.1523で修正されました。研究記事は09-21の公開です。
正常ならどう動くはずだったか
メッセージ編集では、送信者と投稿の対応だけでなく、編集要求が許可された会話から届き、同じ会話内の投稿を対象にするかも確認します。グループを外れた人が、個人会話を通じて元のグループへ書き込めてはいけません。
技術的な原因
編集対象の検索条件は送信者のauthorAciと投稿時刻で、会話を識別するthread IDを照合していませんでした。攻撃者が編集要求からグループ情報を省くと、受信側は個人会話の要求として扱い、グループの在籍確認を実行しません。その後の検索が別の会話にある過去の投稿まで見つけ、編集対象にしてしまうことが不備です。
攻撃が成立する条件と流れ
攻撃者は、参加していたグループへ自分が送った投稿の時刻を指定し、グループ情報を省いた編集要求を受信者へ送ります。脆弱なiOS端末は個人会話の経路で要求を受け付けながら、送信者と時刻が一致するグループ内の投稿を書き換えます。攻撃者自身の投稿であることと48時間の編集可能期間などの条件は残ります。 研究は送信側Signal-Androidの編集要求を作る処理を変更し、groupV2情報を省くビルドで再現しています。通常の画面操作だけで同じ要求を送れると示したものではありません。
確認された事実と、想定される影響
攻撃者が得るのは、退会後も、受信者のiOS端末に残る自分の過去のグループ投稿を変更できる能力です。説明用の例では、退会前に送った集合場所を別の場所へ変え、受信者が後から読む内容を変えられます。送信者の表示と編集済み表示は残ります。他人の投稿の自由な変更、暗号の解読、全端末への変更の同期を示すものではありません。研究での実証と実際の悪用は区別します。
実際の修正・対応方針
研究時系列は8.7.0.1523での修正を記録しています。具体的な差分はここでは直接確認していません。一般策として、編集要求の会話と取得した投稿の会話の一致を含めて認可する必要があります。
利用者・運用者が確認すること
受信側のSignal for iOSを修正済み版へ更新します。要求を受理する側の検証の問題なので、送信側だけ更新すれば受信者も保護されるとは考えません。
開発者への教訓(教材としての考察)
作者が一致することと、その会話へ今も書き込めることは別です。時刻や作者だけで対象を選ばず、親となる会話・組織の境界も権限確認へ含めます。
出典・確認範囲
- [1] Removed Signal group members can modify previously sent messagesGitHub Security Lab / 確認日 2026-10-29
参照資料では実悪用や実際の被害件数を確認できません。未記載の実装差分は推測していません。