Telegram Desktop、XSS脆弱性によりチャット履歴全体が窃取される恐れ

セキュリティ研究者らによると、Telegram Desktopに存在する格納型クロスサイトスクリプティング(XSS)脆弱性により、攻撃者がインラインキーボードボタンに悪意あるコードを埋め込むことで、エクスポートされたチャット履歴の内容を窃取できる可能性があるとのことです。

Automatedpatching solutions

この問題は、Beta版6.9.4およびStable版7.0.1より前のTelegram DesktopビルドにおけるHTMLチャットエクスポート機能に影響します。ExPatch Vulnerability ResearchのDenis Rostilov氏とAleksander Rostilov氏が、2026年6月にこの脆弱性をTelegramに報告しました。

Telegramはコミット8457d13aによってこの問題に対処し、7月上旬のBetaリリースおよび同月後半のStableリリースに反映しました。研究者らが9月に脆弱性を公表した時点では、CVE識別子は割り当てられていませんでした。

Telegram Desktop XSS脆弱性

この脆弱性は、ローカルのチャットデータをブラウザで閲覧可能なHTMLファイルに変換する、Telegram DesktopのHTMLエクスポート処理に存在します。アプリケーションはメッセージ本文やユーザー名などのコンテンツをエクスポートファイルに追加する際には適切にエスケープ処理を行いますが、インラインキーボードボタンに含まれるテキストのサニタイズには失敗していました。

その結果、ボットが生成したインラインボタンに配置された攻撃者制御下のHTMLが、被害者がエクスポート済みのチャット履歴ファイルを開いた際に、有効なブラウザマークアップとしてレンダリングされる可能性がありました。

この攻撃はTelegram Desktopアプリケーション自体の中では実行されません。Telegramのネイティブデスクトップクライアントは、悪意あるコンテンツをブラウザコードとしてではなく、単なるテキストとして扱うためです。リスクが生じるのは、ユーザーがチャットをHTML形式でエクスポートし、その後生成されたファイルをJavaScriptが有効なWebブラウザで開いた場合に限られます。

Expatchの研究者らによると、脆弱性のあるコードパスでは、Telegram Desktopが既存で備えているサニタイズ処理ルーチン`SerializeString()`を使用せずに、ボタンテキストがそのままエクスポート文書に書き込まれていました。このルーチンは、山括弧や引用符、アンパサンドといったHTML上重要な意味を持つ文字をエスケープするものです。

この攻撃の注目すべき特徴は、悪意あるボットが標的のグループに参加する必要がない点です。攻撃者は、URLベースのインラインキーボードを含む細工したメッセージを別のユーザーやチャットに送信し、誰かがそのメッセージを標的グループに転送することを期待するだけで済みます。

Telegramでは、メッセージが転送される際に一部のURLのみのインラインキーボードが保持されるため、侵害されたボタンは、参加者がそのチャット履歴をHTMLにエクスポートするまで、グループのメッセージ履歴に何カ月も埋め込まれたままになる可能性があります。

これにより、極めて持続性の高い攻撃経路が生まれます。悪意あるコンテンツは、コンプライアンス審査や法的要請、社内調査、バックアップ作業などをきっかけにユーザーが会話をエクスポートして閲覧するまで、休眠状態のまま潜伏し続けることが可能です。

もしエクスポート対象に汚染されたメッセージが含まれていた場合、攻撃者が制御するJavaScriptは、HTML文書内にレンダリングされたコンテンツ、すなわちメッセージ本文、送信者名、タイムスタンプ、チャットのメタデータ、さらにはローカルのファイルパスにまでアクセスできる可能性があります。

このスクリプトはページの表示内容を改ざんすることも可能で、履歴の改変や、Telegramのプロンプトを装ったフィッシング用オーバーレイの表示にも悪用され得ます。

研究者らはこの問題に対し、CVSS 3.1スコア8.2(深刻度「高」)を割り当てました。ベクター文字列はCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:Nです。

Telegramによる修正では、インラインボタンのテキストがエクスポートページに書き込まれる前にHTMLエスケープ処理が適用されるようになりました。このパッチでは、コピー用コールバックボタンにおける別のJavaScript文字列インジェクションのリスクにも対処しています。こちらは、バックスラッシュとシングルクォートを完全にエスケープしないままコンテンツがonclickハンドラーに埋め込まれていた問題です。

ユーザーは、Stableチャンネルではバージョン7.0.1以降、Betaチャンネルではバージョン6.9.4以降にTelegram Desktopをアップデートする必要があります。組織は、パッチ適用前に作成されたHTMLエクスポートを、安全でない可能性があるものとして扱うべきです。

Image

Telegram Desktopをアップデートしても、既にディスクに保存済みのチャットエクスポートファイルは変更されません。ユーザーは、アップグレード後に機密性の高い会話を再エクスポートするか、既存のエクスポートファイルを開く際にはJavaScriptを無効にするようにしてください。

今回の脆弱性は、エクスポート機能に共通するセキュリティリスクを改めて浮き彫りにしています。アプリケーションのネイティブなインターフェース内では無害なデータであっても、HTMLとしてシリアライズされブラウザで開かれると、実行可能なコードに変わってしまう場合があるのです。

Automatedpatching solutions

Keep your SOC up to date on active malware & phishing within 24h of their emergence. Try ANYRUN to prevent incidents with early detection

翻訳元: https://gbhackers.com/telegram-desktop-xss-vulnerability-lets-attackers-steal-entire-chat-histories/

本記事は gbhackers.com の記事を翻訳・要約したものです。