レガシーTelnet実装の欠陥は認証前のリモートコード実行を可能にし、影響を受けたシステムを完全に危険にさらします。
CVSS rating 9.8の深刻なTelnet脆弱性により、攻撃者は認証が実行される前に影響を受けたシステムの完全な制御を取得できます。Dream Securityのセキュリティ研究者が警告しました。
CVE-2026-32746として追跡されており、この脆弱性はGNU inetutils telnetdにあります。これはレガシーインフラストラクチャ、ネットワーク機器、組み込みシステム全体で見つかるTelnetリモートアクセスプロトコルの広く配置されている実装です。このプロトコルは2000年代初期以来、最新環境ではSSH(Secure Shell)に大きく置き換わられています。
まだ脆弱なTelnetサービスを実行しているシステムでは、新しく開示された欠陥はバッファオーバーフロー問題に起因する範囲外書き込みを許可し、これはroot権限での認証されていないリモートコード実行(RCE)を可能にします。
根本的な原因はTelnetプロトコルネゴシエーション中に発動されるtelnetd LINEMODE Set Local Characters(SLC)ハンドラーのバッファオーバーフローです。この欠陥の国家脆弱性データベースエントリによると、脆弱性は認証前に悪用される可能性があるため、攻撃者は特別に作成されたメッセージを使用して接続を確立した直後に任意のコードを実行できます。
多くの展開では、telnetdはroot権限で実行され、成功した悪用は完全なシステム侵害をもたらす可能性があります。Dreamは述べました。
Dreamは3月11日にGNU Inetutils保守者にこの欠陥を通知し、バッファオーバーフローがどのように悪用されるかを説明しました。
「SLCレスポンスは固定の108バイトバッファslcbufに構築され、4バイトのヘッダーの後にデータに使用される104バイトのみです。関数add_slc()(162~175行)はSLCトリプレットごとに3バイトを追加しますが、バッファがいっぱいであるかどうかをチェックしません。ポインターslcptrは毎回単にインクリメントされます」と同社は保守者に伝えました。GNUメーリングリストへのメッセージによると。
「約35個のトリプレット後[…]、104バイトのスペースを超え、コードはslcbufの終わりを過ぎて書き込みます。これはBSS内のその後の内容(slcptrポインターを含む)を破損させます。後で、end_slc()は破損したslcptrを使用してサブオプション終了マーカーを書き込み、これは攻撃者にメモリへの任意書き込みを与えます。したがって、バグはバウンドチェックのない古典的なバッファオーバーフローです」とメッセージは続きました。
保守者は翌日パッチを準備し、Dreamのアドバイザリのタイムラインによると、4月1日までにリリースする予定を立てました。
脆弱なシステムは、公開されたTelnetインターフェースを備えた組み込みシステムとIoTデバイスを含みます。TCP port 23をリッスンし脆弱なコードベースを使用するサーバーとアプライアンス、およびinetutilsを出荷し、Debian、Ubuntu、RHEL、SUSEを含むtelnetdが有効またはインストール可能なままにするLinuxディストリビューションです。Dreamは述べました。
「port 23への単一のネットワーク接続は脆弱性をトリガーするのに十分です。認証情報、ユーザーインタラクション、特別なネットワークポジションは不要です」と述べました。
Dreamはソフトウェアがパッチされるまでの間、多くの即時回避策をアドバイスしました。SSHなどの安全な代替手段への移行、telnetdの無効化、またはroot権限なしで実行することを含みます。それが不可能な場合、ネットワーク周辺でport 23をブロックし、その使用を信頼できるホストに制限することをアドバイスしました。
これは今年露出する2番目のTelnet関連の欠陥です。1月に発見された認証バイパスバグ(デバイスを完全な乗っ取りに露出させた)に続いています。