押したのは、
リンク1つだけ
――Telegramのパソコン版にあった穴
写真はイメージ Photo by Swello on Unsplash
Telegramのパソコン版にあった穴、「;」1個からアカウント乗っ取りまで
出前を紙のメモで頼む店を思い浮かべてほしい。1品ごとに、最後に「以上」と書いて区切る決まりだ。客が品名の欄に「以上」と書き込めば、その後ろは別の注文として読まれる。
舞台は出前ではなく、Telegramのパソコン版
たとえ話はここまで。日本の出前の話ではない。実際にあったのは、メッセージアプリTelegramのパソコン版(Telegram Desktop)の穴だ。外から来たリンクを1回押すだけで、手元のファイルを勝手に送られ、ログイン済みの状態まで持っていかれる。見つけたのは研究者のbeaksecで、10月3日に手順を公開した。番号はCVE-2026-107181、深刻さの目安はCVSSで8.1。対象は7.2.8までだ。
区切りに使われていた記号は、セミコロン「;」1個だった。
Telegramのパソコン版は、二重に立ち上がらない。2つ目を起動すると、動いている方へ「このリンクを開け」と伝えて終わる。この受け渡しに使うのがIPCの通り道だ。命令は、文字列をセミコロンで区切って並べたものだ。
ここが、ややこしい。リンクの中にセミコロンが混じっていても、そのまま通していた。受け取った側は、1本のリンクを複数の命令として読む。出前のメモと同じだ。
では、何を割り込ませたのか。「interpret:」という、Telegramの中だけにある仕組みだ。開発側が公開の作業のために用意したもので、指示を書いたファイルを読み、中身を指定の相手に送る。確認の画面は出ない。頼んだ側に権限があるかも見ていなかった。
手順はこうだ。攻撃者がグループを作り、相手を入れる。そこへ指示を書いたテキストファイルを3つ置く。初期設定ではファイルが自動で受け取られ、決まった場所に保存される。あとは、見た目は普通のhttpsのリンクを押させる。飛び先で tg:// に転送され、仕込んだセミコロンが効く。
乗っ取りの鍵は、3つのファイル
送り出されるのは、やりとりの中身だけではない。研究者が狙ったのはtdataの中の3つ、key_datas と D877F783D5D3EF8Cs、D877F783D5D3EF8C/maps だ。この長い名前は、どのパソコンでも同じ。だから、探す手間がいらない。
この3つがそろうと、何ができるのか。セッションをまるごと再現できる。Telegramのパソコン版は、初期設定ではアプリに鍵(ローカルパスコード)がかかっていない。だから、空のパスワードと保存された値から、暗号の鍵が取り出せる。ログインの情報を解けば、ログイン済みの状態を別の場所で作れる。
区切り文字1個から、アカウントまで。道は一本につながっていた。
ネットの評判
技術者が集まるHacker Newsでは、10日の時点で219点、106件のコメントが付いた。目立つのは、パソコン用のアプリを入れずにウェブ版で使えばいい、という声だ。これはTelegramだけの話ではない、という見方も出た。いまのパソコンは、動いているプログラムに、利用者のファイルをどれでも読み書きさせてしまう。macOSやFlatpakなら分けられている、と反論する人もいた。報告から修正まで3か月かかった点を心配する声もある。
直ったのか
修正は9月16日に入り、翌17日に7.2.9として公開された。報告は6月25日、弱点の受付を仲介するZDIという窓口を通じてだった。悪用された例は確認されていない、と専門サイトのSecurityOnlineは伝えている。使っている人がやることは1つ。手元のTelegramが7.2.9以上かを見ることだ。
Telegramの直し方は、こうだった。通り道に流す値は、記号が効かない形に書き換えられた。そのうえで、「interpret:」という近道そのものが、まるごと削除された。
43万円の新型冷蔵庫、錆びて見える
Xで話題のアクア「AQR-DUX51B」
中止が4公演。倉敷は、無事に終わった
徳永英明、喉の不調からツアー復帰
40年仕入れてるけど、
こんな値は初めて
――エドノフーズの江戸野誠一郎社長