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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-33032 — ルート登録における関数呼び出しが1つ欠落していただけで、MCPインターフェースが認証なしのRCEゲートウェイと化すのに十分だった。 | Kitploit
ツール/GitHubGitHub/keraattin/cve-2026-33032
偵察脆弱性スキャナーエクスプロイトウェブセキュリティネットワークセキュリティペネトレーションテストAPIセキュリティ
GitHubkeraattin/cve-2026-33032

CVE-2026-33032

ルート登録における関数呼び出しが1つ欠落していただけで、MCPインターフェースが認証なしのRCEゲートウェイと化すのに十分だった。

リポジトリを見る
54ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-33032 / MCPwn

CVE CVSS Status Affected License Python

nginx-ui の MCP 認証バイパスとして公に MCPwn として知られる脆弱性に対する非破壊的な検出ツールです。脆弱なバージョンが稼働している任意の nginx-ui インスタンスに対して、2 つの HTTP リクエストによる未認証の乗っ取りを実行します。

目次

  1. クイックファクト
  2. 脆弱性の概要
  3. 技術的な詳細
  4. 検出戦略
  5. インストール
  6. 使用方法
  7. 出力例
  8. CVE-2026-27944 との連鎖
  9. 対策
  10. 責任ある利用
  11. 参考情報
  12. ライセンス

クイックファクト

脆弱性の概要

nginx-ui は Model Context Protocol (MCP) インターフェースを公開しており、認証されたオペレーターが JSON-RPC を通じて nginx 設定の編集、再起動コマンド、バックアップ操作などの破壊的なツールを操作できます。

/mcp エンドポイントは AuthRequired() ミドルウェアで保護されていますが、実際にツール呼び出しを受け取るペアとなる /mcp_message エンドポイントは、ミドルウェアなしでデプロイされていました。ネットワーク経由で UI に到達できるクライアントは、以下の操作が可能です:

  1. /mcp への Server Sent Events (SSE) ストリームを開き、資格情報を提示せずに新しい sessionID を受け取る。
  2. その sessionID を使用して、/mcp_message に POST することで登録済みの任意の MCP ツールを呼び出す。これも未認証のままです。

攻撃者は nginx プロセスの完全な制御を獲得します: トラフィックをリダイレクトするためのサーバーブロックの編集、パス読み取りによる TLS 秘密鍵の抽出、nginx のリロードや停止、永続的なバックドアの埋め込みなどが可能です。

技術的な詳細

コードレベルの根本原因

root@kitploit:~
// 脆弱なバージョン (2.3.4 より前)
r.GET("/mcp",          AuthRequired(), mcpHandler)
r.POST("/mcp_message", mcpMessageHandler)    // ミドルウェアが欠落

// 2.3.4 で修正
r.GET("/mcp",          AuthRequired(), mcpHandler)
r.POST("/mcp_message", AuthRequired(), mcpMessageHandler)

ルート登録における 1 つの関数呼び出しの欠落が、MCP インターフェースを未認証の RCE ゲートウェイに変えてしまいました。

エンドツーエンドの攻撃スケッチ

root@kitploit:~
  攻撃者                                nginx-ui (<2.3.4)
     |   1) GET /mcp  (認証なし)              |
     | -------------------------------------->  |
     |   2) event: endpoint data: /mcp_message?sessionID=XYZ
     | <--------------------------------------  |
     |   3) POST /mcp_message?sessionID=XYZ     |
     |      body: JSON-RPC call_tool "nginx_reload" または
     |             "edit_config {...}"          |
     | -------------------------------------->  |
     |   4) 200 OK; ツールが完全な権限で実行される
     | <--------------------------------------  |

影響マトリクス

検出戦略

このリポジトリは意図的に破壊的な操作を一切行いません。検出器は読み取り専用の MCP メソッド (tools/list) のみを使用します。ロジック:

