はじめに
オープンソースの自己ホスト型スプレッドシートデータベースであるGrist-Coreに、リモートコード実行(RCE)を可能にする重大なセキュリティ脆弱性が発見されました。この脆弱性は「CVE-2026-24002」(CVSSスコア:9.1)と追跡され、Cyera Research Labsによって「Cellbreak」と名付けられています。
発見者のセキュリティ研究者Vladimir Tokarev氏は、「1つの悪意ある数式が、スプレッドシートをリモートコード実行(RCE)の拠点に変えることができる」と警告しています。
脆弱性の詳細:Pyodideサンドボックスからの脱出
Cellbreakは、Pyodideサンドボックスエスケープの一種に分類され、過去にn8nにも影響を与えた「CVE-2025-68668」(CVSSスコア:9.9、別名N8scape)と同様のメカニズムです。
- 影響を受けるシステム: Grist-Core
- 脆弱性の原因: Gristが信頼できない数式をPyodide(WebAssemblyサンドボックス内でPythonコードを実行するディストリビューション)内で実行することを許可している点
- 問題点: サンドボックスがブロックリスト方式のアプローチを採用していたため、サンドボックスを回避し、基盤となるホスト上でコマンド実行が可能となる
Tokarev氏は、「サンドボックスの設計がPythonのクラス階層をたどることを許し、さらにctypesを利用可能にしたため、数式セルから決して到達すべきではないEmscriptenランタイム機能へのアクセスが開かれた」と説明しています。
攻撃のメカニズムと深刻な影響
この脆弱性を悪用することで、攻撃者は以下のような深刻な操作を行うことが可能になります。
- OSコマンドの実行
- ホストランタイムでのJavaScriptの実行
- ファイルシステムへのアクセス
- 機密情報の漏洩(データベースの認証情報、APIキーなど)
- 横断的移動(ラテラルムーブメント)
Gristによると、ユーザーがGRIST_SANDBOX_FLAVORをPyodideに設定している場合、悪意のあるドキュメントを開くだけで、Gristをホストしているサーバー上で任意のプロセスが実行される可能性があります。
対応策と推奨事項
この脆弱性は、2026年1月9日にリリースされたバージョン1.7.9で対処されています。ユーザーは可能な限り速やかに最新バージョンへのアップデートが推奨されます。
更新と環境設定の確認
- Gristの管理パネルのサンドボックスセクションで、現在の設定を確認してください。
gvisorと表示されている場合は、この脆弱性の影響を受けません。pyodideと表示されている場合は、直ちにバージョン1.7.9以降にアップデートすることが不可欠です。
新たなデフォルト設定と注意点
Gristは、Pyodide数式実行をデフォルトでDeno JavaScriptランタイムの下で実行するように変更することで問題を解決しました。しかし、以下の点に注意が必要です。
- オペレーターが明示的に
GRIST_PYODIDE_SKIP_DENO環境変数を「1」に設定した場合、リスクが再燃します。 - 信頼できない、または半信頼の数式が実行される可能性のあるシナリオでは、この設定は避けるべきです。
一時的な緩和策
緊急のアップデートが難しい場合、一時的な緩和策として、GRIST_SANDBOX_FLAVOR環境変数を「gvisor」に設定することが推奨されます。
教訓:サンドボックス設計の重要性
Tokarev氏は、「サンドボックスの設計は、脆弱なブロックリストではなく、機能ベースの多層防御である必要がある」と強調しています。この事例は、単一の実行サーフェスが特権アクセスを持つ場合に、サンドボックスの不備が組織の信頼境界をいかに崩壊させるかを示しています。セキュリティパッチを適用し、安全な運用を心がけることが重要です。
元記事: https://thehackernews.com/2026/01/critical-grist-core-vulnerability.html
