概要
- Telegram Desktop 7.2.8以前に存在した 深刻な脆弱性 の解説
- リンククリック のみでローカルファイルが攻撃者のチャットへ送信される仕組み
- 2つの欠陥 (コマンドインジェクションと認可バイパス)の連鎖
- Windows環境での アカウント乗っ取り リスク
- バージョン7.2.9 で修正済み
Telegram Desktopのリンククリックによるアカウント乗っ取り脆弱性
-
Telegram Desktopでは tg:// スキームをOSに登録、リンククリックでアプリが起動または既存プロセスに処理を委譲
-
既存プロセスへの委譲は ローカルソケット 経由でテキスト命令列として送信
-
命令列は セミコロン(;)区切り、セミコロンをエスケープせずにそのまま分割
-
攻撃者が細工したリンク(例:tg://x?a=1;OPEN:interpret:...)を送ることで 複数命令注入 が可能
- 例:tg://x?a=1;OPEN:interpret:instructions.txt
-
interpret:スキームは 任意ファイル送信 を自動実行、認可・確認処理なし
- 元々はTelegram自身のリリース自動投稿用機能
- from:行がなければアカウントIDチェックもスキップ
-
攻撃者は グループチャットに指示ファイルを送付、被害者側で自動ダウンロード
-
ファイルパスは 相対パス指定 で確実に特定可能
- 例:interpret:../../../Downloads/Telegram%20Desktop/instructions.txt
-
複数ファイルの連続送信も 1リンクで複数命令 として可能
ファイル窃取からアカウント乗っ取りまで
-
Telegram Desktopの 認証情報 は暗号化されて保存
-
暗号化解除に必要な DEK(データ暗号鍵) と KEK(鍵暗号鍵) の仕組み
- KEKはパスコード+saltから導出、デフォルトでは パスコード未設定=空文字列
- saltと暗号化DEKは tdata/key_datas に保存
- 必要ファイル:key_datas、D877F783D5D3EF8Cs(認可情報)、D877F783D5D3EF8C/(インデックス)
-
パスコード未設定の場合、 key_datasの窃取だけで全データ復号可能
-
攻撃者はこれらファイルを interpret:命令で送信させる ことでアカウント乗っ取りを実現
影響範囲・対策
- 影響バージョン: Telegram Desktop 7.2.8以前
- Windows版で確認済み(6.9.3含む)
- 悪用例: グループ経由でのファイル送信+リンククリック誘導
- 修正: 7.2.9 (commit db3405699f)で修正済み
- 深刻度: CVSS 8.1 High (CVE-2026-107181)
- 推奨対応: 最新版へのアップデート、不審なファイル・リンクのクリック回避
まとめ
- リンク1つのクリック でローカルファイル窃取・アカウント乗っ取りが可能な深刻な設計ミス
- ソケット通信の命令分割処理 と 認可チェックの欠如 が主因
- Telegram Desktop利用者は 早急なバージョンアップ が必須