root@kitploit:~
> ステップ 1  nginx-ui をフィンガープリント
>         GET /               (HTML タイトル、JS バンドル)
>         GET /api/settings   (nginx-ui キーを参照する JSON)
>         ヘッダー / ボディの正規表現でバージョンを抽出
> ステップ 2  /mcp への SSE ストリームを開く
>         "endpoint" イベントから最初の sessionID を解析
> ステップ 3  POST /mcp_message?sessionID=<id>
>         Body: {"jsonrpc":"2.0","method":"tools/list","params":{}}
>         Authorization ヘッダーなし
> ステップ 4  ステータス 200 かつボディにツールマニフェストが含まれる場合: 脆弱
>         ステータス 401 / 403 / 404 の場合: 修正済み
>         それ以外: 判定不能

なぜ安全なのか

tools/list JSON-RPC メソッドは読み取り専用です。MCP サーバーが認識しているツールを列挙するだけで、いずれのツールも呼び出しません。このスクリプトは他のメソッドの POST を拒否し、破壊的なツールのペイロードを決して構築しません。

インストール

root@kitploit:~
git clone https://github.com/your-org/CVE-2026-33032-detector.git
cd CVE-2026-33032-detector
python3 --version      # 3.9 以降
# サードパーティのパッケージは不要です。

Nmap NSE コンポーネントの場合、nginx-ui-mcpwn.nse をローカルのスクリプトディレクトリにコピーし、スクリプトデータベースを更新します:

root@kitploit:~
cp nginx-ui-mcpwn.nse /usr/share/nmap/scripts/
sudo nmap --script-updatedb

使用方法

Python 検出器

root@kitploit:~
# 単一ターゲット
python3 detect_nginx_ui_mcpwn.py --target https://nginx-ui.internal

# ファイルからの一括スキャン
python3 detect_nginx_ui_mcpwn.py --targets targets.txt --workers 20

# jq へのパイプに適した JSON (NDJSON) 出力
python3 detect_nginx_ui_mcpwn.py --target 10.0.0.5:9000 --json | jq .

コマンドラインリファレンス:

Nmap NSE

root@kitploit:~
nmap -p 80,443,9000 --script nginx-ui-mcpwn 10.0.0.0/24
nmap -p 443 --script nginx-ui-mcpwn --script-args "nginx-ui-mcpwn.timeout=8" host.example.com

出力例

人間が読みやすい形式

root@kitploit:~
 _   _       _                  _    _  ___   __  __  ____ ____
