Kaspersky Labは2018年2月13日(米国時間)、「Zero-day vulnerability in Telegram - Securelist」において、Telegramと呼ばれるメッセンジャーアプリケーションにマルウェアへの感染につながるゼロデイの脆弱性が存在し、悪用されていたと伝えた。

この攻撃では、テキストを右から左へ表示するUnicodeの仕組み「RLO: Right-to-Left Override)」が悪用されていたという。

例えば、「photo_high_regnp.js」という名前のJavaScriptファイルがあった場合、reとgnpの間にユニコードのU+202Eを挿入すると、ユーザーには「photo_high_resj.png」という文字列が表示されるようになる。U+202Eは双方向テキストを表現するために使われるRLOコードの1つで、この表示は適切な処理となる。しかし、このようにユーザーが勘違いしやすい状態がTelegramではマルウェアの感染に悪用できる状態になっていたとされている。

  • JavaScriptファイルをPNGファイルのように表示しているTelegram - 資料: Kaspersky Lab提供

    JavaScriptファイルをPNGファイルのように表示しているTelegram - 資料: Kaspersky Lab提供

ユニコードのRLOを悪用したファイル名の詐称は新しいテクニックではなく、ユーザーをだましてファイルやリンクのクリックを促す方法としてこれまでも使われてきた。Telegramはこのコードを適切に処理しておらず、ファイル名詐欺のテクニックが有効になっていたとされている。この脆弱性がいつから存在していたのかは不明だが、少なくとも2017年3月からは存在していたようだという。