人が承認した操作と実行される操作のすり替えを検証
Loopjacking: Hijacking Human-in-the-Loop Approval
この論文をやさしく読む
ひとことで言うと
承認画面で確認した操作と、エージェントが実際に実行する操作が食い違う問題を、複数の製品構成で調べています。
何に役立つ?
承認内容の表示、保存、実行時の照合を一貫させる設計や検証に役立ちます。確認画面があるだけで操作の同一性が保証されるわけではないことを示しています。
この研究の面白いところ
最初から表示が不完全な場合と、正しく承認した後に状態が変わる場合を分けています。攻撃が成立した例に加え、変更を拒否したバージョンやSDKも対照として報告しています。
どこまで分かった?
結果は要旨に列挙されたバージョンと構成に関するものです。目的に沿って選んだ標本であり、製品全体や現在の全バージョンの脆弱性、業界全体の発生率を示すものではありません。
v1のアブストラクトに基づくAI解説。日本語訳とは別に、用途の解釈を含みます。
アブストラクトの日本語訳
人間による承認は、エージェントが重大な操作を実行する前の最後のセキュリティ境界として扱われることが多い。この境界が意味を持つのは、確認のために提示された操作と、その後に許可または実行可能にされる操作が同一である場合に限られる。本研究では、この結び付けの失敗をLoopjackingと呼ぶ。人間は操作Aと理解したものを承認する一方、実装はその判断を実質的に異なる操作Bに利用してしまう。 二つの類型を区別する。表示に基づく攻撃では、Bはすでに内部に符号化されているが、承認時に省略されたり誤って表示されたりする。承認後の状態置換攻撃では、人間は正しいAを確認するが、後から変更可能なワークフロー状態によってBに置き換えられる。目的に沿って選定した公開済みエージェント製品群を評価した。Agno AgentOSでは3.0.9までの検証対象7リリースで、条件付きのインメモリ構成を用いたLangGraph Agent Serverでは0.14.0までの検証対象12バージョンで、承認後の置換を再現した。OpenClaw 2026.2.23では表示の不一致を再現し、2026.2.24ではそれが拒否されることを確認した。OpenAI Agents SDK 0.22.0および0.22.2は陰性対照となる。シリアライズされた継続処理が呼び出しごとの厳密な結び付けを保ち、変更されたBを拒否する。 これらの結果は、エコシステム全体での発生割合を推定するものではない。承認内容を完全かつ正規化された形で表示し、利用時に厳密に比較すること、または保留中の状態の無許可変更を防ぐことによって、正当な実行を維持しつつ今回の攻撃を阻止できることを示す。本研究の貢献を、誤解を招くダイアログ、セッション・スマグリング、操作の結び付け、認可の継続性に関する既存研究と区別して位置付ける。
v1の要旨から自動生成。本文の精読・人による確認は未実施。
- 初稿
- 2026-09-17(UTC)
- 最新改訂
- 2026-09-17 · v1
- 査読・掲載
- 査読状況未確認
更新履歴
- v1 2026-09-17 この版を読む
取得できた版を表示。版の更新は査読済みを意味しません。過去版の本文差分は未解析です。
原文の要旨
Human approval is often treated as the last security boundary before an agent executes a consequential operation. That boundary is only meaningful if the operation presented for review is the operation later authorized or released. We call failures of this binding Loopjacking: a human approves what they understand as operation A, while the implementation uses that decision for a materially different operation B. We distinguish two variants. In a representation-based attack, B is already encoded but omitted or misrepresented at approval time; in a post-approval state-substitution attack, the human sees the correct A and mutable workflow state later replaces it with B. We evaluate a purposive set of released agent products. We reproduce post-approval substitution in seven tested Agno AgentOS releases ending at 3.0.9 and in 12 tested versions of a conditional in-memory LangGraph Agent Server composition ending at 0.14.0. We reproduce representation mismatch in OpenClaw 2026.2.23 and its rejection in 2026.2.24. OpenAI Agents SDK 0.22.0 and 0.22.2 provide a negative control: serialized continuation preserves exact per-call binding and rejects mutated B. These results do not estimate ecosystem prevalence. They show that complete canonical approval rendering and exact use-time comparison, or preventing unauthorized pending-state mutation, block the tested attacks while preserving legitimate execution. We separate this contribution from established work on misleading dialogs, session smuggling, action binding, and authorization continuity.
著者のコメント
17 pages, 3 figures, 3 tables. Evidence archive: https://github.com/adithyan-ak/loopjacking
arXiv ID: 2609.21081 / 要約の誤りについて