CVE-2025-68144CVE-2025-68144是影响mcp-server-git的一个高危命令注入漏洞。该漏洞存在于mcp-server-git 2025.12.17之前的所有版本中。由于git_diff和git_checkout函数直接将用户控制的参数传递给git CLI命令而未进行适当的清理和验证,攻击者可以通过构造特殊的flag-like参数(如--output=/path/to/file)来欺骗git命令解析器。这些参数会被git CLI解释为命令行选项而非git引用,从而绕过安全检查并实现任意文件覆盖。CVSS评分7.1(高危),攻击向量为网络,攻击复杂度低,无需认证但需要用户交互。该漏洞由GitHub安全团队([email protected])发现并披露,建议用户尽快更新至2025.12.17或更高版本以修复此安全问题。
该漏洞的核心问题在于mcp-server-git的git_diff和git_checkout函数缺乏输入验证机制。当用户提交参数时,这些参数被直接拼接进git命令中执行。以git_diff为例,正常情况下用户可能传入一个commit hash或分支名作为参数,但攻击者可以构造形如--output=/tmp/malicious.txt的参数。由于git命令会首先解析命令行选项,--output会被识别为git diff的输出选项而非用户预期的git引用,导致git将diff结果写入攻击者指定的任意文件。修复方案采用了两层防护:首先验证参数不以短横线(-)开头,直接拒绝可疑输入;其次使用git rev-parse命令验证参数是否能解析为有效的git引用,确保只有合法的git对象才会被用于命令执行。攻击者若要利用此漏洞,需要诱使目标用户在MCP客户端中执行特定的git命令操作。