系统:运行中
← 返回所有攻击
AGENTS MEDIUM NEW

存储型提示注入:当注入比会话活得更久

2026 年 6 月的一篇 arXiv 论文把提示注入重新定义为一种存储型、跨会话的问题:一旦对抗性文本进入智能体的持久状态,它就能在攻击者离开很久之后继续操纵后续执行。

2026-06-20 // 6 min affects: llm-agents, agent-memory-systems, mcp-agents

What is this?

论文 What If Prompt Injection Never Left? Exploring Cross-Session Stored Prompt Injection in Agentic Systems2026 年 6 月发布在 arXiv 上,提出了一个尖锐的观点:多数提示注入研究只考察单个上下文窗口,而现代智能体会保留状态。记忆、文件、草稿、检查点(checkpoint)以及对工具可见的产物都会在多次运行之间持续存在。一旦攻击者文本进入这些存储之一,注入并不会随对话结束而终止——它可以在未来的执行上下文中被重新读取,无论是对同一用户还是另一用户。

作者刻意借用了 Web 安全的术语。经典提示注入的行为类似反射型 XSS:恶意输入只在传递它的那一轮被处理一次。跨会话存储型提示注入则类似存储型 XSS:载荷被写入持久状态,随后再次被提供。这一区分很重要,因为防御手段、检测窗口与影响半径都各不相同。

这并非此处发明的全新攻击——论文只是把从业者早已报告的模式形式化了。Palo Alto 的 Unit 42 记录了间接注入污染智能体长期记忆的案例,而关于智能体化部署会让注入变得更糟而非更好的更宏观论点,则见于 Christian Schneider 的分析。6 月这篇论文的贡献在于系统级的框架。

How it works

其机制是结构性的,而非一串巧妙字符。智能体在执行任务时读取不可信内容——网页、文档、工具结果或另一个智能体的消息。其中嵌有一条指令。智能体并不(或不仅仅)当场行动,而是把该内容的残留写入持久状态:一条记忆、一份笔记文件、一段摘要历史、一份保存的计划。

在之后的运行中,智能体的编排提示部分由该持久状态拼装而成。智能体把自己的记忆和文件当作权威上下文,而非不可信输入——于是被植入的指令被重新纳入,并可能影响行为,例如促使智能体悄悄转发对话历史,或执行新用户从未要求的操作。

会话 1(攻击者在场)
  不可信内容 ──▶ 智能体 ──▶ 把残留写入持久状态
                            (记忆 / 文件 / 摘要 / 检查点)

   ... 攻击者离开,时间流逝,监控被重置 ...

会话 N(受害者在场)
  持久状态 ──▶ 编排提示 ──▶ 智能体执行被植入的指令

论文强调了几条使攻击得以持久的通道。被检查点保存随后恢复的状态,可让注入在一段时间间隔内潜伏,从而挫败那些期待效果立即显现的监控。仅追加的历史(例如只向共享消息日志追加的归约函数)可使会话早期的注入近乎永久。我们在此不复现可用载荷——理解这一教训并不需要它。要点是:任何从不可信内容写入可复用状态的路径都是潜在通道。

Why it matters

单会话防御从设计上就会漏掉这一类。一个检查当前轮次的护栏,或一个按任务重置的沙箱,可能完全有效,却仍会放过存储型注入,因为恶意指令是在一个干净的轮次里从智能体自身的可信状态抵达的。2026 年 5 月的一篇互补论文直言 AI 智能体也许永远会落入提示注入;持久性抬高了这种悲观判断的赌注,因为单次成功注入的代价不再被限定于一次对话。

跨用户维度是防御者最容易低估的部分。如果持久状态被共享——团队记忆库、公共知识库、多租户智能体——某个用户植入的注入可能浮现在另一个用户的会话中。这就把按会话的小麻烦,变成更接近一个持久立足点的东西,其检测窗口以天计而非以秒计。

Defenses

没有单一控制能消除这一类;目标是打断写入后再复用的循环,并把持久状态当作不可信。

  • 把记忆和文件当作不可信输入,而非权威上下文。 根本错误在于智能体信任自己的状态。在读取时以对待新鲜外部内容的同等严格程度重新校验持久内容,而不是假设「它在我的记忆里,所以它是真的」。
  • 在存储层把可信与不可信分开。 按来源对状态打标签或分区。来自不可信来源的内容应被隔离,且未经清洗绝不直接注入编排或规划提示。
  • 让对持久状态的写入显式且可审计。 用策略约束记忆写入:可写什么、由哪个任务、来自哪个来源。记录每次写入及其来源,使日后调查能把某一行为追溯到植入它的会话。
  • 积极地限定状态范围并使其过期。 优先采用按用户、按任务的隔离,而非共享的可变记忆。施加 TTL 与遗忘机制,使潜伏内容无法无限期等待一次恢复。对任何会回流到提示中的内容,避免仅追加式设计。
  • 监控延迟与跨会话的效果,而不仅是即时效果。 只检查输入抵达那一轮的检测会漏掉检查点后恢复。留意异常的记忆读取、意外的外泄,以及偏离当前用户请求的行为。
  • 约束智能体上下文的外泄路径。 多数存储型注入载荷最终止于一个出站动作——一条消息、一次工具调用、一个请求。最小权限工具与出站监控可缩小被重新激活的指令所能达成的范围。

Status

方面反射型(经典)提示注入跨会话存储型提示注入
存续时间一个上下文窗口持续存在于记忆/文件/检查点
触发传递它的那一轮之后重新读取状态的运行
受害者当前会话未来会话,甚至其他用户
检测窗口即时延迟(以天计),能熬过监控重置
主要控制输入/输出护栏按来源标注的状态、写入约束、隔离

2026 年 6 月这篇论文的启示不是一个新漏洞,而是威胁模型的转变:在有状态的智能体中,那个持久的产物本身就是漏洞。一次抵达持久状态的注入,赋予攻击者单轮注入永远给不了的时间与触达范围;而仅为当前上下文窗口设计的防御,将持续与它擦肩而过。

Sources