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:リンク挿入やデータ抽出といった悪意の実行という順である。
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 キーの追加が誘導され、医療ページには誤った投薬量が提示され、認証情報を窃取するための偽ログインが促される。
この Cato による情報開示は、2025年7月から開始されている。Bugcrowd によるトリアージの後に Perplexity は修正を行い、11月18日には完了している。Microsoft は 10月27 日に、多層防御を含むパッチを適用した。その一方で Google は、”意図された動作:重大度 S4″と判断しているが、11月25日の時点では未解決の状況にある。
これは、クライアント側の問題であるが、Cato の SASE プラットフォームでは、AI 利用制御に対しては CASB/フィッシングに対しては IPS、マルウェアに対しては NGAM を用いて対抗している。
この欠陥が浮き彫りにするのは、AI ブラウザが URL 全体に依存している状況であり、また、フラグメントに対するサニタイズの必要性である。
HashJack という攻撃手法ですが、URL の “#” 以降がサーバに送られないという、Web の標準仕様を悪用するものです。本来は無害とされるフラグメントが、AI ブラウザに取り込まれることで、命令として解釈されるというリスクが生じます。AI アシスタントがページ内容を、そのまま信頼して読み込む仕組みもあるため、ユーザーが意図しないかたちで、悪意の誘導や情報窃取が行われてしまうと、この記事は指摘しています。よろしければ、Comet/Copilot/Gemini で検索などを、ご利用ください。


You must be logged in to post a comment.