世界を動かす技術を、日本語で。

Telegram Desktopの脆弱性により、任意のユーザーのファイルが盗まれる可能性があった

2026年10月10日原文(beaksec.github.io)

概要

  • 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利用者は 早急なバージョンアップ が必須

Hackerたちの意見

このリンクはすでに https://news.ycombinator.com/item?id=50019667 で投稿されてるけど、その投稿のタイトル(「Telegram Desktop: one-click account takeover」)は、その脆弱性がディスク上のユーザーがアクセスできるファイルも盗まれることを示してないんだよね。この点は記事でもあまり強調されてなくて、奇妙なことにアカウントの乗っ取りにばかり焦点を当ててる。個人的には、異なるタイトルでリンクを再投稿する価値があると思う。驚くべきことに、脆弱性の核心はTelegramに追加された内部URLスキームから来ていて、これがリリースをチャンネルで公開するのを助けるためのものなんだ。Telegramの開発者たちは、そのためにファイルをアップロードする内部ツールを追加する以外に良い方法がないと思ったみたい。他の人たちはスクリプトでアプリをTelegramに公開できるけど、彼らはそうする必要があった。確かに、少し複雑な方法でしか悪用できなかったけど、それでも明らかに危険な機能だよね。とにかく、Telegram Desktopでリンクをクリックするだけで、誰かのファイルが流出したり、アカウントにアクセスしたり乗っ取ったりできるってことだね。

└

それ、めっちゃジャイタン級の機能だね。実装方法がぶっ飛んでるけど、否定可能なところもあるし。

10年くらい前にTelegramは不安定だって指摘されてたと思うけど、実際「とても安全」ってことはなかったよね。こんな感じの記事がたくさんあるしね: https://hackernoon.com/7-reason-why-telegram-is-insecure-by-...

└

その通りだけど、主に彼らのプロトコルや声明、スタッフ、インフラに関してだね。ファイル流出の脆弱性はまだ注目に値するよ。

└

フィリッポからの一つ。「今まで見た中で最もバックドアっぽいバグ」 - https://words.filippo.io/telegram-ecdh/

└

それでも使ってるけど、UXが他のアプリを圧倒してるし、背後にいる人たちもカジュアルな人たちにはほとんど害を及ぼさないと思う :) それに、デフォルトでチャットがE2Eじゃないのは知ってるし、電話番号がアカウントに与える影響も大きすぎるよね。それでも、UXや重要な人たちに興味を持ってるエージェンシーの方が、データ販売や広告ベースの会社よりは歓迎されるよ。

└

プラットフォーム上の他のユーザーについて教えてくれる機能があるんだよね。大きな漏洩ではないけど、最初からセキュリティの姿勢がかなり悪い。より安全でプライバシーを重視してるとされるチャットアプリと競ってるのに、WhatsAppよりもその点で劣ってる。

└

確かにそうだけど、ほとんどの人は仲間(リアルでもパラソーシャルでも)からの言葉を信じるから、セキュリティ研究者たちの叫びなんて聞かれないんだよね。だからこうなっちゃった。

厳密に言うと、Telegram特有の脆弱性ではないんだ。すべての現代のデスクトップOSの脆弱性で、どのユーザープロセスでもユーザーファイルを読み書きできるようになってる。理想的には、すべてのプログラムは基盤のファイルシステムから隔離されて、自分のファイルやプログラムごとのデータディレクトリ(ブラウザやTelegramクライアントのダウンロードなど)からのファイルだけを読み込めるべきなんだ。

└

そうだね。すべてのユーザープロセスがそのファイルをこっそりどこかにアップロードするわけじゃないから。もちろん、OSはその隔離をサポートすべきだし(スマホの地獄よりはマシな方法で)、でもTelegramがこの脆弱性のせいでOSを責めることはできないよ。

└

もしこれが脆弱性じゃないと思うなら、Telegramを騙してメッセージデータベースを攻撃者にアップロードさせて、プライベートな会話を全部漏らすのがOKだと思ってるの?結局、Telegramがそのファイルを所有してるんだから。

└

これは広い意味ではすべてのOSの脆弱な設計だけど、厳密にはTelegramのバグで、今はアプリレベルで修正されてるんだ。ただ、サンドボックスやアプリ隔離のソリューションは、広く脆弱なOSでも存在するから、アプリはすでに今日それを使って将来の問題を避けることができるはずなんだよね。

Hacker Newsで議論の続きを見る