Telegram Web 版の脆弱性 CVE-2024-33905 が FIX:直ちにアップデートを!

Telegram Patches Flaw in Web Version, Vulnerability Exposed User Accounts to Hackers

2024/04/29 SecurityOnline — Telegram Web アプリケーションに、深刻な脆弱性 CVE-2024-33905 が存在することが、セキュリティ研究者の Pedro Batista により発見された。この脆弱性は、Telegram WebK 2.0.0 (486) 以下のバージョンに存在し、深刻な XSS (Cross-Site Scripting) 攻撃を可能にし、セッション・ハイジャックへといたる可能性を生じる。ただし Telegram は、発見の報告から僅か2日後に、この問題を速やかに修正している。

脆弱性の詳細

すでにパッチが適用されている脆弱性 CVE-2024-33905 だが、Telegram の Mini App システムに存在していた。これらの Mini Web アプリケーションは、Telegram 内で動作するように設計されており、支払いからゲームにいたるまでの、あらゆる用途に使用できるものだ。Pedro Batista が発見したのは、悪意を持って細工された Mini App が、Telegram のメイン・ドメイン (web.telegram.org) 上で任意のコードを実行し、セッション・ハイジャック攻撃につながる可能性があることだ。

XSS の脆弱性は、”postMessage” 関数を悪用するかたちで、”web_app_open_link” イベントを通じて引き起こされ、悪意の Mini App が “web.telegram.org” 上で任意の JavaScript を実行することを可能にする。したがって、被害者のセッション・トークンなどの機密データを攻撃者が制御し、セッション・ハイジャックなどの不正行為につながる可能性がある。

この攻撃は、いくつかのステップを経て実行される:

  1. 攻撃者が、Telegram ボットとリンクされた Mini App を作成する。
  2. この Mini App の URL を、悪意のサイトに設定する (例:https://evil.com/homepage.html)。この悪意のページは、読み込まれると脆弱性を誘発するよう設計された、スクリプトをホストするものだ。

Mini App の致命的なコード行は、以下のようなものとなる:

<body onload=exploit()>
<script>
function exploit() {
    window.parent.postMessage(JSON.stringify({eventType: 'web_app_open_link', eventData: {url: "javascript:alert(JSON.stringify(window.parent.localStorage))"}}), '*');
}
</script>
</body>

このスクリプトは、ページがロードされたときにトリガーされ、Telegram Web アプリケーションのコンテキスト内で悪意の JavaScript を実行し、ローカル・ストレージ・データやセッショントークンなどの機密情報を漏えいさせる可能性を持つ。

Ezoic

攻撃者による悪用の方法は?

セッション・ハイジャックのシナリオでは、攻撃者は基本的に、アクティブな Telegram Web セッションを盗むことで被害者になりすます。攻撃者は、あたかも正規のユーザーであるかのように、アカウントにフルアクセスできるようになり、メッセージの閲覧/被害者になりすまし/マルウェアの拡散/アカウントにリンクされた暗号ウォレットへのアクセスなどの実行が可能になる。

危険にさらされる Web3 ユーザー

Telegram Mini Apps が、TON ブロックチェーンを通じて暗号の支払いを処理する機能を持つため、Web3 ユーザーが特に危険にさらされていることを、Batista のレポートは強調している。危殆化した暗号ウォレットには、個人にとって大きな金銭的損失をもたらす可能性がある。

Telegram の迅速な対応

幸いなことに、Telegram は Pedro Batista の報告に迅速に対応し、2024年3月11日にパッチを適用している。このアップデートには、”web_app_open_link” イベントが URL を処理する際の、特定の方法を修正するパッチが含まれ、スクリプトによるセッションの乗っ取りや、不正コードの実行が排除されている。このパッチのリリース以降において、Telegram の Web アプリをアップデートしていない ユーザーは、依然として脆弱な状態であるため、注意が必要だ。

攻撃から身を守るには
  1. Telegram Web のアップデート:Telegram の Web 版を使用している場合には、可能な限り迅速にアップデートすべきだ。Web アプリにアクセスし、自動アップデートの有効化の有無を確認する。それ以外のケースでは、Web ブラウザのキャッシュをクリアするか、強制更新 (Windows ではCtrl+Shift+R、Mac では Cmd+Shift+R ) を実施する必要があるかもしれない。
  2. Mini Apps に注意する:脆弱性 CVE-2024-33905 は修正されたが、Telegram Mini Apps と使用する際には、特に検証されていない開発者のものを使用する際には、十分に注意することが重要となる。