一幅生成的深海军蓝背景抽象插画:一排逐渐远去的、服务器形状的高大板块矗立在隐约的蓝图网格上,每一块都以细青色轮廓描绘,其中心有一个小门状面板敞开悬挂。一条宽阔的琥珀色扫描带水平贯穿整排板块,穿过敞开的面板,并在身后留下淡淡的虚线轨迹。左下方有一个深色的小终端窗格,里面有一个发光的琥珀色光标块。画面中没有文字、数字、人物、品牌标记或组织标志。OrcaRouter 标志合成在右下角。
AI Safety Incidents

设计性暴露:对 414 台面向互联网的 MCP 服务器进行实时审计,发现 68 个漏洞

作者

Rowan Sterling

发布日期

最新模型 · 20查看全部模型 →
基准测试:Artificial Analysis · 每日更新
返回全部文章

2026年7月31日,Nicolás Padilla发表了《Exposed by Design》(arXiv:2608.00150),这份13页的预印本描述了他所称的首个针对面向互联网的Model Context Protocol服务器的动态行为安全评估。当月进行的四次测量共确认了640台在运行的现网生产服务器,其中对414台进行了主动测试;测试共产生68个可报告的漏洞,全部以GitHub安全公告的形式提交给维护者。414台中有380台——占91.8%——没有OAuth身份验证,另有687个工具实例在无访问控制的情况下宣称可执行shell命令。Padilla表示,没有任何证据表明其中任何一项已被利用:测试始终停留在概念验证阶段,未获取任何凭据,也未窃取任何数据。该记录的完整来源列表、严重性等级和置信度评估收录于AI事件档案中,与同期归档的其他MCP及基础设施发现并列存放。

审计实际做了什么

Model Context Protocol 是一种接口,让 AI 智能体能够调用托管在其他地方的工具——文档搜索、数据库查询、shell 辅助工具。一个通过 HTTP 使用该协议、且可从互联网访问的服务器,实际上就是任何人都能寻址的工具面。Padilla 的论文指出,这类服务器的总体从未被正确统计过,而统计它们正是关键所在:发现才是困难的部分,并且此前的每一次调查都只考察了不同的切片。

他的发现阶段合并了十一个来源——crt.sh、Hugging Face、GitHub、npm、Smithery、PyPI、Censys、FOFA、Shodan、glama.ai 和 pulsemcp.com——理由是其中没有任何一个来源能覆盖整个总体。主动阶段使用了 Corvus,这是 Padilla 为这项研究构建的框架:34 个测试模块,覆盖 10 个 MCP 特有漏洞类别,其中 13 个为静态、21 个为动态。它发布在 GitHub 的 CobaltoSec 组织下,并以 cobaltosec-corvus 之名发布在 PyPI 上,而且该仓库自己的统计文件记录了同样的 34 个模块数量。

这四次扫描分别于2026年7月15日、18日、21日和24日进行。较早的扫描仅提供了确认数量;最后三次分别扫描了3,485、3,948和4,110个候选对象,并确认了140、464和296台在线服务器。对972条原始观测记录进行去重,其中332次为重复出现,剩下640台唯一确认服务器,其中414台——64.7%——接受了完整的动态测试。Padilla将640视为下限。Censys是发现来源之一,曾在2026年5月估计全球有超过21,000个与MCP相关的端点,而他将其用作规模估计,而不是他所测试数量的计数。

An HTML table card titled 'Four runs in July 2026', subtitled 'What each measurement pass scanned, how many servers it confirmed, and how many carried a CRITICAL finding'. Four columns: run date, candidates scanned, servers confirmed, CRITICAL findings. Rows read: 15 July, candidates not tracked, 72 confirmed, no CRITICAL count; 18 July, 3,485 candidates, 140 confirmed, 17 CRITICAL; 21 July, 3,948 candidates, 464 confirmed, 41 CRITICAL; 24 July, 4,110 candidates, 296 confirmed, 35 CRITICAL. A blue summary band beneath reads: 972 raw observations, 332 duplicate appearances, 640 unique confirmed, 414 fully audited, 68 reportable. A footer cites Nicolás Padilla, arXiv:2608.00150, submitted 31 July 2026.

