CVE-2026-25253がOpenClawのすべてのユーザーをRCEに晒した—そして1つのコマンドで修正する方法

Dev.to / 2026/3/24

💬 オピニオンDeveloper Stack & InfrastructureSignals & Early TrendsIdeas & Deep Analysis

要点

  • CVE-2026-25253(CVSS 8.8)は、悪意のあるWebサイトにアクセスするだけで、OpenClawのユーザーがリモートコード実行(RCE)に晒され得ることを示し、不審なクリックなしにトークンの盗難と完全な侵害を可能にしました。
  • この記事では、自律型AIエージェントはシェルコマンドを実行し、ブラウザを制御し、ファイルシステムにアクセスし、通信を送信し、外部ソースのスキルをインストールできるため、攻撃対象領域が拡大すると論じています。
  • このインシデントは、プロンプトインジェクション(データに埋め込まれた悪意ある指示)と過剰な自律性(agency)の組み合わせとして位置づけられます。すなわち、エージェントには広範なシステムアクセス権があり、乗っ取りを検知するためのセーフガードが欠けていたということです。
  • この記事では、大手のセキュリティ研究に共通して見られる、フレームワークの保護が欠けている点として、アイデンティティ層の不在、アクションの許可(authorization)の欠如、メモリ整合性の弱さ、スキル/プラグインの検証不足、そして不十分なPIIガードレール(個人情報保護の仕組み)を挙げています。
  • OpenClawは特定のCVEに対するパッチを提供しましたが、本記事は、許可と隔離の制御を追加しない限り、エージェント設計におけるこうしたシステム的なアーキテクチャ上のギャップは再び繰り返される可能性が高いと強調しています。

CVE-2026-25253 は CVSS スコアで 8.8 を記録しました。これにより、あらゆるWebサイトがあなたの OpenClaw 認証トークンを盗み、単一の悪意あるリンクを通じてあなたのマシンでリモートコード実行を行えるようになりました。

怪しいものをクリックする必要はありませんでした。OpenClaw が動作している間に、ただウェブページを訪問するだけでよかったのです。

これは自律型AIエージェントに固有の攻撃面の問題であり、CVE-2026-25253 はその中でも最も目に見える例にすぎません。

AIエージェントが特に危険な理由

従来のソフトウェアには、アプリケーションと外部世界の間に明確な境界があります。AIエージェントにはそれがありません。

OpenClaw エージェントは次のことができます。

  • 任意のシェルコマンドを実行する
  • ブラウザを制御し、あらゆるウェブサイトとやり取りする
  • システム上のどこにでもあるファイルを読み書きする
  • 本人に代わってメールやメッセージを送る
  • 外部レジストリから新しいスキルをインストールする

これらはすべて自律的に行われます。エージェントは指示に基づいて何をするかを決めますが、その指示はどこからでも来得ます。訪問したウェブページ、読み取ったドキュメント、処理したメール、インストールしたスキルなどです。

これにより、プロンプトインジェクションと呼ばれる攻撃クラスが生まれます。これは、エージェントの挙動を乗っ取るようにデータに埋め込まれた悪意ある指示です。OWASP はエージェント型AIのリスクカテゴリを 10 個に整理しました:

  • ASI01 — プロンプトインジェクション
  • ASI02 — 不適切な出力処理
  • ASI03 — トレーニングデータ汚染
  • ASI04 — モデルのサービス拒否
  • ASI05 — サプライチェーンの脆弱性
  • ASI06 — 機密情報の開示
  • ASI07 — 不適切なプラグイン設計
  • ASI08 — 過剰なエージェンシー(代理権限)
  • ASI09 — 過度な依存
  • ASI10 — モデル窃取

CVE-2026-25253 は、ASI01 と ASI08 の組み合わせを直接示す例です。エージェントは過剰なエージェンシー(完全なシステムアクセス)を持っており、乗っ取られていることを検知するためのセマンティックなファイアウォールがありませんでした。

あらゆるAIエージェントのフレームワークに欠けているもの

CrowdStrike、Cisco、Microsoft はいずれも、自律型AIエージェントにおけるセキュリティ上のギャップに関する研究を公開しています。調査結果は重なっています:

  • アイデンティティ層がない — どんなプロセスでも任意のエージェントになりすませる
  • アクション認可がない — エージェント自身が何を実行するかを決める。しかも、その指示は操作され得る
  • メモリの完全性がない — エージェントの過去の文脈が、セッションをまたいでこっそり汚染され得る
  • スキルの事前審査がない — プラグインはハッシュ検証や能力(capability)証明のない markdown ファイル
  • PII ガードレールがない — エージェントが第三者スキルを通じて機密データを持ち出しても、検知されない可能性がある

