CVE-2025-64340FastMCP 是构建 MCP 应用的标准框架。在 3.2.0 版本之前,当服务器名称包含 shell 元字符(如 &)时,在 Windows 上通过 fastmcp install 命令安装会导致命令注入。这是因为尽管使用了列表参数,但 Windows 上的 .cmd 包装器通过 cmd.exe 执行,会解析扁平化字符串中的元字符。该问题已在 3.2.0 版本修复。
该漏洞源于 Windows 下 Python subprocess 模块的实现特性。在 FastMCP 的安装流程中,虽然使用了列表参数调用 subprocess.run(),但在 Windows 环境下,如果目标可执行文件是 .cmd 或 .bat 脚本,Python 会默认通过 cmd.exe /c 来启动。cmd.exe 在处理参数时会将列表重新拼接成字符串,并解析其中的 shell 元字符(如 &、|、>)。攻击者可以构造包含恶意命令的服务器名称,诱导用户执行安装操作。一旦触发,cmd.exe 将解析并执行注入的命令,从而在用户权限下实现任意代码执行,危及系统机密性、完整性和可用性。