通过智能体 Skill 持久化产物发起的跨会话攻击
2026 年 10 月的一篇 arXiv 论文表明,智能体 Skill 留下的文件和缓存可能把恶意影响带入后续会话,并提出了基于来源溯源的防护方案。
What is this?
智能体 Skill 把指令、代码和资源打包成可复用的包。Skill 运行时往往会留下文件、配置和缓存数据,后续会话以及其他 Skill 会复用这些残留物。论文 Understanding and Mitigating Cross-Session Attacks via Persistent Artifacts in Agent Skill Composition 于 2026 年 10 月 9 日提交至 arXiv,指出这些持久化产物构成了一个研究不足的攻击面:恶意影响可以从一次执行传递到之后的执行,而攻击者从未接触后者的会话。
该研究延续了此前的论文 What If Prompt Injection Never Left?(2026 年 6 月),后者把跨会话注入类比为存储型 XSS。新论文把问题聚焦在 Skill 组合上。
How it works
作者归纳了三种机制:
- Instruction Propagation(指令传播): 嵌入产物中的指令被带入后续执行,并被当作指引。
- Data Boundary Violation(数据边界违反): 某个 Skill 写出的产物越过信任边界,被不应信任它的另一个 Skill 使用。
- Evidence Poisoning(证据投毒): 被污染的产物之后被当作可靠证据用于决策。
为此论文提出 SkillRelayBench:基于十个领域中 30 个跨会话 Skill 组合场景构建的 270 个对抗用例。研究在 Codex CLI、Gemini CLI 和 Claude Code 上测试了七个模型。攻击成功率为 46.7% 至 77.4%,完整攻击链成功率为 35.6% 至 61.1%,涉及作者定义的全部五类安全后果。理解这一结果无需任何利用字符串,本文也不复现任何此类内容。
为什么重要
团队越来越多地组合多个 Skill,并让它们共享工作目录。此时,低信任步骤写出的文件,在后续步骤看来与用户写的文件没有区别。智能体不记录内容来源,可能把不可信文本提升为可信上下文。风险并不局限于某个产品:论文在三种不同的智能体 CLI 上都报告了结果。
防御措施
作者提出 SkillRelayGuard:为产物恢复来源上下文(谁或什么写了该文件、在哪个会话、基于什么输入),并在执行前增加咨询式审查,最终决定仍由智能体做出。评估中,总体攻击成功率从 69.5% 降至 10.9%,攻击链成功率从 54.8% 降至 10.0%,正常任务完成率从 79.6% 升至 87.5%。
由这些发现得出的实用措施:
- 跟踪来源: 记录 Skill 写出文件的来源,并在智能体据此行动前展示给它。
- 隔离 Skill 工作区: 避免一个 Skill 悄悄读取另一个 Skill 的输出。
- 把持久化产物视为不可信输入: 即使是智能体自己写的。
- 在敏感流程中清理或版本化缓存: 会话之间检查哪些内容被保留。
- 对由产物内容触发的高影响操作设置用户显式批准。
状态
| 项目 | 详情 |
|---|---|
| 论文 | arXiv 2610.13227,2026 年 10 月 9 日提交 |
| 基准 | SkillRelayBench,270 个用例,30 个场景 |
| 测试的智能体 | Codex CLI、Gemini CLI、Claude Code(七个模型) |
| 提出的防御 | SkillRelayGuard(研究原型;摘要未说明是否可获取) |
| 厂商补丁 | 不适用:设计层面的弱点,未引用 CVE |