Grokのチャットが注入指示を鵜呑みにする脆弱性が発覚

AIと機械学習

暗号化を一さじ加えれば、マルウェアもすんなり喉を通る

Adversa AIのセキュリティ研究者らによると、xAIのWebチャットエージェント「Grok」は現在、新しい形態のプロンプトインジェクションに対して脆弱な状態にあるといいます。

この手法を使うと、攻撃者は悪意ある指示を仕込んだWebページを作成でき、そのページを要約するAIモデルに有害な行動を取らせることができます。

これは「間接的プロンプトインジェクション」として知られる攻撃手法そのものです。最先端のAIモデルは既存のガードレールによってこの種の攻撃への対処を進歩させてきましたが、問題が解決したとは到底言えない状況です。

Adversaのアプローチにはひとひねりが加わっています。攻撃者が暗号化した悪意ある指示を、暗号鍵とともにWebページ上に置くというものです。モデルのガードレールスキャナー(入力フィルター)は、鍵が存在していても暗号化されたテキストを読み取ることができません。そのため、スキャナーはそのテキストをモデルへそのまま通過させてしまい、モデル側はその鍵を使って指示を復号できてしまいます。

その後モデルは、他の間接的プロンプトインジェクション攻撃と同様に、復号されたテキスト内の指示を実行してしまいます。

Adversaはこの手法を「暗号論的コンテキストインジェクション」と呼んでいます。

Adversa AIのリード研究者であるRony Utevsky氏はブログ投稿でこう述べています。「攻撃者は暗号文を鍵情報や復号指示とともに送り込み、モデルは自身のコード実行サンドボックス内でその復号処理を実行してしまいます。ガードレールのスキャナーが必要とする情報はすべてページ上にそろっているのですが、平文を取り出すにはPBKDF2とAES-256-GCMを実行する必要があり、検査時点でそのような処理を行うコンテンツ分類器は存在しません」

これまでにもAIモデルを対象とした攻撃には、base64エンコーディングのような暗号ベースの回避手法が使われてきました。しかしUtevsky氏によると、こうした手法は脆弱で可逆な暗号機構であるため、モデルは自身の学習データから直接それらをデコードできてしまうといいます。

強力な暗号化ではこの手が通用しないため、復号はコード実行ランタイムを通じて行う必要があります。つまりランタイムそのものが「信頼のロンダリング」の仕組みになってしまうのです。モデルは自分自身が出力したもの、すなわち自ら復号した悪意ある指示を信頼してしまいます。

Adversaは概念実証のデモで、この手法を使ってGrok.comでの被害者のチャット履歴を窃取できることを示しました。攻撃はユーザーの名前、おおよその所在地、サブスクリプションのプラン、そして会話内のすべてのプロンプトをURLのパラメータとして付加することで送信します。

他のモデルも程度の差こそあれ脆弱である可能性があります。Utevsky氏がThe Registerに語ったところによると、GoogleのGeminiの公開チャットインターフェース(gemini.google.com)では、Pythonが外部Webサイトにアクセスする権限を持たないため、Grokと同様のシナリオは成立しないとのことです。

「したがって、この手法は悪質な質問や回答をガードレールの目をかいくぐらせて通過させる用途にしか使えません」と同氏は説明しています。

AdversaがGeminiに対して暗号論的コンテキストインジェクションをテストしたところ、通常なら安全フィルターによってブロックされるはずのコンテンツ、具体的には焼夷兵器の製造方法に関する指示をモデルに生成させることに成功しました。

Utevsky氏によると、xAIには2026年6月3日に、直接連絡およびHackerOneのバグ報奨金プログラムを通じてこの攻撃について通知されたとのことです。xAIは報告を確認したものの、対策の実施時期については明示しなかったと伝えられています。その後も8月4日と8月10日に追加で問題提起が行われたとされています。8月19日時点でも、この手法はGrok.comに対して依然として有効だったといいます。

今年xAIを買収したSpaceXは、コメントの求めに応じませんでした。

Utevsky氏によれば、Googleにはこの攻撃について通知していないとのことです。理由は、ガードレールを回避してモデルに有害なコンテンツを出力させる「ジェイルブレイク」を、Googleが脆弱性開示プログラムの対象外としているためです。とはいえ、Geminiに対する攻撃成功率は8月までに大幅に低下しており、Utevsky氏はこれについて、フィルターの更新かモデルバージョンの変更、あるいはその両方が原因である可能性を指摘しています。

暗号論的コンテキストインジェクションが、保存されたメモリのそれぞれ単体では無害な断片から攻撃用ガジェットを組み立てるという点でリターン指向プログラミング(ROP)になぞらえられるかを尋ねると、Utevsky氏は次のように答えました。「ROPとの類似性は近いといえますが、ROPがそうした手法を取るのは必然性からです。攻撃者はコードを一切注入できないため、メモリ上に既に存在するガジェットを再利用するしかないのです」

「それ以外の点では構造は同じです。静的なガードレールはテキストを1つの成果物単位で読み取ります。個々の成果物が単体で有害でなければすべて通過してしまい、悪意ある意味はランタイムがそれらを組み合わせて初めて立ち現れます。そしてガードレールはランタイムの内部を見ることができません」

ただしUtevsky氏は、暗号論的コンテキストインジェクションはROPよりも自由度が高いと付け加えています。

「このエージェントのランタイムは汎用のインタープリタなので、断片は任意の形を取り得ます」と同氏は説明します。「1つの指示を複数の暗号化された断片や、取得した複数のページ、あるいは複数のツール出力に分割し、それぞれ単体では意味を持たないようにしたうえで、ランタイムにそれらを連結させることも可能でしょう。我々はまだそれを実証してはいませんが、否定できる根拠もありません」

「つまり暗号論的コンテキストインジェクションは、あくまで攻撃の連鎖を構成する一つの環であり、必ずしも全体の連鎖そのものではないということです」

「エージェントがコードとツールを手にした瞬間から、ガードレールの検査単位(文字列)は、実際の行動の単位(組み立てられ実行されるプログラム)と一致しなくなりました。これは非常に広大な戦場です。我々が以前発表したSymJack攻撃も、シンボリックリンクとシェルの挙動を通じて同じ結論にたどり着いています。暗号化は、このゲームにまた一つ新たな手口を加えたに過ぎません」 ®


翻訳元: https://www.theregister.com/ai-and-ml/2026/08/20/grok-chat-duped-into-swallowing-injected-instructions/5290019

本記事は theregister.com の記事を翻訳・要約したものです。