从漏斗的角度看,这些数字才是论文真正的论点:一轮宽泛而低成本的筛选找到候选者的速度,快于一轮细致筛选测试它们的速度。640 台已确认服务器中只有 414 台被充分测试,而且 Padilla 并未声称被测试的子集与未测试的其余部分相似。

它发现了什么

核心发现是认证,或者说缺乏认证。在受测的 414 台服务器中,380 台(91.8%)没有 OAuth。论文称,其余大多数使用静态 bearer token 或 API key,且往往可预测或为空——一台接受固定字符串的服务器同样算不上有意义的认证。由于审计只测试了无需凭据即可公开访问的服务器,这一数字按定义描述的是暴露在外的服务器群体;它并非对一般 MCP 服务器的估计。

68 项可报告发现按类别细分,且各类别计数相互重叠,而不是对总数进行划分:380 项身份验证缺陷、52 起协议模糊测试被接受的情况、47 起工具投毒、38 起命令注入、31 起模式绕过、29 起服务端请求伪造、24 起资源 URI 操纵、22 起提示注入、18 起令牌暴露和 14 个供应链指标。拒绝服务模块已编写,但有意未对生产服务器运行,Padilla 出于伦理原因将其排除在外。摘要中提到的四种漏洞类型——SQL 注入、针对云元数据服务的 SSRF、提示模板注入以及通过游标操纵实现的路径遍历——均出现在这些类别中。

A generated abstract illustration on a deep navy field: a translucent glass cube representing a tool sits at the centre, its faces cut by thin slots. A fine cyan cord runs from one slot across open space to a small metallic lever at upper left; a short amber spark jumps from another slot to a dark rack of cylinders at lower right. A pale dotted ring of tick marks circles the cube at a distance, a boundary the cord crosses without being stopped. No text, numbers, people, brand marks or organisation logos appear. The OrcaRouter logo is composited in the bottom-right corner.

关于 shell 执行的数字需要补充一条论文本身并未澄清的说明。在结果部分,论文在 640 台服务器的确认池中共统计到 687 个具备 shell 执行且无身份验证的工具实例。而在讨论部分,同一个数字却以"在 414 台动态审计的服务器中"这一说法引出,随后又被称为"更广泛的确认集"。这两种表述并不一致,而且论文从未给出受测服务器的工具总数,因此 687 无法换算成百分比。

服务器的高流失率是最能改变这些数字解读方式的发现。在7月21日确认的464台服务器中,有193台(41.6%)在三天后进行的第四次运行时已经消失。41台带有严重(CRITICAL)发现的服务器中,有9台也已不见踪影。帕迪利亚将此解读为未经审查就部署;这也意味着,周一确认的发现,到周四可能已经没有人负责修补。

三个案例研究,以及可以核查的内容

三项发现均已详细撰写,每项都附有 GitHub 安全公告标识符。SQL 注入出现在 lectorium-corpus-mcp(GHSA-m8qh-p8m5-8c48,评级为严重)中,已通过载荷 ' OR 1=1 -- 和响应大小差异确认,未读取或保留任何文档内容。SSRF 出现在 epwforge(GHSA-r9fx-qwmc-rvx3,高危)中,已通过时序确认:针对内部元数据地址耗时 11.9 秒,而基线为 0.3 秒,且未存储任何元数据响应内容。提示模板注入出现在 frootai(GHSA-5h8f-r9g8-5w5p,高危)中,构成了该组发现。

三者中的两者可以直接核查。2026年10月30日,前两个公告页面在 CobaltoSec 的公告仓库中公开可访问,二者均发布于2026年8月20日,且均仍列着“已修补版本:无”,也没有 CVE。第三个 GHSA-5h8f-r9g8-5w5p 在该地址返回未找到。CobaltoSec 的仓库在同一日期列出了46条已发布公告,涵盖 MCP 服务器及相关 AI 工具;论文撰写时将19条计为已公开披露,49条仍处于禁发状态。一份针对frootai、日期为2026年7月28日的扫描产物存于 Corvus 仓库中,因此测试确实发生过;只是公告不可见。

