技術 約10分で読めます

OpenClawのスキル7%に深刻な脆弱性、30,000インスタンス超が露出

Composio社がOpenClawのセキュリティ分析レポートを公開した。かなり深刻な内容だ。SkillHub(スキルマーケットプレイス)で配布されていた3,984個のスキルのうち7.1%に当たる283個に脆弱性が含まれ、30,000以上のインスタンスがインターネットに丸見えの状態で放置されていた。「便利なAIエージェント」の裏側で、ユーザーのメール・チャット・APIキー・パスワードが攻撃者に筒抜けになり得る状態が数週間続いていたことになる。

OpenClawとは

OpenClawはWhatsApp・Slack・Gmail・Telegramなどのサービスに接続し、50以上の統合を経由してタスクを自律実行するAIエージェントフレームワークだ。SkillHubという配布マーケットプレイスからスキル(拡張機能)をインストールする仕組みを持つ。

YouTubeやXで「これ入れるだけでAIが全部やってくれます!」と紹介されているのを見た人も多いだろう。問題は、その「全部やってくれる」の中身が「攻撃者にも全部やってくれる」だったという点だ。

SkillHubのサプライチェーンリスク

Snykの分析によると、最も多くダウンロードされたTwitter操作スキルの一つが悪意あるインフラに接続していた。攻撃の配布手法は段階的で、ユーザーが気づく頃にはすでに手遅れになるよう設計されている。

graph TD
    A[スキルインストール] -->|スキル概要が指示| B[前提依存関係のインストール]
    B -->|悪意あるページへ誘導| C[任意コマンド実行]
    C -->|難読化ペイロードのデコード・実行| D[第2段階スクリプトのダウンロード]
    D --> E[認証情報窃取・データ送信]
  1. スキルの概要説明に「前提条件のインストールが必要」と記載し、ユーザーに外部依存関係のインストールを促す
  2. 誘導先の悪意あるページで任意コマンド実行を発生させる
  3. 難読化されたペイロード(悪意あるコード本体)をデコードして実行
  4. 第2段階の本体スクリプト(ステージャー)をダウンロードして実行する。ステージャーとは本体をダウンロードする中間ローダーのことで、初期感染コードを小さく保ちながら本格的な攻撃コードを後から取得する手法に使われる

「人気のスキルだから安全」という思い込みが一番危ない。ダウンロード数が多いスキルほど攻撃者にとってはターゲットとして魅力的で、実際に人気スキルが汚染されていた。npmで言えば人気パッケージが乗っ取られるのと同じ構図だが、OpenClawの場合はスキルがメール・チャット・ファイルシステムへの直接アクセス権を持つ分、被害が段違いに大きい。

この手口は以前取り上げたOpenClaw SKILL.mdを経由したAMOS感染チェーンと構造が似ている。あちらはスキルリポジトリのSKILL.mdに悪意ある指示を埋め込み、AIエージェント自身にマルウェアをダウンロード・実行させる手口だった。今回のSkillHub経由の攻撃はより古典的なソーシャルエンジニアリング寄りだが、「スキルの配布経路を汚染する」という点では同じサプライチェーン攻撃だ。

npmエコシステムでも同様のサプライチェーン攻撃が活発化している。SANDWORM_MODEキャンペーン(一連の攻撃活動)ではClaude Code・Cursor・VS Codeなど主要AI開発ツールのユーザーを標的にクリプトキーとCI secretsが窃取された。またGlassWormはOpen VSXの拡張機能依存関係を悪用してトランジティブ感染(推移的依存関係を経由した感染)を実現しており、AI開発者が使うツールチェーン全体がサプライチェーン攻撃の対象になっている。

プロンプトインジェクションの構造問題

OpenClawはメール・WhatsAppメッセージ・Web検索結果など複数の経路からテキストを取り込む。これらのテキストに攻撃者が命令文を埋め込んでおくと、エージェントが「ユーザーからの指示」として解釈して実行するリスクがある。これがプロンプトインジェクション攻撃だ。

レポートでは「LLMのオートリグレッシブアーキテクチャの本質上、完全な防御は不可能」と指摘している。ここが核心で、これはOpenClawのバグではなく、LLMベースのエージェントが抱える原理的な限界だ。パッチを当てれば直るような問題ではない。経路の多さがリスクを増幅させており、50以上の統合サービスそれぞれが攻撃の入口になる。

