HashJack という間接プロンプト・インジェクション:Comet/Copilot/Gemini などが標的

HashJack: A Novel Exploit Leveraging URL Fragments To Deceive AI Browsers

2025/11/26 gbhackers — HashJack という攻撃手法が、Cato CTRL のセキュリティ研究者たちにより発見された。この革新的な間接プロンプト・インジェクション攻撃は、URL の “#” 記号以降のフラグメント部分に有害なコマンドを隠蔽するものだ。この手法は、信頼できる Web サイトを武器化するものであり、その標的は、Perplexity Comet/Microsoft Copilot/Google Gemini といった AI ブラウザ・アシスタントとなる。

攻撃の展開

HashJack は、コアとなる Web スタンダードを悪用する。URL フラグメントはブラウザ内で完全に処理され、サーバに到達することはない。そのため、IDS/IPS や CSP ルール、ネットワーク・ログを回避するという特性を持つ。

AI ブラウザが悪意のページを読み込み、エンベッドされたアシスタントに対してユーザーが (サービスについて質問するなどの) 操作を行うと、完全な URL が LLM のコンテキスト・ウィンドウに追加されるが、そこには隠蔽されたフラグメントも含まれている。

それにより、挿入された悪意の命令がトリガーされ、あたかもサイト自体から返されたかのように、レスポンスがシームレスに変更される。

この攻撃チェーンは、5つのステップから構成される。以下の図に示される通り、Craft:汚染された URL の作成/Deliver:正規サイトへのユーザー誘導/Open:ページ・コンテキストを LLM に渡して AI アシスタントを起動/Trigger:プロンプトへのフラグメント・インジェクション/Exploit:リンク挿入やデータ抽出といった悪意の実行という順である。

HashJack in five steps (the attack chain)

Perplexity の Comet (バージョン 138.0.7204.158) のようなエージェント型ブラウザでは、攻撃がエスカレートする。AI により、アカウント番号やメール・アドレスといった情報が取得され、攻撃者のエンドポイントが自律的に呼び出される。

Copilot (Edge 139.0.3405.102) や Gemini (Chrome 139.0.7258.128) のような、非エージェント型ブラウザでは、フィッシング・リンクや偽情報が表示される。その一方で、Edge ではクリックが制御され、Chrome では悪意の検索結果ページへとリダイレクトされることが多い。

間接的なプロンプト・インジェクションとは、モデルが取り込む外部データにコマンドを埋め込むものであり、その点が直接的な攻撃と異なる。それらのモデルは信頼できない入力から分離されておらず、その結果として LLM でのリスクが増大する。

Cato のデモサイトでのテストで確認されたのは、パケットがベース URL のみを運ぶため、悪意のフラグメントが防御を回避できることである。

Cato は6つの悪意のシナリオを詳述している。たとえば、コールバック・フィッシングでは、”新しいサービスはありますか?” といったクエリを介して、偽のサポート番号 (例:WhatsApp リンク) を挿入する。Comet 上のデータ窃取では、ローン審査中のユーザーのプロファイル・データが攻撃者へ送信される。

その他にも、誤情報により株価の急騰が誘発され、マルウェアによりポート開放や SSH キーの追加が誘導され、医療ページには誤った投薬量が提示され、認証情報を窃取するための偽ログインが促される。

URL fragment

この Cato による情報開示は、2025年7月から開始されている。Bugcrowd によるトリアージの後に Perplexity は修正を行い、11月18日には完了している。Microsoft は 10月27 日に、多層防御を含むパッチを適用した。その一方で Google は、”意図された動作:重大度 S4″と判断しているが、11月25日の時点では未解決の状況にある。

これは、クライアント側の問題であるが、Cato の SASE プラットフォームでは、AI 利用制御に対しては CASB/フィッシングに対しては IPS、マルウェアに対しては NGAM を用いて対抗している。

この欠陥が浮き彫りにするのは、AI ブラウザが URL 全体に依存している状況であり、また、フラグメントに対するサニタイズの必要性である。