| \ | | __ _(_)_ __ __  __     | |  | ||_ _| |  \/  |/ ___|  _ \__      ___ __
|  \| |/ _` | | '_ \\ \/ /_____| |  | | | |  | |\/| | |   | |_) \ \ /\ / / '_ \
| |\  | (_| | | | | |>  <|_____| |__| | | |  | |  | | |___|  __/ \ V  V /| | | |
|_| \_|\__, |_|_| |_/_/\_\     |_____|_||___| |_|  |_|\____|_|     \_/\_/ |_| |_|
       |___/

  CVE-2026-33032 nginx-ui MCPwn 検出器 > 非破壊的

[!] 脆弱 https://nginx-ui.internal version=2.3.2 evidence=status=200; body_preview={"jsonrpc":"2.0","id":"...","result":{"tools":[{"name":"edit_config",...
[+] 修正済み https://nginx-ui-patched:9000 version=2.3.4 evidence=status=401; body_preview={"error":"unauthorized"}
[.] nginx-ui ではない https://example.com evidence=fingerprint negative

概要: 3 ターゲット中 1 が脆弱と判定

NDJSON

root@kitploit:~
{"target":"https://nginx-ui.internal","reachable":true,"is_nginx_ui":true,"mcp_endpoint_present":true,"session_id_obtained":true,"mcp_message_unauthenticated":true,"vulnerable":true,"nginx_ui_version":"2.3.2","evidence":"status=200; body_preview=...","error":null}

Nmap

root@kitploit:~
PORT     STATE SERVICE
9000/tcp open  http
| nginx-ui-mcpwn:
|   status: VULNERABLE
|   version: 2.3.2
|   session_id: abc123
|_  evidence: tools/list accepted without credentials

CVE-2026-27944 との連鎖

CVE-2026-27944 (X-Backup-Security ヘッダーで AES キーを漏洩させる未認証の /api/backup ダウンロード) は MCPwn とシームレスに連鎖します: バックアップアーカイブは node_secret を公開し、33032 の修正が適用された後でも、オペレーターがシークレットをローテーションするまで /mcp への認証に使用できます。

27944 用の併用検出器は、この研究プロジェクトの兄弟ディレクトリにあります。

対策

  1. nginx-ui を 2.3.4 以降にアップグレードします。
  2. node_secret、管理者パスワードハッシュ、および nginx-ui プロセスからアクセス可能だった TLS 秘密鍵をローテーションします。
  3. nginx-ui の公開範囲を管理 VLAN、VPN、または /mcp_message ルートに到達する前に認証を強制するリバースプロキシに制限します。
  4. 露出期間中に導入された予期しない upstream / proxy_pass / ssl_certificate ディレクティブがないか、nginx 設定履歴 (Git またはバックアップ) を確認します。

責任ある利用

このツールは、防御者が認可された環境内の未パッチのインスタンスを特定するのを支援するために公開されています。所有していないシステム、または評価する明示的な許可がないシステムに対して使用しないでください。著者は誤用に対する一切の責任を負いません。

参考情報

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-33032
  • Picus Security (MCPwn 解説): https://www.picussecurity.com/resource/blog/cve-2026-33032-mcpwn-how-a-missing-middleware-call-in-nginx-ui-hands-attackers-full-web-server-takeover
  • Security Affairs: https://securityaffairs.com/190841/hacking/cve-2026-33032-severe-nginx-ui-bug-grants-unauthenticated-server-access.html
  • BleepingComputer: https://www.bleepingcomputer.com/news/security/critical-nginx-ui-auth-bypass-flaw-now-actively-exploited-in-the-wild/
  • 上流プロジェクト: https://github.com/0xjacky/nginx-ui

ライセンス

MIT ライセンスの下で公開されています。ファイルごとの通知については、各スクリプトのヘッダーを参照してください。

ツールをダウンロード
フィールド値
CVE IDCVE-2026-33032
別名MCPwn
CVSS 3.19.8 / Critical (AV:N / AC:L / PR:N / UI:N / S:U / C:H/I:H/A:H)
CWECWE-306 重要な機能に対する認証の欠如
影響を受ける製品nginx-ui (github.com/0xjacky/nginx-ui)
影響を受けるバージョン2.3.4 より前のすべてのバージョン
修正バージョン2.3.4
悪用状況実環境で活発に悪用中 (Picus Security、Recorded Future)
Shodan での露出インターネットに公開された約 2,689 インスタンス
公開日2026-04-15
MCP ツールnginx サーバーへの影響
edit_config任意のサーバーブロックを書き換え、攻撃者の upstream を挿入
reload_nginx手動操作なしで攻撃者の設定を適用
stop_nginxサービス拒否 (DoS)
read_fileマウントされたパスから TLS 秘密鍵や資格情報を外部に持ち出す
create_cert攻撃者の管理下で TLS 証明書を再発行
list_backups / downloadnode_secret とハッシュを含む nginx-ui バックアップ全体を取得
フラグ目的
--target単一の URL または host[:port]
--targets改行区切りのターゲットファイル
--timeoutHTTP タイムアウト、デフォルト 10 秒
--workers一括スキャン用の並行ワーカー数、デフォルト 10
--verify-tlsTLS 証明書の検証を強制 (デフォルトではオフ)
--jsonNDJSON を出力、ターゲットごとに 1 レコード
--no-bannerASCII バナーを抑制