実際の攻撃事例として、ClinejectionではGitHubイシューのタイトルに埋め込んだプロンプトインジェクションがClineエージェントを乗っ取り、4,000台の開発マシンに不正なnpmパッケージをインストールさせた。OpenClawは50以上のサービスからテキストを取り込むため、攻撃面はClineのケースよりはるかに広い。

プロンプトインジェクション対策の最新動向としては、GitHubのエージェント実行基盤とOpenAI IH-Challengeの取り組みで、インフラ側での隔離やモデル訓練によるアプローチが模索されている。ただし現時点で万能な解決策は存在しない。

Simon Willisonの「致命的トライアド」

セキュリティ研究者Simon Willisonが提唱する「致命的トライアド(Lethal Triad)」という概念がある。AIエージェントが高リスクになる3条件だ。

条件OpenClawの状態
個人データへのアクセス権ファイルシステム・認証情報・システムへの直接アクセスあり
未信頼コンテンツへの露出メール・メッセージ・Web検索結果を常時取り込む
外部通信能力50以上のサービス統合でデータ送信が可能

3条件がすべて揃っている。しかも最悪のレベルで。

1つでも該当すれば注意が必要なところ、OpenClawは3つすべてをフルスロットルで満たしている。侵害されたエージェントは統合されたすべてのサービスへのアクセス権を攻撃者に渡す。WhatsAppのメッセージを全部読まれ、Gmailから勝手にメールを送信される。たった1つのプロンプトインジェクションでこれが起きる。

OAuthトークンの露出とインスタンス問題

OpenClawがOAuth認証情報を保存するパスが agents/<agentId>/agent/auth-profiles.json であることが判明した。このファイルがディスクに平文で存在するため、エージェントへのアクセスを得た攻撃者がSlack・Gmailなど各サービスのOAuthトークンを入手できる。盗んだトークンを使えば実ユーザーになりすまして各サービスで行動できる。

展開面の問題はさらに深刻だった。初期のバージョンでは「localhostからの接続は自動承認」という設定になっており、逆プロキシを経由したインターネット接続も承認対象として扱われた。この誤設定により、30日間で30,000以上のOpenClawインスタンスがインターネットに公開された状態になっていた。つまり、世界中の誰でもアクセスできた。OAuthトークンが平文で保存されているインスタンスに、インターネットから直接アクセスできる状態が1ヶ月も続いていた。

同様のインスタンス露出問題は他のAIプラットフォームでも起きている。LangflowのCVE-2026-33017では認証なしRCEの脆弱性が公開20時間以内に実攻撃に使われ、n8nの複数RCE脆弱性では24,700インスタンスに未パッチが残っていた。自律エージェントやワークフロー自動化ツールのインスタンスがインターネットに露出するパターンは繰り返されている。

メモリ汚染(Memory Poisoning)

OpenClawはメモリをMarkdownファイルの集合として保存する。侵害されたエージェントが自身のメモリファイルを改ざんすると、ユーザーが気づかないまま特定の隠れた指示をエージェントが継続実行し続ける状態が生まれる。スキル感染が急性的(インストール時に発火)であるのに対し、メモリ汚染は潜在的で発見が難しい。

怖いのは、メモリ汚染されたエージェントは表面上は正常に動作し続けることだ。ユーザーから見れば「いつも通り動いている」のに、裏では攻撃者の指示に従って情報を外部に送り続けている。検出のしようがない。

この攻撃手法の詳細はAIエージェントメモリへの注入攻撃で解説した。メモリファイルに永続的な命令を埋め込むことで、エージェントの再起動後も悪意ある振る舞いが続く。OpenClawの場合、Markdownファイルという人間にも読める形式で保存されているにもかかわらず、50以上の統合サービス経由で自動的に書き換えられる可能性がある点が特に危険だ。

OWASP Top 10 for LLM Agentsへの該当

OWASPはセキュリティリスクの標準カタログを提供する団体で、LLMエージェント向けのTop 10リストも公開している。OpenClawは複数項目に該当する。

