ShareLock:门限投毒将 MCP 载荷分散到多个工具中
2026 年 6 月的一篇论文将恶意 MCP 指令拆分成看似无害的秘密份额,分散到多个工具描述中,绕过逐工具扫描器,攻击成功率仍超过 90%。
这是什么?
2026 年 6 月 25 日,Liwei Liu、Tianzhu Han、Zijian Liu、Zishu Dong 与 Na Ruan 在 arXiv 上发表了 ShareLock: A Stealthy Multi-Tool Threshold Poisoning Attack Against MCP。该研究揭示了 Model Context Protocol(MCP)生态在防御工具投毒(tool poisoning)时的一个盲点:几乎所有扫描器都是一次只检查一个工具描述,而 ShareLock 展示了如何恰好利用这一假设让载荷通过检测。
传统工具投毒攻击会在单个工具的描述中以明文嵌入恶意指令,供智能体读取并执行。这种方式有效但脆弱——单一的恶意字符串正是人工审查和自动检测器专门要捕捉的目标。ShareLock 的贡献在于消除了这一单一检测点。作者报告称,在多个主流 LLM 和两种不同的 MCP 客户端上,平均攻击成功率超过 90%,且在基于描述的检测下明显优于单工具投毒。这是描述某一攻击类别及其防御的学术工作;此处不复现任何可操作的载荷。
工作原理
ShareLock 借用了密码学中的思想:Shamir 门限秘密共享。一个秘密被拆分为 n 份,任意 k 份即可重构,而任何更小的子集都不泄露任何信息——甚至连部分信息都没有。ShareLock 把恶意指令当作这个秘密,将看似无害的份额分散到多个工具描述中,可跨一个或多个 MCP 服务器。
其后果正是其隐蔽性所在:在门限之下,这些份额具备信息论意义上的保密性。单独来看,每个被投毒的工具描述都真正无害——其中并没有隐藏指令可供发现,因为单个份额在数学上不含任何指令。逐工具扫描器、逐条审查描述的 LLM 评审、或抽样检查工具的人工审计员,都看不到任何可操作的内容。
恶意指令 ──► 拆分为份额 s1 … sn (Shamir,门限 k)
工具 A 描述 ⊃ s1 ← 单独看无害
工具 B 描述 ⊃ s2 ← 单独看无害
工具 C 描述 ⊃ s3 ← 单独看无害
… (少于 k 份不泄露任何信息)
[在服务器更新时植入隐蔽的重构触发器]
▼
智能体聚合 ≥ k 份 ──► 重构隐藏指令 ──► 执行动作
重构被延迟触发。作者描述了在一次例行服务器更新中植入隐蔽的重构触发器——份额潜伏在各个工具中,直到触发器促使智能体聚合至少 k 份,此时隐藏指令重新组装,导致系统资产或私有数据被攻破。评估涵盖四个多工具场景和两种 MCP 客户端,真正危险的是工具的组合,而非其中任何单个工具。
为什么重要
MCP 鼓励智能体加载大量工具,且常来自多个服务器,而社区的应对主要停留在逐工具卫生:扫描每个描述、过滤每个服务器、评审每个工具。ShareLock 表明,一种局限于单个工具的检测策略,即使在每个工具上都无懈可击,仍可能对整体视而不见。攻击面是已安装工具的集合以及智能体如何组合它们——这是任何单工具检查都无法观察到的属性。
容错性是最令人不安的一点。由于重构只需 n 份中的 k 份,审计员移除或修复一个被投毒的工具,只要门限仍可达到,就未必消除了攻击。这使 MCP 防御进入了与超越工具投毒的恶意 MCP 服务器和工具描述的 rug pull相同的领域:威胁存在于关系与随时间的变化之中,而非某个静态字符串。
防御
对于运行 MCP 客户端或维护工具注册表的团队,教训是扩大分析单元。
对工具进行整体分析,而非逐个分析。对每个描述单独打分的检测,正是 ShareLock 意在绕过的对象。评估已安装工具的联合集合——工具间的相关性、共享的异常 token、只有聚合后才有意义的描述——而不要假设逐工具的干净会自动组合成整体安全。
将服务器更新视为安全事件。重构触发器在更新时植入:将工具描述固定到经审查的哈希,对每次变更做 diff,并在信任新版本前重新审计完整的工具集合,而不仅是发生变化的那个工具。
在动作层进行约束与观察。由于载荷只有在变成动作时才重要,应保持经典的控制流防御:最小权限的工具许可、对敏感操作的人工确认,以及在运行时标记出智能体做了任何工具声明用途都无法解释之事的监控。
精简并核查工具面的来源。来自更少可信发布者的更少工具,会降低达到重构门限的概率;要求工具描述经过签名且来源可追溯,使份额无法在市场中被悄然分散。
状态
| 项目 | 详情 |
|---|---|
| 披露 | arXiv 预印本 2606.27027 v1,2026 年 6 月 25 日提交(CC BY-NC-SA 4.0),16 页 |
| 类别 | 攻击技术——通过 Shamir 秘密共享对 MCP 工具描述进行多工具门限投毒 |
| 机制 | 恶意指令拆分为无害份额;重构触发器在服务器更新时植入 |
| 评估 | 四个多工具场景 · 两种 MCP 客户端 · 主流 LLM |
| 报告结果 | 平均攻击成功率 > 90%;在基于描述的检测下优于单工具投毒 |
| 核心防御缺口 | 逐工具扫描器无法看到只存在于至少 k 个工具聚合中的载荷 |