約11年見過ごされたtelnetの致命的バグ、攻撃者にroot権限を丸ごと明け渡していた

テクノロジー・エネルギー
スポンサーリンク

古くからある遠隔ログインの仕組み「telnet(テルネット)」のサーバー側に、システムの管理者権限をまるごと明け渡してしまう重大な欠陥が見つかった。やっかいなのは、この穴が2015年に作り込まれてから、約11年ものあいだ誰にも気づかれずに残っていたこと。2026年1月20日に公開され、CVE-2026-24061として整理されたこの脆弱性は、危険度を示すスコアが10点満点中9.8という最高クラスにある。複数の研究者が「悪用はあっけないほど簡単」と口をそろえている。

telnetはとっくに安全な後継へ置き換えられたと思われがちな技術だが、実際にはネット上にも、身近な機器の中にも、まだ数多く生き残っている。だからこそ無視できない話になっている。

古い遠隔ログイン技術、telnet

telnetは、離れた場所にあるコンピューターへネットワーク越しにログインして操作するための、古典的なプロトコル(通信の取り決め)であり、同じ名前のコマンドでもある。歴史は1960年代末までさかのぼる。サーバー側で接続を受け付ける常駐プログラムのほうを、telnetd(テルネットデーモン)と呼ぶ。今回欠陥が見つかったのは、その中でもGNU InetUtilsという実装に含まれるtelnetdだ。

telnetには昔から知られた弱点がある。通信をまったく暗号化しないため、IDやパスワード、操作の中身が盗聴で筒抜けになりうる。この弱点があるからこそ、暗号化された安全な後継であるSSHへの置き換えが長年かけて進んできた。とはいえtelnetが完全に消えたわけではなく、ルーターやスイッチ、監視カメラ、各種の組み込み機器など、利用者があまり意識しない場所でひっそり動き続けている。

もう一つ、押さえておきたい言葉がroot(ルート)だ。rootはシステムの最上位にある管理者権限のことで、これを握られると、設定の書き換えからデータの閲覧・改ざん、任意のコマンドの実行まで、ほぼ何でもできてしまう。今回の脆弱性は、まさにこのrootを攻撃者に渡してしまうものだった。

認証を素通りさせる仕組み

欠陥の中身はこうだ。telnetdは、接続してきたクライアント(利用者側)から受け取った「USER」という環境変数の値を、ログイン処理を担う /usr/bin/login というプログラムへ引き渡す。このloginは通常root権限で動いていて、渡された文字列を「最後のパラメータ」として受け取る。

問題は、loginがその文字列の中身をきちんと確かめていなかったことにある。クライアントがUSERの値として「-f root」という文字列を仕込み、telnet側の -a(または –login)オプションを使ってサーバーへ送ると、loginは「-f」をユーザー名ではなく自分への指示(オプション)として読み取ってしまう。この -f は「このユーザーは確認済みなので認証を省略してよい」という意味のフラグだ。つまり攻撃者は、「自分はrootだ」と名乗るだけで、パスワードを一度も問われないままrootとして中に入れてしまう。

このように、本来はただのデータ(ユーザー名)だったはずの入力値が、プログラムへの命令(オプション)として解釈されてしまうたぐいの欠陥を、引数インジェクション(argument injection)と呼ぶ。

悪用の容易さと進行中の攻撃

セキュリティ企業Rapid7の研究者は、この脆弱性にはいくつもの気がかりな要素があると指摘している。引数インジェクションは、メモリ破壊系のように複雑で不安定なバグと比べて、悪用がより確実に成功しやすい。実際にRapid7は検証で、ねらった相手のシステムを完全なroot権限で乗っ取れることを確認したという。特別な道具や下準備は要らず、決まったtelnetコマンドで相手につなぐだけで成立してしまう手軽さも危険視されている。

影響を受けるのはGNU InetUtilsのバージョン1.9.3から2.7まで。脅威情報企業GreyNoiseの観測では、公開直後の24時間で15のIPアドレスが、この穴を突いた認証バイパスを試みていた。すでに「探りを入れる動き」は始まっている。

各国の対応も早かった。フランスのCERT-FRは、好ましくない運用として多くのtelnetサービスがインターネットに露出していると注意を促し、telnetサービスの全廃を勧告。カナダやベルギーの当局も同様に、telnetdの引退を呼びかけている。

とるべき対策

もしtelnetdを動かしている環境があるなら、最低限やるべきことははっきりしている。修正版へアップデートし、telnetのポートをインターネットから遮断して、信頼できる相手だけに接続を絞ること。だが研究者たちの本音はもっと手前にある。アドバイザリを書いたGNUのSimon Josefsson氏が第一に勧めているのは、そもそもtelnetdサーバーを動かさないことだ。

より根本的には、暗号化されない古いtelnetから、安全なSSHのような仕組みへ乗り換えるのが望ましい。2026年にもなってtelnetdをそのまま運用しているなら、脆弱性の有無とは別に、盗聴のリスクだけでも見直す理由になる。

解釈上の留意点

誤解しないようにしたいのは、危険なのはtelnetdを実際に動かしている環境に限られる、という点だ。今どきtelnetをインターネットへ直接さらしている例はそう多くなく、観測された攻撃の中身も雑で本格的とは言えないことから、過度に騒ぐほどではないという見方も研究者の間にはある。

一方で、自分とは無関係だと言い切りにくい事情もある。ネット直結の機器でなくても、ルーターや監視カメラ、各種のIoT機器など、利用者が気づかないところでtelnetが有効になっている製品は今も少なくないからだ。集計サービスShodanによると、telnetが応答する機器はネット上で20万台規模、telnetが使う23番ポートで待ち受ける機器は100万台規模にのぼるとされる。「使っていないつもり」でも、手元の機器の設定を一度確かめてみる価値はある。

出典

Ancient telnet bug happily hands out root to attackers(The Register)

脆弱性の識別番号はCVE-2026-24061。詳細はGNU InetUtilsのセキュリティアドバイザリ、および各種の脆弱性データベースでも確認できる。

コメント

タイトルとURLをコピーしました