MCP 工具投毒:如何判断服务器是否在操纵你的智能体
返回博客
文章mcpsegurancatroubleshootingdev toolsagente de programação

MCP 工具投毒:如何判断服务器是否在操纵你的智能体

Mafra2026年9月9日阅读约 4 分钟

2026年9月8日,星期二。r/ClaudeAI 上一篇帖子点赞数超过2000,声称 Notion 官方 MCP 连接器会在任务过程中插入广告指令。这个具体说法目前没有任何官方确认。但它之所以引发关注是有真实原因的:MCP 存在一类已被记录的漏洞,叫做工具投毒(tool poisoning),此前就曾在生产环境中真实泄露过 SSH 密钥。

MCP 服务器里的工具投毒是什么?

当一个工具的描述(也就是模型用来判断是否以及如何调用该函数的文本)里藏着一条隐藏指令时,就是工具投毒。你在界面上永远看不到这段描述,但智能体看得到,而且会照做。

OWASP 把这归类为 MCP03:2025,工具投毒,是该协议专属风险 Top 10 中的第三项。

这在 Reddit 之外真的造成过损害吗?

是的,早在2025年就有公开的概念验证。Invariant Labs 把一条数据外泄指令藏进了一个计算器工具的描述里。当某位开发者在 Cursor 里调用加法函数时,模型读取了该开发者的私有 SSH 密钥和本地 MCP 配置文件,并把两者发送到了外部端点,过程中没有任何人要求它这么做。Simon Willison 几天后分析了这起事件:根本问题在于 MCP 把私有数据、不可信指令和外泄通道混在了同一次工具调用里。

2026年6月,微软发布警告,确认被投毒的工具描述仍是生产环境智能体中一个活跃的数据泄露途径。而在2026年3月,Notion 官方 MCP 服务器的代码仓库本身就收到了一份安全公告,描述了植入共享页面中的恶意文本如何被智能体读取,并指示它修改、读取或外泄工作区内容。真正值得关注的是这份公告,而不是 Reddit 上那条未经证实的广告指令说法。

风险类型暴露的内容真实案例(附来源)
桥接服务缺少身份验证命令执行、API 密钥RufRoot,CVE-2026-59726
工具描述中的工具投毒私有数据、SSH 密钥、本地配置Invariant Labs 在 Cursor 上的概念验证,2025年4月
智能体读取到恶意内容工作区内容、未经请求的操作Notion 官方 MCP 安全公告,2026年3月

我该怎么检查已经连接到 Verboo Code 的 MCP?

在逐条排查工具描述之前,先运行内置的诊断命令。verboo mcp doctor 就是为此而生:源码里对这个命令的描述是诊断 MCP 配置、优先级、禁用或待定状态,以及连接健康状况。

# 只读取配置,不建立任何连接。在不信任的文件夹里也安全
verboo mcp doctor --config-only

# 真实连接名为 name 的服务器,显示它的实际状态
verboo mcp doctor name

# 以 JSON 格式输出,方便自动化检查
verboo mcp doctor --json

命令本身的提示很直接:不加 --config-only 的话,stdio 服务器可能会被真实启动,远程服务器也可能被真实访问。只在你信任的目录里运行完整版本。

doctor 不会做的事:逐条阅读每个工具描述,寻找隐藏指令。它检查的是配置和连接性,不是描述的内容。工具投毒恰恰藏在内容里。所以这个命令只是诊断的第一步,不是唯一一步。

流程图:在 Verboo Code 中用三条命令排查可疑 MCP,verboo mcp doctor --config-only、verboo mcp doctor name、verboo mcp remove name
信任一个 MCP 之前的三条命令诊断。命令已对照 verbeux-ai/code 源码核实。

下次我该怎么避免连接到恶意 MCP?

三个习惯就能覆盖大部分风险,顺序正好是 Verboo Code 本身就方便做到的。

# 用本地作用域添加:只作用于当前项目,不会扩散到其他项目
verboo mcp add server-name https://server.example/mcp --transport http --scope local

# 一旦起疑,立刻下线
verboo mcp remove server-name
  • 先用本地作用域。--scope local 把服务器限制在这个文件夹里,真正信任之后再提升到 user 作用域。
  • 优先选择官方来源,但不要盲目信任。连拥有专职安全团队的 Notion,自己的代码仓库都收到过安全公告,这说明"官方"并不等于零风险。相比没人维护的社区服务器,官方来源能大幅降低风险,但不能降到零。
  • 发现异常立刻移除。智能体要求你确认一些你根本没提出的操作,或者提到与当前任务毫无关系的产品,都是被植入指令的信号。verboo mcp remove 能立刻把服务器下线。

在信任任何服务器之前运行 verboo mcp doctor 只需要几秒钟,而且是内置功能。如果你想要一个从一开始就为此设计的编程智能体,而不是让你自己从零摸索 MCP 审计,Verboo Code 正是如此。

喜欢这篇文章吗?
把知识分享给你的朋友。
// 继续阅读

相关文章