オープンソースのインタラクティブPythonノートブック環境「Marimo」に、認証なしでリモートコード実行(RCE)が可能な重大な脆弱性(CVE-2026-39987)が発見された。GitHubのスコアリングでは10点満点中9.3という「Critical」評価であり、Sysdigの調査によると開発者アドバイザリの公開からわずか10時間以内に実際の攻撃が始まっている。GitHubスター数2万を誇る比較的メジャーなプロジェクトだけに、影響を受けている環境は決して少なくないはずだ。
脆弱性の仕組み——認証ゼロで「シェル」が渡される
今回の問題の本質はシンプルかつ深刻だ。MarimoはWebSocket経由でインタラクティブなターミナルを提供する /terminal/ws エンドポイントを持っているが、このエンドポイントに一切の認証チェックが存在しない。
接続できさえすれば、Marimoプロセスが持つ権限そのままのフルシェルが手に入る。データサイエンティストやMLエンジニアが日常的に使うツールが、外部からそのまま「踏み台」になる構造だ。
影響を受けるのは以下の条件を満たす環境:
- バージョン 0.20.4 以前を使用している
--host 0.0.0.0で起動し、編集モードでネットワークに公開している
チームで共有するJupyterライクな環境として使っているケースや、社内Wikiサーバー的に外部公開している開発用サーバーが特にリスクが高い。
実際の攻撃の手口——3分以内で完了する認証情報窃取
Sysdigのレポートが記録した攻撃の流れは、驚くほど手際が良い。
/terminal/wsへ接続し、RCEが成立することをすばやく確認して切断- 再接続後、
pwd・whoami・lsで環境を把握 .envファイルを直接読み取り、クラウド認証情報やアプリケーションシークレットを抽出- SSHキーの探索も実施
この一連の操作が3分以内に完了している。 攻撃者はマルウェアや永続化ツールを一切インストールしておらず、「静かに盗んで去る」ステルス型の手口だ。暗号通貨マイナーを仕込んで騒ぎを起こすよりも、気づかれにくく高価値な情報を狙う判断をしている。
対応策——修正版への即時アップデートが最優先
開発チームはすでに バージョン 0.23.0 で修正済みのリリースを公開している。
出典: この記事は Critical Marimo pre-auth RCE flaw now under active exploitation の内容をもとに、筆者の見解を加えて独自に執筆したものです。