リスク項目OpenClawの状況
A01: プロンプトインジェクションWeb検索・メッセージ・スキルが命令を注入
A03: 過度な自律性ファイルシステムroot・認証情報へのアクセス、権限境界なし
A05: メモリ汚染信頼レベル・有効期限の区別なしにメモリを一元管理
A07: 不十分な権限分離未信頼入力と高権限実行が同一メモリ空間で処理

4項目に該当するのは相当まずい。OWASP Top 10はそもそも「最低限これだけは守れ」というリストであって、ここに引っかかるのは基本的なセキュリティ設計ができていないことを意味する。

メルカリに並ぶMac mini M4の山

話は変わるが、最近メルカリにMac mini M4が大量に出品されている。時期的にOpenClawブームと一致していて、「AIエージェントで自動化するぞ!」と意気込んで買ったものの、セキュリティの問題に気づいたか、思ったほど使えなかったか、あるいは単に飽きて売りに出した一般ユーザーではないかと疑っている。

これはAI驚き屋の罪が大きい。「M4 Mac miniを買ってOpenClawを入れれば人生変わる!」みたいな動画やポストが大量に流れた結果、技術的な背景を理解しないままハードを購入し、セットアップして個人情報を接続し、そしてこのレポートのような脆弱性に晒されていた人が少なくない数いたはずだ。

驚き屋たちはセキュリティリスクには一切触れない。「すごい! 便利! 革命!」だけ叫んで、問題が起きたら沈黙する。フォロワーに7%のスキルが悪意あるコードを含んでいた事実を伝えた驚き屋が何人いるか。30,000インスタンスがインターネットに丸見えだった事実を訂正した驚き屋が何人いるか。ゼロに近いだろう。

煽って売らせて、問題が起きたら知らんぷり。そしてメルカリにMac miniが並ぶ。このサイクルはOpenClawに限った話ではなく、AIツール全般で繰り返されている。

推奨される対策

それでもOpenClawを使うなら、最低限以下は必須だ。

ローカル環境での最小権限

  • 専用の隔離ユーザーアカウントで実行し、root権限は与えない
  • ホームディレクトリ全体をマウントせず、作業に必要な特定ディレクトリのみを割り当てる
  • Docker socketをマウントしない

OS標準のサンドボックス機能を使った隔離についてはAIエージェントのローカル隔離実行で、macOS sandbox-execとWindowsサンドボックスの実用的な違いを比較した。

ネットワーク露出の制限

  • ゲートウェイを127.0.0.1にバインドし、VPNまたはWireGuard/Tailscale経由のアクセスのみを許可
  • IPアドレス範囲によるファイアウォール設定を追加
  • デフォルト設定のまま放置しない。30,000インスタンスはデフォルト設定の犠牲者だ

CloudflareのAIアプリ向けWAFのように、プロンプトインジェクションやPII漏洩をネットワーク層で検出・遮断するアプローチも出てきている。エージェントのコード側だけでなく、前段のネットワークで防御層を追加するのは有効だ。

統合サービスの権限管理

  • リソース単位で認可スコープを絞る(「すべてのカレンダー」ではなく「このカレンダー」)
  • 削除・一括移動・共有など破壊的操作には人間の承認ステップを必須にする
  • OAuthトークンを定期的にローテーションする
  • 月次でアクセス権の棚卸しを実施する

操作の可視化

エージェントが「いつ何を実行したか」を追跡できないと、侵害後の原因調査が困難になる。ツール実行ログを外部に記録し、異常なアクセスパターンをアラートする仕組みが必要だ。AIコーディングエージェントを本番に載せるための設計原則でも、操作ログと権限分離の重要性を取り上げている。


レポートの著者は消費者に「現時点では避けるべき」と勧告しているが、個人的にはもっと強く言っていいと思う。ここで指摘されている問題はOpenClaw固有ではなく、ファイルシステムアクセス・外部サービス連携・多様なテキスト入力経路を持つAIエージェント全般に共通する。「便利そうだからとりあえず入れる」のではなく、何に接続し、何を許可し、何が起きうるかを理解してから使うべきだ。

自分がかなチャットを自作したのも、こういうリスクを構造的に排除したかったからだ。便利さと引き換えにセキュリティを差し出す必要はない。