MCP 服务器安全扫描器 mcpscan 漏掉了 2026 年最严重的 MCP RCE:一条规则修复
一位开发者在 Dev.to 上分享了一个深刻的安全教训:他开发的 MCP(Model Context Protocol)服务器静态安全扫描器 mcpscan,漏掉了 2026 年最严重的一个 MCP 远程代码执行(RCE)漏洞。而修复方法只需要添加一条扫描规则。
背景:mcpscan 是什么
几个月前,作者发布了 mcpscan,一个静态分析工具,用于扫描 MCP 服务器中反复出现的漏洞类别。MCP 是一种让大语言模型能够与外部工具和数据源交互的协议,近年来随着 AI Agent 的普及而迅速发展。
mcpscan 的设计目标是在 MCP 服务器部署前,自动检测常见的安全漏洞,如:
- 未授权的命令执行
- 路径遍历
- SQL 注入
- 不安全的文件操作
- 敏感信息泄露
作者以为覆盖了主要的漏洞类别,但实际情况证明,还有更隐蔽的攻击面没有被覆盖。
漏掉的 RCE 漏洞
2026 年披露的一个 MCP RCE 漏洞,利用了 mcpscan 没有覆盖的一个攻击面。这个漏洞的核心在于:MCP 服务器在处理工具调用时,对用户输入的处理存在缺陷,导致攻击者可以通过精心构造的输入触发远程代码执行。
具体来说,漏洞利用了以下几个因素的组合:
- 工具参数的动态解析:MCP 服务器在解析工具调用参数时,使用了动态求值机制,没有对输入进行充分的验证和过滤
- 沙箱逃逸:虽然 MCP 服务器声称在沙箱中执行工具,但沙箱配置存在缺陷,可以被绕过
- 信任边界模糊:MCP 服务器信任了来自 AI 模型的输入,没有将其视为不可信输入进行严格处理
这个漏洞的严重性在于,它可以被远程利用,不需要用户交互,而且影响了大量使用受影响 MCP 服务器的 AI Agent 应用。
为什么扫描器漏掉了
mcpscan 漏掉这个漏洞的原因,是典型的安全扫描器设计缺陷:
- 基于已知模式的匹配:mcpscan 主要基于已知的漏洞模式进行匹配,无法检测未知的攻击面
- 静态分析的局限:静态分析无法完全模拟运行时的动态行为,特别是涉及动态求值和反射的场景
- 对 MCP 协议理解不足:扫描器的规则是基于对 MCP 协议的初步理解编写的,没有覆盖协议的所有边缘情况
- 缺乏动态测试:纯静态分析无法检测需要运行时才能触发的漏洞
一条规则的修复
修复方法非常简单:在 mcpscan 中添加一条新的扫描规则,检测 MCP 服务器中是否存在危险的动态求值模式。
具体来说,新规则检测以下模式:
- 使用
eval()、exec()或类似的动态求值函数处理用户输入 - 使用反射或动态方法调用处理不可信输入
- 在工具处理函数中直接将用户输入传递给系统命令
- 沙箱配置不完整或可被绕过的模式
添加这条规则后,mcpscan 能够检测到这个 RCE 漏洞以及类似的攻击模式。
教训与启示
这个事件给安全工具开发者和 MCP 生态带来了几个重要教训:
1. 安全扫描器不是万能的
静态安全扫描器只能检测已知的漏洞模式,无法覆盖所有可能的攻击面。开发者不应该完全依赖扫描器的结果,而应该结合代码审查、渗透测试、动态分析等多种手段。
2. MCP 安全需要更多关注
随着 MCP 协议的普及,MCP 服务器的安全问题越来越重要。MCP 服务器作为 AI 模型与外部世界的桥梁,其安全直接影响到整个 AI Agent 系统的安全。
MCP 服务器开发者应该:
- 将所有来自 AI 模型的输入视为不可信输入
- 实施严格的输入验证和过滤
- 使用最小权限原则配置沙箱
- 定期进行安全审计和渗透测试
- 关注 MCP 协议的安全最佳实践
3. 安全工具需要持续更新
安全扫描器的规则需要持续更新,以覆盖新发现的漏洞和攻击模式。开发者应该建立漏洞情报收集机制,及时将新的漏洞模式添加到扫描规则中。
4. 纵深防御的重要性
单一的安全措施(如静态扫描)不足以保证安全。应该采用纵深防御策略,结合多种安全措施:
- 静态代码分析
- 动态安全测试
- 运行时监控和告警
- 沙箱隔离
- 最小权限原则
- 安全编码规范
mcpscan 的改进
在发现这个漏洞后,作者对 mcpscan 进行了多项改进:
- 新增 RCE 检测规则:添加了检测动态求值、反射、命令注入等模式的规则
- 改进沙箱检测:增强了对沙箱配置的检测能力,识别不完整或可绕过的沙箱
- 添加 MCP 特定规则:针对 MCP 协议的特点,添加了专门的安全检测规则
- 改进报告格式:扫描报告现在包含更详细的漏洞描述、修复建议和参考链接
- 建立漏洞情报机制:建立了持续收集 MCP 安全漏洞情报的机制,及时更新扫描规则
mcpscan 是开源项目,欢迎社区贡献新的检测规则和改进建议。
总结
MCP 服务器的安全是 AI Agent 生态中不可忽视的重要环节。mcpscan 漏掉严重 RCE 漏洞的事件提醒我们,安全工具不是万能的,需要持续更新和多种手段结合。
对于 MCP 服务器开发者来说,将 AI 模型的输入视为不可信输入、实施严格的输入验证、使用最小权限沙箱,是保障安全的基本原则。对于安全工具开发者来说,持续更新规则、覆盖新的攻击面、结合多种检测手段,是提高工具有效性的关键。
项目地址:https://github.com/kielltampubolon/mcpscan(示例)
原文链接:https://dev.to/kielltampubolon/my-mcp-security-scanner-missed-2026s-worst-mcp-rce-here-is-the-one-rule-fix-1g1i