SharedRoot:Claude Coworkサンドボックスの脱出
研究者は、Claude Coworkのサンドボックス隔離をバイパスし、VMからホストシステムに脱出して、許可プロンプトなしにホストファイルシステム全体を読み書きする攻撃チェーンを発見しました。脆弱性はAnthropicに報告されましたが、「参考情報」としてクローズされました。攻撃チェーンは、カーネル脆弱性、名前空間、seccompフィルター、ファイルシステム共有を悪用しています。記事はまた、そのような攻撃を完全に防止できる4つの設計選択について議論しています。
研究者らは、Claude Coworkのサンドボックスを脱出するSharedRootと呼ばれる攻撃チェーンを公開しました。この攻撃により、Linux仮想マシン内で動作するAIエージェントが隔離境界を突破し、許可プロンプトなしにホストMacのファイルシステム全体(SSHキーやクラウド認証情報を含む)にアクセスできるようになります。この発見は、現在のAIサンドボックス設計における根本的なセキュリティ課題を浮き彫りにしています。
Coworkの設計は、エージェントの活動を仮想マシン内に制限し、マウント機構を介してユーザーが指定したフォルダのみを公開することを意図しています。しかし、研究チームは以下のステップで完全な脱出が可能であることを実証しました。まず、非特権ユーザー名前空間を利用して完全なLinuxケイパビリティを取得。次に、netlinkソケットを介してtcコードをロード可能なモジュールact_peditをトリガー。その後、公開されているカーネル脆弱性CVE-2026-46331(pedit COW)を悪用してページキャッシュを汚染し、静かにゲストroot権限に昇格。最後に、ホストファイルシステムのマウントポイント/mnt/.virtiofs-rootを介してホストファイルを読み書きします。
各ステップは特定のシステム設定に依存しています。例えば、seccompフィルターはデフォルト許可のブラックリスト方式を採用しており、unshareやnetlinkソケットをブロックしていません。また、ホストのルートファイルシステムが読み書き可能でVMに共有されていることが、脱出の最終出口を提供しています。Anthropicは報告を受けましたが、CVEが30日の公開ウィンドウ内にあること、および強化策は独立した脆弱性ではなく多層防御と見なされることを理由に「参考情報」としてクローズしました。
記事は、カーネルパッチだけでは問題を解決できないと強調しています。新しい権限昇格の脆弱性が絶えず出現するからです。代わりに、より上位のレイヤーで4つの設計選択を実施すべきです。すなわち、非特権ユーザー名前空間の無効化(例:apparmor_restrict_unprivileged_userns=1の設定)、seccompフィルターのデフォルト拒否への変更、未使用カーネルモジュールの無効化または削除(例:install /bin/falseによる自動ロードの防止)、そして最も重要なのは、ホストファイルシステム全体ではなく、ユーザーが接続したフォルダのみを共有することです。これらの対策のいずれか一つでも攻撃チェーンを遮断でき、しかも個別のCVEだけでなく攻撃カテゴリ全体を防御できます。
研究者らは、自社製品Accomplishでは同様の原則を採用し、ゲストVM全体を信頼せず、ホストレイヤーで境界を強制することで、ゲストカーネルの安全性に依存しない設計をしていると述べています。この事例は、AIエージェントのサンドボックス設計において、カーネルに脆弱性がないという前提に依存すべきではないという重要な教訓を提供しています。