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

消息对象注入:AI 助手的序列化缺口

Imperva 于 2026 年 6 月 10 日指出,联系人、vCard 与位置图钉会被直接扁平化拼入 AI 助手的提示词,且无任何不可信内容边界——这是一个结构性注入向量,已在 OpenClaw 2026.4.23 中修复。

2026-06-21 // 5 min affects: openclaw, gemini-3.1-pro

这是什么?

2026 年 6 月 10 日,Imperva 威胁研究团队(Yohann Sillam)发布了一篇分析,揭示了一类既不藏在文档、也不藏在网页中的提示词注入向量——它藏在个人 AI 助手日常处理的结构化消息对象里:共享联系人、vCard(.vcf)以及地理位置图钉。该研究针对 OpenClaw——一款广泛使用的自托管智能体,它将 LLM 连接到文件系统、shell 以及 WhatsApp、Telegram 等消息平台。The Hacker News 次日进行了报道,并提及 Varonis 的并行研究。

被注入的指令对受害者不可见,却跨越信任边界进入了已认证的用户上下文;在 Imperva 针对 Gemini 3.1 Pro(预览版)的实验中,它促使智能体从研究人员控制的服务器下载并执行了一个脚本。Imperva 进行了负责任的披露;OpenClaw 在 2026.4.23 版本中发布了修复。

工作原理

问题出在管道,而非模型。当 OpenClaw 把网页内容传给 LLM 时,会用不可信内容标记将其包裹起来。但当它传递消息对象——联系人、vCard、位置标签——时,却是直接将对象扁平化拼入提示词文本,没有任何标记将其标识为不可信。

只有部分字段会到达模型,而这正是该手法所利用的。一个共享联系人只发送其姓名字段,序列化形式类似 <contact: name, number>。尖括号在姓名中是完全合法的字符,因此模型无法可靠地判断真实姓名在何处结束、注入文本从何处开始。在界面上,联系人姓名被截断显示,受害者同样看不到字符串末尾的载荷。同样的逻辑适用于 vCard 的全名(FN)字段(WhatsApp 原生支持),以及共享位置图钉的标签

颇具启示的是,Imperva 报告称,一张携带隐藏指令的普通图片失败了——这类攻击已被反复曝光,模型已被训练得能够抵御它。消息对象这条路径之所以奏效,恰恰是因为模型见过的此类样本要少得多。此处不复现任何载荷;结构性的要点已足够说明问题。

更深层的问题在于:对于消息对象在到达 LLM 之前应如何序列化,并不存在任何标准。工具集成有 MCP;网页抓取有不可信内容标记;而富消息对象两者皆无。每个助手都以各自临时的方式将其扁平化,Imperva 也在其他个人助手中观察到了相同的扁平化模式——因此这并非 OpenClaw 独有。

为何重要

个人 AI 助手不是聊天机器人,而是拥有文件、shell 与已连接账户访问权限的已认证执行者。触及其中之一的注入便继承了这份访问权。两个特性使消息对象向量比典型的间接注入更危险。其一,两端皆不可见——模型和人类都不会把载荷视为异常。其二,病毒式传播加持久化:单一的共享内容(一张被转发数千次的联系人名片)结合智能体默认开启的记忆,可在每一个摄入它、且执行未被沙箱隔离的助手上悄然埋下入侵的种子。

这就是具体化的致命三元组——访问私有数据、暴露于不可信内容、拥有对外通道——通过一条多数防御者从未建模过的序列化接缝送达。它与现实世界中观察到的间接提示词注入属于同一族,但走的是针对文档与 URL 设计的净化规则根本覆盖不到的通道。

防御

  • 将每一个不可信字段都标记为不可信。 OpenClaw 的修复堪称范本:把联系人姓名、vCard 字段与位置标签移出内联的提示词正文,放入一条结构化的不可信元数据通道,使模型收到的是带标签的内容,而非与指令混为一体的内容。应将其应用于所有消息对象字段,而不仅是某条公告中提到的那些。
  • 清点每一处序列化接缝。 审查每一条将结构化对象(联系人、日历邀请、vCard、位置、富链接)扁平化拼入提示词的路径。在被证明安全之前,每一条都是注入通道。
  • 保持执行隔离与最小权限。 代码执行应默认关闭或沙箱化;将技能与连接器限定为任务所需的最小集合。注入的影响半径恰好等于智能体的常驻权限。
  • 对出站与高风险操作设闸。 对首次发往陌生目的地的发送、以及涉及凭据或资金的操作,要求人工审批,使被劫持的智能体无法独自完成数据外泄的一环。
  • 将记忆视为攻击面。 在持久化默认开启的情况下,单个被投毒的对象就可能留下持久指令。应限制不可信内容能写入长期记忆的范围。

状态

项目详情
披露2026-06-10(Imperva 威胁研究团队)
向量经消息对象字段(联系人姓名、vCard FN、位置标签)内联扁平化进行注入
测试对象OpenClaw + Gemini 3.1 Pro(预览版)
修复OpenClaw 2026.4.23——不可信字段移入结构化元数据通道
范围Imperva 在其他个人助手中观察到相同的扁平化模式

修复关闭了 OpenClaw 的这一实例。而问题类别——富消息对象在无不可信边界的情况下被序列化进提示词——在助手们采用一致方式向模型传递结构化、不可信字段之前,依然敞开。在此之前,助手每学会摄入一种新的对象类型,就多出一条需要审计的注入通道。

Sources