OpenClaw は CVE-2026-25253 を修正しました。しかし根本のアーキテクチャ――完全なシステムアクセスを持つ自律エージェントであり、独立したセキュリティ層がない――という点は変わっていません。

修正策:エージェントが上書きできないランタイムのセキュリティ層

私は過去数か月、Crawdad を構築してきました。これは、あなたのAIエージェントと、それが実行できるすべてのものの間に割り込むランタイムセキュリティAPIです。

重要な設計原則:セキュリティ層はエージェントから独立している必要があります。エージェントが自分のセキュリティを制御してしまうと、成功したプロンプトインジェクション攻撃でそれを無効化できてしまいます。

Crawdad は 3 つのポイントで介入します:

1. 受信(Inbound) — エージェントが受け取るすべてのメッセージは、LLM が見る前にプロンプトインジェクションのパターンとしてスキャンされます。27 のパターンカテゴリ、構造的な難読化の解除、Unicode 正規化、base64 検出。ウェブページ、ドキュメント、メールに埋め込まれた注入指示は、ここで検知されます。

2. アクション認可 — すべてのツール呼び出しは、実行前にポリシーエンジンを通過します。シェルコマンド、ファイル書き込み、ブラウザ操作、外部API呼び出し――それぞれは設定可能なポリシーと 5 要素のリスクスコアに基づいて評価されます。「Two のルール(Rule of Two)」により、どのエージェントも同時に、信頼できない入力・機密データ・コード実行能力を保持できないようにします。

3. 送信(Outbound) — すべての応答は、エージェントから外に出る前に PII(15カテゴリ)、資格情報、APIキーについてスキャンされます。第三者スキルを通じたデータの持ち出しは、ここで検知されます。

これら 3 つの介入ポイントに加えて、Crawdad は次も提供します:

  • 暗号学的なエージェントのアイデンティティ — Ed25519 + CRYSTALS-Kyber1024 のハイブリッド鍵ペア
  • メモリの完全性 — Ed25519 の署名でメルクル鎖状に連結されたメモリエントリにより、文脈の汚染を防止
  • スキルのアテステーション — SHA-256 ハッシュ検証と、インストールされるすべてのスキルに対する静的解析
  • ビザンチン故障検知 — 異常な挙動を示すエージェントを自動的に隔離
  • イミュータブル(不変)な監査ログ — すべてのセキュリティ判断に関する、暗号学的に封印された改ざん検知可能な記録
  • ポスト量子暗号 — 鍵カプセル化のための CRYSTALS-Kyber1024(NIST FIPS 203)

Rust で実装。607 件のテストがパス。p99 レイテンシは 10ms 未満。

OpenClaw ユーザー向け:1 コマンド

git clone https://github.com/AndrewSispoidis/crawdad-openclaw ~/.openclaw/skills/crawdad

Crawdad のスキルは、すべての OpenClaw エージェントに自動的にフックされます。受信するあらゆるメッセージをスキャンし、すべてのツール呼び出しを認可し、あらゆる送信応答をフィルタリングします。最初の実行時に無料の API キーがプロビジョニングされます。設定は不要です。

スキルのコードはオープンソースです: github.com/AndrewSispoidis/crawdad-openclaw

その他のすべての人向け

Crawdad はあらゆるエージェントフレームワークで動作します — LangChain、CrewAI、AutoGen、またはあなたが自分で作ったものなら何でも。

pip install crawdad-sdk
from crawdad.openclaw import CrawdadMiddleware

mw = CrawdadMiddleware(
    base_url="https://crawdad-production.up.railway.app",
    api_key="your-key"
)

# プロンプトインジェクションのための受信スキャン
result = mw.scan_inbound("user message")

# ポリシーでツール実行をゲートする
result = mw.authorize_action(agent_id, "shell_exec", "/bin/bash")

返却形式: {"translated": "翻訳されたHTML"}# PII の送信先をスキャンresult = mw.scan_outbound("example.com の john に連絡する")

無料プラン: 月あたり 10,000 回の API 呼び出し。クレジットカード不要。

getcrawdad.dev

CVE-2026-25253 が私たちに教えてくれること

脆弱性は修正されました。しかし、それを可能にした条件——システムへの完全なアクセス権を持つ自律エージェント、独立したセキュリティ層の不在、アクションの認可がないこと——は、今日出荷されているあらゆる AI エージェントのフレームワークに存在します。

CVE-2026-25253 はその最初のものです。重要なあらゆる環境で AI エージェントを動かしているなら、次の CVE の後ではなく、その前にセキュリティ層を追加する時間が必要です。