NeFut Logo NeFut
EN 管理员登录

[AI学术] 揭示模型上下文协议中的工具元数据负载隐蔽机制

发布于:2026-07-09 22:00 最后更新:2026-07-10 03:15
#Security #Protocol #Unicode

摘要

模型上下文协议(MCP)是编码代理发现和调用外部工具的主要方式。服务器通过 tools/list 握手广告每个工具,返回名称、自然语言描述和 JSON 输入模式。客户端在一次性批准对话中渲染此元数据,然后在每次后续交互中逐字注入模型上下文。

问题分析

协议中并未要求渲染的批准视图与交付给模型的字节匹配。我们将这一差距孤立为一种单一的结构机制——隐蔽编码,并通过无模型、无协议的分析表明,Unicode 的 TAG 块(U+E0000 到 U+E007F)在任何主流终端、聊天或 IDE 渲染器中均无分配的字形,因此以此编写的负载在人工审核者眼中是不可见的,同时其字节依然逐字进入模型的分词器。

实验与结果

我们测量这一机制是否有效地击败了当今的客户端防御,构建了一个概念验证,能够通过真实的 MCP JSON-RPC/stdio 协议与真实客户端和服务器进行交互。在 5 个不同的 MCP 元数据表面上,我们实现了 8 种具体技术,使用确定性的协议级别工具。所有 8/8 技术均将攻击者控制的负载传递至模型上下文,其中 4/8 技术成功规避了一代表性的字符串匹配清理器。正如机制分析所预测的,只有 TAG 块编码(1/8)在人工批准视图中不可见,同时仍能逐字到达模型。

MCP 对于 0/8 技术强制重新批准,即使在检查时到使用时的时间窃取情况下。为测试这些结果是协议的属性还是一个服务器代码库的伪影,我们针对 3 个独立开发的 Python MCP 服务器库重新实现了目录,发现所有 32 个跨库结果单元完全一致。基准清理器对 25 个良性描述未标记出任何问题。

博主点评: 本文揭示了模型上下文协议中的隐蔽机制,展示了 Unicode TAG 块的有效性及其对安全审查的影响。此研究对安全性与隐私保护具有重要意义,值得开发者和研究者深入关注。

原文链接: https://arxiv.org/abs/2607.05744

[h] 返回首页