披露流程本身只作了概要描述,而非详细说明。全部 68 项发现均通过私有的 GitHub Security Advisories,在 90 天协调保密期下发送给维护者;在无法进行私下报告的情况下,Padilla 改为提交公开的仓库 issue。论文以轶事性方式报告称,一些维护者在 24 小时内完成了修补,另一些数周都没有回复,还有一些仓库已被废弃。论文没有给出所联系维护者的数量,也没有回复率表格,并表示这些内容将在提交时完整报告。

论文未予确立的内容

Exposed by Design 是一篇单作者预印本。arXiv 列出的是第 1 版,提交于 2026 年 7 月 31 日,没有期刊引用,也没有同行评审声明。该存档将记录置信度评为 B——有据可查,但仅来自单一来源——而这一评级适用于本文通篇:上文中的每一个数字都来自 Padilla 的论文或他发布的材料,而非独立测量所得。

似乎没有独立新闻机构报道过这项研究。相关报道确实存在——forkast.news 上一篇由 AI 撰写的分析、LinkedIn 和 Medium 上的帖子、一个中文安全博客、一篇日文解读文章——但它们只是转述了预印本,既没有采访作者,也没有核查相关公告或补充数据。派生报道并不等于佐证。

Padilla 自己指出了这些局限,而且这些局限异常具体。只测试了 HTTP 传输;而 stdio 服务器这一常见的本地情形不在范围内。发现过程是尽力而为的,因此 640 是一个下限。226 个已确认但未完全测试的服务器被排除,原因是 403 响应、连接重置、不符合规范的 JSON-RPC 回复,或者仅仅是在线状态不可用;论文称由此产生的选择偏差无法界定。检测依赖启发式方法——时序预言机、差分响应、模式检查——没有有标注的基准,也没有公布 34 个模块的精确率或召回率。他记录的频繁变动削弱了单条发现的时间有效性。而由一名研究者进行人工验证会带来确认偏误风险,他点明了这一风险,却没有加以量化。

An HTML card titled 'Established, and not', split into two columns. The left column, headed 'ESTABLISHED', lists: 414 internet-facing MCP servers dynamically tested in four July 2026 runs; 380 of them (91.8%) offered no OAuth authentication; 68 vulnerabilities filed as GitHub Security Advisories; Corvus published open source with 34 modules, 13 static and 21 dynamic; 193 of 464 servers confirmed on 21 July were gone three days later; two case-study advisories public since 20 August 2026, both unpatched. The right column, headed 'NOT ESTABLISHED', lists: that any exposed server was attacked in the wild; a total population, since 640 confirmed servers is a lower bound; 687 shell-exposing tools as a share of tested servers, since the denominators conflict; the third case-study advisory, not publicly resolvable on 30 October 2026; any independent measurement or newsroom verification; module precision or recall, since no labelled benchmark is published. A footer cites Nicolás Padilla, arXiv:2608.00150 and the CobaltoSec advisory repository.

之后发生了什么变化

截至目前,实际成果是工具与公告流。Corvus 可安装并有文档,CobaltoSec 的公告库在 2026 年 10 月 30 日已有 46 条已发布条目,而论文在 7 月底统计到的公开披露为 19 条。论文自身的案例研究中有两个仍没有修补版本——对这两台服务器而言,披露产生了公开记录,但尚未带来修复。

对防御者来说,这项研究有用的部分在于其方法,而不是其最醒目的结论。仅从无需凭据即可响应的服务器中得出的 91.8% 这一数字,说明的是一个范围有限却真实的情况:大多数被暴露的内容从未设防,而三天内的更替表明,其中许多是为了演示、原型或测试而临时搭建,从未经过加固。论文无法说明的是,组织实际依赖的 MCP 服务器是否同样如此,因为这些服务器从未被纳入样本。