IPBUF安全漏洞报告
English
CVE-2025-64340 CVSS 6.7 中危

CVE-2025-64340 FastMCP 命令注入漏洞

披露日期: 2026-04-03

漏洞信息

漏洞编号
CVE-2025-64340
漏洞类型
命令注入
CVSS评分
6.7 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
FastMCP

相关标签

命令注入FastMCPCVE-2025-64340WindowsRCE

漏洞概述

FastMCP 是构建 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 将解析并执行注入的命令,从而在用户权限下实现任意代码执行,危及系统机密性、完整性和可用性。

攻击链分析

STEP 1
侦察
攻击者确认目标系统运行了 Windows 平台,且安装了 FastMCP 3.2.0 之前的版本。
STEP 2
构造载荷
攻击者创建一个包含 Shell 元字符(如 &)的恶意服务器名称,并在其后附加要执行的恶意命令(如下载木马或开启反弹 Shell)。
STEP 3
诱导执行
攻击者诱导受害者或利用低权限账户运行 `fastmcp install` 命令,并将恶意服务器名称作为参数传递。
STEP 4
命令执行
由于 Windows cmd.exe 解析特性,元字符被识别为命令分隔符,导致系统在执行正常安装流程的同时,并行执行了攻击者注入的恶意代码。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC Concept for CVE-2025-64340 # Demonstrates how metacharacters in server names can lead to command injection on Windows. import subprocess # Simulating the vulnerable behavior in FastMCP prior to 3.2.0 # The server name contains a shell metacharacter to inject a command. malicious_server_name = "legit_server & calc.exe" # On Windows, subprocess.run with a list argument calling a .cmd file # often invokes cmd.exe, which parses the '&' character. # 'cmd' represents a hypothetical wrapper like claude-code.cmd or gemini-cli.cmd try: # This simulates the internal call made by FastMCP install print(f"Attempting to install server: {malicious_server_name}") # In a real scenario, this would execute the installed CLI tool # command = ["cmd", "/c", "echo", "Installing", malicious_server_name] # subprocess.run(command, shell=False) # Note: Actual exploitation requires the specific vulnerable binary context. # The key is that cmd.exe interprets the '&' as a command separator. print("If vulnerable, 'calc.exe' would execute after the legit command.") except Exception as e: print(f"Error: {e}")

影响范围

FastMCP < 3.2.0

防御指南

临时缓解措施
建议用户立即将 FastMCP 框架升级到 3.2.0 或更高版本以彻底修复此漏洞。如果暂时无法升级,应严格审查所有待安装的服务器名称,确保其中不包含 &、|、> 等 shell 元字符,并考虑在 Linux/macOS 环境下执行安装操作以降低风险。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表