2026年2月3日、CVE-2026-25253が公式に開示された。脆弱性は1月30日リリースのOpenClawバージョン2026.1.29で静かにパッチされていた。しかし開示が公になった時点で、Shodanスキャンはすでにインターネット上に42,000以上の露出したOpenClawインスタンスを発見していた。そのうち63%がパッチ未適用バージョンを使っていた。
脆弱性はCWE-669:領域間の不正なリソース転送に分類された。平たく言えば:OpenClawのWebインターフェースが信頼すべきでないソースから、信頼すべきでないデータを信頼し、結果としてマウスクリック一回で完全なマシン乗っ取りが可能になった。
正確な仕組みを説明する。
攻撃チェーン
この攻撃はOpenClawのControl UI——インスタンス管理用のWebベースダッシュボード——を悪用する。UIはWebSocket経由でOpenClawゲートウェイに接続する。致命的な欠陥:UIはURLパラメータからゲートウェイURLを読み取り、Originを検証せずに自動接続する。
ステップ1:悪意あるページの作成。
攻撃者はWebSocket接続を開くJavaScriptを含むWebページを作成する。ページは攻撃者が管理する任意のドメインにホストされる。
ステップ2:被害者の誘導。
攻撃者は被害者にリンクを送る——メール、Slackメッセージ、フォーラム投稿、SNSのDMで。リンクは被害者のOpenClawゲートウェイアドレスを指定する巧妙に構成されたURLパラメータ付きで攻撃者のページを指す。
ステップ3:トークンの窃取。
被害者がリンクをクリックすると、ブラウザが攻撃者のページをロードする。そのページのJavaScriptが被害者のOpenClawゲートウェイへのWebSocket接続を開く。Control UIがWebSocket接続のOriginヘッダを検証しないため、ゲートウェイは接続を受け入れる。攻撃者のJavaScriptがWebSocketハンドシェイクから認証トークンを抽出する。
ステップ4:完全な乗っ取り。
認証トークンがあれば、攻撃者はOpenClawインスタンスへの完全な管理者アクセスを持つ。ホストマシン上で任意のコマンドを実行し、ファイルの読み書きをし、APIキーを含む環境変数にアクセスし、永続的なバックドアをインストールできる。
チェーン全体——クリックから侵害まで——はミリ秒単位で実行される。被害者は異常に気づかない。リンクをクリックしてWebページが開いた。AIエージェント、そしてマシンが侵害されたことを示す兆候はない。
なぜこの脆弱性が存在したか
CVE-2026-25253は微妙なバグではない。Cross-Site WebSocket Hijackingは2012年から知られている脆弱性クラスだ。修正方法——WebSocket接続のOriginヘッダを検証する——はすべてのWebセキュリティガイドに書かれている。ではなぜOpenClawはこの欠陥を持ったまま出荷されたのか。
答えはプロジェクト初期に行われたアーキテクチャ上の決定にある。
OpenClawのプラグインエコシステムは、この寛容なWebSocketモデルに依存している。サードパーティツール、ブラウザ拡張機能、自動化スクリプトがすべてWebSocket経由でゲートウェイに接続する。Originヘッダを検証すると、異なるOriginから接続するツールとの互換性が壊れる——それはまさにプラグインエコシステムがやっていることだ。
OpenClawチームはこれを知っていた。2025年初頭からの内部issueがWebSocketの信任モデルを議論している。決定は「プラグインAPIへの破壊的変更が必要になるため修正を延期する」だった。セキュリティが後方互換性と引き換えにされ、その取引は裏目に出た。
このパターン——破壊的変更を避けるためにセキュリティ修正を延期する——は急成長するオープンソースプロジェクトでよくある。重大な脆弱性が蓄積する仕組みでもある。個々の延期は合理的に見える。複合リスクは何かが壊れるまで静かに成長する。
露出問題
OpenClawインスタンスがインターネットからアクセスできなければ、脆弱性単体でも深刻だが管理可能だったはずだ。しかしアクセスできた。42,000以上。
OpenClawのデフォルト設定はゲートウェイを0.0.0.0——パブリックインターフェースを含むすべてのネットワークインターフェース——にバインドする。セットアップドキュメントはこれについて目立つ警告をしていない。VPS、クラウドインスタンス、あるいはパブリックIPアドレスを持つ任意のマシンにOpenClawをデプロイしたユーザーは、即座に露出する。
SecurityScorecardのSTRIKEチームが82カ国にわたる露出をマッピングした。最も集中していたのは米国、ドイツ、中国、インド——開発者人口密度と相関する。露出したインスタンスの多くに企業デプロイの兆候が見られた:カスタムSSL証明書、内部ホスト名、エンタープライズクラウドプロバイダのIP範囲。
つまり:CVE-2026-25253はラップトップでOpenClawを動かすホビイストだけのリスクではなかった。内部システム、認証情報、データへのアクセスを持つAIエージェントをデプロイした企業へのリスクだった。
パッチとその限界
1月30日リリースのOpenClawバージョン2026.1.29は、WebSocketハンドラへのOriginヘッダ検証を追加してCVE-2026-25253に対処した。ホワイトリストにないOriginからの接続は拒否される。
パッチはこの特定の脆弱性には有効だ。しかし基礎的なアーキテクチャの問題は対処されていない:
- •ゲートウェイはデフォルトで0.0.0.0にバインドされたまま
- •スキルはOpenClawプロセスと同じOS権限で動いたまま
- •Node.jsの依存ツリーは1,200以上のパッケージを含んだまま
- •認証は暗号ペアリングではなくbearerトークンに依存したまま
CVE-2026-25253はCVE番号を取得した脆弱性だ。唯一の攻撃面ではなかった。2026年1月から3月にかけて、OpenClawはコマンドインジェクション、SSRF、パストラバーサル、プロンプトインジェクション駆動のコード実行を含む31件のCVEを蓄積した。WebSocketの欠陥は開いたドアだった;欠けていたセキュリティアーキテクチャが、ドアの向こうに何もなかった理由だ。
アーキテクチャの教訓
「脆弱性がある」と「根本的に安全でない」の違いは重要だ。
すべてのソフトウェアプロジェクトに脆弱性はある。問題は、脆弱性が見つかったときにアーキテクチャが爆発半径を制限するかどうかだ。適切なサンドボックス、最小権限、多層防御を持つシステムの脆弱性は、パッチされる問題だ。サンドボックスなし、フルOS権限、寛容な信任モデルのシステムの脆弱性は、侵害だ。
OpenClawのアーキテクチャは後者に分類された。単一の決定のためではなく、開発者体験とエコシステム成長をセキュリティ制約より優先した決定パターンのためだ。
ZeroClawのアーキテクチャは異なるトレードオフをする。deny-by-defaultのアローリスト、Rustのメモリ安全性保証、ゲートウェイペアリングモデル、プラグインマーケットプレイスの不在は、無敵にはしない——無敵なものは存在しない。しかし爆発半径を制限する。侵害されたZeroClawスキルはワークスペース外のファイルを読めない。ZeroClawゲートウェイは暗号ペアリングキーなしに接続できない。ZeroClawバイナリには毒を盛る依存ツリーがない。
これらは危機の後にボルトオンされた機能ではない。最初のコミットからアーキテクチャに組み込まれた制約だ。そして——アーキテクチャとしてのセキュリティ vs パッチとしてのセキュリティ——この区別こそ、CVE-2026-25253がAIエージェントコミュニティに教えたことだ。
今すぐやるべきこと
OpenClawを動かしている場合:
- 1.バージョン2026.1.29以降に直ちにアップデート
- 2.ゲートウェイがインターネットに露出しているか確認:`ss -tlnp | grep openclaw`
- 3.0.0.0.0にバインドされていたら、設定でバインドアドレスを127.0.0.1に変更
- 4.Koi Securityが公開した既知の悪意あるリストとインストール済みスキルを照合
- 5.OpenClawプロセスがアクセスできたAPIキー、トークン、認証情報をすべてローテーション
- 6.フルOS権限のJavaScriptベースAIエージェントの運用が脅威モデルに適合するか再検討
AIエージェントフレームワークを評価している場合:
何より先に三つの質問をせよ。スキルやプラグインがデフォルトで得る権限は何か。脆弱性が見つかったとき爆発半径は封じ込められるか。フレームワークのデフォルト設定は安全か、それともセキュリティには手動のハードニングが必要か。
その答えが、機能リスト以上にフレームワークのセキュリティ姿勢を教えてくれる。