Claude Coworkのサンドボックス欠陥、攻撃者がHyper-V VM内でrootとしてコマンド実行可能に

Anthropic社のWindows版Claude Coworkにおいて新たに公表されたサンドボックス脱出手法により、CoworkVMServiceおよびそのリモートプロシージャコール(RPC)インターフェースの設計上の脆弱性を悪用することで、攻撃者がHyper-Vで隔離されたUbuntu仮想マシン(VM)内でroot権限のコマンド実行を達成できることが明らかになりました。

この問題はArmadin社の研究者Nick McClendon氏によって文書化されたもので、Authenticodeで保護された名前付きパイプRPC、bubblewrapの名前空間、seccompフィルター、セッションごとの非特権ユーザー、そしてドメイン制限された送信プロキシとの間の相互作用における弱点を浮き彫りにしています。

これらの脆弱性は最終的に、仮想化環境内での権限昇格と無制限のネットワークアクセスを可能にしてしまいます。

Windows版Claude Desktopの一部であるClaude Coworkは、Windows Subsystem for Linux v2と同様に、Host Compute Serviceを使用してUbuntu VMを管理しています。

Image

この構成はHyper-Vからは見えない状態を保ちながら、Local Systemサービスである CoworkVMServiceを通じて機能を公開しています。このサービスは名前付きパイプ(.\pipe\cowork-vm-service)を介して、JSONベースのRPCサーバーで通信します。

CoworkVMServiceはWinVerifyTrustによるAuthenticode署名検証を実施しており、「Anthropic, PBC」により署名されたバイナリのみが接続できるようになっていますが、このメカニズムは身元の検証は行いません。

しかし、RPCリクエストの内容に対する認可は実施していません。C:\ProgramData\Claude\Logs\cowork-service.logに保存されるログには、攻撃者がプロトコルをリバースエンジニアリングするのに十分なテレメトリ情報が含まれています。これにはconfigure、startVM、isGuestConnected、spawnといったメソッド構造も含まれます。

署名検証を直接回避しようとして失敗した後、Armadin社はUSERENV.dll、特にGetUserProfileDirectoryWエクスポートを標的としたDLLサイドローディング(MITRE ATT&CK T1574/002)を利用しました。

Image

claude.exeはUSERENV.dllをシステムパスよりも先にアプリケーションディレクトリから解決するため、実行ファイルと同じ場所に悪意のあるDLLを配置することで、信頼された署名済みプロセス内での任意コード実行が可能になりました。このサイドローディングされたコンテキストはAuthenticodeの信頼性を引き継ぐため、名前付きパイプサービスとのやり取りに成功しました。

ログ分析、ファジング、パラメータ発見を通じて開発されたカスタムRPCクライアントを使用し、この研究者はspawnメソッドに重大な弱点があることを突き止めました。JSONペイロード形式([4バイトのビッグエンディアン長][JSONペイロード])には、isResumeやallowedDomainsといった未文書化のパラメータが含まれていました。

isResumeがfalseに設定されている場合、sdk-daemonはuseraddを通じて新規の非特権Linuxユーザーを作成することでサンドボックス制限を実施していました。しかし、isResumeをtrueに設定すると、この制御は完全に回避され、検証を経ることなくroot権限を含む既存の任意のユーザーとして実行できてしまいました。

「name」:「root」、「isResume」:trueという細工されたリクエストにより、uid=0のシェル、フル権限のLinux Capabilities(CapEff: 000001ffffffffff)、そして無制限のAppArmorプロファイルが返されました。

重要な点として、bubblewrapによって強制されるサンドボックスの隔離は、PID 1を標的にしたnsenterを使用することで回避できたため、ホストVMの名前空間(マウント、PID、UTS、IPC、ネットワーク)への脱出が可能でした。これによりプロセス全体への可視性、/etc/shadowなどの機密ファイルへのアクセス、そしてsdk-daemonおよびseccomp BPFフィルターを改変する能力が得られてしまいました。

さらに、allowedDomainsパラメータを使うことで、プロキシのネットワーク制限を回避できました。デフォルト設定ではブロックされたドメインに対してHTTP 403が返されますが、「allowedDomains」:「*」と設定すると、無制限の送信接続が可能になり、実際にHTTP 200の応答成功と攻撃者が管理するインフラへのデータ持ち出しが確認されました。

これら2つの手法を単一のspawnリクエストに組み合わせることで、攻撃者はrootとしてコマンドを実行し、nsenterを使ってサンドボックスから脱出し、curlとbase64エンコードを使って/etc/shadowなどの機密データを持ち出すことができます。しかもこれらはすべてVM内部から、ホストベースの防御機構に検知されることなく実行可能です。

2026年3月20日に責任ある開示が行われたにもかかわらず、Anthropic社はこの問題をセキュリティ脆弱性ではないと分類し、ホストシステム上でのローカルコード実行が前提条件であると主張しています。

この調査結果は、Claude CoworkのようなAI生産性ツールによってもたらされる攻撃対象領域の広範な変化を浮き彫りにしています。信頼の強制をクライアント側で制御可能なRPCパラメータに委ねていることに加え、仮想化によって生じる可視性のギャップが組み合わさることで、悪用可能な状況が生まれています。この状況では、素早く行動する攻撃者が、防御側が検知するよりも早く設定不備を武器化できてしまいます。

防御に関する推奨事項としては、AppLocker Packaged Appルールを通じてClaude Desktopの使用を制限することや、C:\Windows\System32以外の場所でのUSERENV.dllなど、異常なDLLロードを示す可能性のあるサイドローディングの兆候を検知するために、Sysmonイベント ID 7を監視することが挙げられます。

Interact with Cyber Threats in Windows, Linux, macOS VMs to Trigger Full Attack Chain - Analyse Malware & Phishing with ANY RUN

Mobilesecurity apps

翻訳元: https://gbhackers.com/claude-cowork-sandbox-flaw/

ソース: gbhackers.com