事件经过
mcollina mcp-ripgrep 直至 0.4.0 版本中存在一个命令注入缺陷,影响高级搜索工具的 fileType 参数,该参数被传递到 Shell 调用中,而相邻参数则通过 escapeShellArg 进行转义。维护者指出该工具是在机器上运行 ripgrep,并认为这是预期的设计考量,因此该发现存在争议;已有公开 PoC。该 CVE 被标记为‘有争议’。
影响分析
mcp-ripgrep 是一个为代理搜索工具执行 Shell 命令的 MCP 服务器;如果攻击者可以操控 fileType 参数(例如,通过搜索请求中的提示注入),它就成为运行 MCP 服务器的机器上的本地命令注入点。尽管存在争议且为本地问题,但它说明了更广泛的一类将代理提供的输入传递给 Shell 的 MCP 服务器。
攻击途径
被操控的 fileType 参数传递到 MCP 服务器中的 Shell 调用(本地攻击面)
受影响系统
mcollina mcp-ripgrep <= 0.4.0
缓解措施
一致地转义 fileType 参数/避免将其传递给 Shell;将 MCP 服务器输入视为非受信任