打开网易新闻 查看精彩图片

去年静态分析给Anthropic的MCP服务器打了99分,今年红队测试给了60分。分数差了近40,问题只有一个:代码写得再漂亮,挡不住真的有人想搞你。

安全公司Pillar Security最近干了件狠事——他们没看代码,直接上手拆。对象是Anthropic官方维护的MCP文件系统服务器,GitHub上标着「reference implementation(参考实现)」,开发者拿来当模板用的那种。结果拆出三个关键漏洞,全是凭证泄露。

这不是某个业余爱好者的 side project,是Linux基金会旗下Model Context Protocol项目的官方出品。

三个漏洞,同一套剧本

三个漏洞,同一套剧本

测试团队用了两招经典的路径遍历攻击。第一招是双编码绕过(%252e%252e%252f),第二招是URL编码变体。两招都绕过了服务器自带的六层路径验证逻辑,直接读到敏感文件。

更离谱的是第三个发现。read_multiple_files工具被请求读取AWS凭证、SSH配置、数据库认证文件时,毫无阻拦地执行了。没有警告,没有限制,像酒店前台被问到「老板保险箱密码多少」就脱口而出。

Pillar Security的人原话是:「静态分析问的是'有没有保安',行为测试问的是'保安顶不顶用'。」这次保安没顶住。

三个漏洞在CVSS v4.0评分体系下全部列为关键级,直接触发认证流程的阻断机制。换句话说,这套参考实现如果走正规安全审计,根本不该出厂。

打开网易新闻 查看精彩图片

50个AI工具,26%在裸奔

50个AI工具,26%在裸奔

测试范围没停在Anthropic这一家。Pillar Security把同样的七阶段认证流程扔给了50个AI能力组件——MCP服务器、技能插件、钩子、规则文件,生态里能见到的类型基本都覆盖了。

7个存在关键阻断级漏洞。26%的失败率。

其中有个案例特别讽刺:一份 marketed 给Devin AI编码工具当开发助手的规则文件,被发现会主动读取.env.local、.env、.env.example这些文件,把里面的凭证加载进上下文。开发者以为雇了个帮手,实际请了个内鬼。

这些组件的共同点是:都被设计用来扩展AI的能力边界,让模型能操作文件系统、调用外部工具、访问私有数据。但安全边界的设计,明显没跟上功能扩张的速度。

「参考实现」的诅咒

「参考实现」的诅咒

MCP文件系统服务器的特殊之处在于它的示范效应。GitHub仓库里写着「reference」,意味着无数开发者会fork它、研究它、把它当最佳实践抄进自己的项目。

代码里的每一个模式都会被复制。包括那些没生效的验证逻辑。

打开网易新闻 查看精彩图片

Pillar Security的测试方法本身值得玩味。他们不读源码,直接安装、启动、连接、扔攻击载荷。双编码遍历、URL编码遍历、凭证路径收割、提示词注入链、数据渗出探测——全是攻击者实际会用的手法。

这种测试成本更高,但唯一能回答的问题是:当真的有人想搞你时,你的防线会不会像纸一样。

静态分析工具能告诉你「这里有六层验证」,但验证层之间有没有缝隙、编码绕过能不能穿透、工具会不会乖乖交出敏感路径,只有行为测试能暴露。

60分和99分的差距,就是「看起来安全」和「真的安全」之间的差距。

事件发酵后,Anthropic尚未公开回应具体修复时间表。但参考实现仓库的issue列表里,已经有开发者开始质疑:如果官方模板都过不了行为审计,生态里那些 fork 出去的变种,有多少正在生产环境里跑?

更麻烦的是扩散速度。MCP协议设计初衷是标准化AI与外部系统的交互,但标准化也意味着漏洞的标准化复制。一个路径遍历的绕过手法,可能通杀几十个基于同一模板的服务器。

Pillar Security把这次发现归类为「基础设施级别的系统性风险」。不是某一行代码写错了,是「复制粘贴式」的安全思维在AI工具链里蔓延——代码仓库里有验证逻辑,就等于验证有效;静态扫描没报警,就等于没有漏洞。

这种思维在传统的软件供应链里已经吃过无数次亏,现在换了个名字叫MCP、叫AI Agent、叫能力扩展,老问题原封不动跟了过来。

测试团队最后扔了一个数字:50个样本里,关键漏洞率26%。按这个比例,如果你司正在用3个以上的MCP服务器或类似组件,数学期望上至少有一个正在裸奔。

问题是,你知道是哪几个吗?