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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-39987_POC — CVE-2026-39987の概念実証エクスプロイト。Marimoの/terminal/ws WebSocketエンドポイントにおける認証前RCEであり、認証情報なしで対話型シェルを取得できる。 | Kitploit
ツール/GitHubGitHub/julichaan/cve-2026-39987_poc
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト認証リモートアクセスツール
GitHubjulichaan/cve-2026-39987_poc

CVE-2026-39987_POC

CVE-2026-39987の概念実証エクスプロイト。Marimoの/terminal/ws WebSocketエンドポイントにおける認証前RCEであり、認証情報なしで対話型シェルを取得できる。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

PoC — CVE-2026-39987 · Marimo 認証前 RCE

CVSS 4.0: 9.3 (Critical) · AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H 影響: marimo <= 0.20.4 · 修正済み: 0.23.0 · CWE-306 (認証の欠如) アドバイザリ: GHSA-2679-6mx9-h9xc · 修正: marimo-team/marimo@c24d480

根本原因

WebSocket エンドポイント /terminal/ws (marimo/_server/api/endpoints/terminal.py) は、接続を受け入れ pty.fork() を呼び出す前に、セッションモード (EDIT) と プラットフォームサポートのみをチェックします。@requires(...) デコレータも validate_auth() 呼び出しも含まれていません。

0.20.4 で測定された対比:

  • 18 個のエンドポイント全体で 73 箇所の @requires(...) の使用。
  • /ws (notebook) -> validate_auth() への 2 回の呼び出し。
  • terminal.py -> @requires 0 箇所、validate_auth 0 箇所。 <-- これが脆弱性。
  • AuthBackend ミドルウェアは HTTP と /ws WebSocket を保護しますが、 /terminal/ws は Cookie もトークンもなしに接続を受け入れ、marimo プロセスの 権限で PTY シェルを fork します。

    悪用要件

    • marimo が EDIT モード (marimo edit ...) で起動されていること。これはエディタのデフォルトモードです。
    • pty サポートのあるプラットフォーム (Linux/macOS、Windows と Pyodide は影響を受けません)。
    • ポートへのネットワークアクセス。認証情報は不要です。

    攻撃シナリオ

    ネットワーク経由で marimo edit サーバーに到達できる攻撃者 (リモート / コンテナ デプロイでよく見られ、しばしば root として実行される) は、認証なしで 対話型シェルを取得します: 認証情報の窃取 (cat .env)、横展開、 マルウェアの展開。公開後 10 時間以内に実際に悪用され、2026-04-23 に CISA の KEV カタログに追加されました。

    PoC の使用方法

    root@kitploit:~
    pip install "marimo==0.20.4" websockets
    marimo edit demo.py --headless --port 2718 --token --token-password SECRET
    python exploit.py ws://127.0.0.1:2718 "id; cat /etc/passwd"
    

    exploit.py はトークン、Cookie、Authorization ヘッダーを一切送信しません。ユーザーが ターミナルに入力するのとまったく同じように、コマンドを生テキスト + "\r" (Enter) として送信します。

    ラボで得られた結果 (Kali、marimo 0.20.4)

    • トークンなしのベースライン: HTTP -> 401 ; /ws -> 403 (認証は機能している)。
    • トークンなしの /terminal/ws -> 受け入れられた。サーバー上で実行された: uid=1000() gid=1000() ... Linux ... そして /tmp/cve_2026_39987_proof.txt に書き込み -> RCE を確認。

    修復

    marimo >= 0.23.0 にアップグレードしてください。一時的な緩和策: marimo edit を 信頼できないネットワークに公開しないこと。エディタを認証済みプロキシの背後に置くこと。 シークレットを含まない非特権 / コンテナ内で実行すること。

    免責事項

    認可されたセキュリティテストおよび教育目的のみ。所有している、またはテストの 明示的な許可を得ているシステムに対してのみ実行してください。

    ツールをダウンロード