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

CVE-2026-4496 Git-MCP-Server OS命令注入漏洞

披露日期: 2026-03-20

漏洞信息

漏洞编号
CVE-2026-4496
漏洞类型
OS命令注入
CVSS评分
5.3 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
sigmade Git-MCP-Server

相关标签

OS命令注入Git-MCP-ServerCVE-2026-4496RCENode.js本地漏洞

漏洞概述

sigmade Git-MCP-Server在特定提交版本前存在OS命令注入漏洞。受影响的组件包括src/gitUtils.ts文件中的child_process.exec函数,涉及show_merge_diff、quick_merge_summary和show_file_diff等功能。攻击者可利用该漏洞在本地低权限情况下执行任意操作系统命令,导致机密性、完整性和可用性受损。由于该产品采用滚动发布模式,建议用户尽快应用补丁进行修复。

技术细节

该漏洞源于sigmade Git-MCP-Server项目中src/gitUtils.ts文件的不安全代码实践。在实现show_merge_diff、quick_merge_summary及show_file_diff等功能时,应用程序直接将外部输入拼接到命令字符串中,并传递给Node.js的child_process.exec函数进行调用。该函数会启动一个新的Shell进程来执行命令,若输入数据未经过严格的校验和净化,攻击者即可注入恶意的Shell指令。攻击者无需用户交互,仅需低权限即可在本地环境下利用此漏洞,通过注入特定的命令分隔符(如分号或管道符)执行任意系统指令,进而可能导致敏感信息泄露、数据篡改或服务拒绝。

攻击链分析

STEP 1
侦察
攻击者确认目标系统运行了受影响版本的sigmade Git-MCP-Server,并确定其包含易受攻击的src/gitUtils.ts文件。
STEP 2
访问与交互
攻击者获得对运行该服务器的本地低权限访问权限(AV:L, PR:L),并能够调用受影响的功能接口(如show_merge_diff)。
STEP 3
漏洞利用
攻击者向接口发送特制的恶意参数,参数中包含Shell元字符(如 ';' 或 '&&'),旨在拼接并执行额外的系统命令。
STEP 4
命令执行
由于应用未对输入进行过滤,child_process.exec直接执行了拼接后的恶意字符串,导致攻击者在服务器上下文中执行任意OS命令。
STEP 5
影响达成
成功利用后,攻击者的命令以应用进程的权限运行,可能导致读取敏感文件(C:L)、修改数据(I:L)或中断服务(A:L)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC for CVE-2026-4496: OS Command Injection in Git-MCP-Server // The vulnerability lies in src/gitUtils.ts where user input is passed to child_process.exec. // An attacker can inject commands via parameters affecting show_merge_diff. const { exec } = require('child_process'); // Simulated vulnerable function pattern found in src/gitUtils.ts function vulnerableShowDiff(userInput) { // Vulnerable code: direct concatenation without sanitization const command = `git diff ${userInput}`; exec(command, (error, stdout, stderr) => { if (error) { console.error(`exec error: ${error}`); return; } console.log(`Output: ${stdout}`); }); } // Exploit payload: Injecting a command to execute 'id' or 'whoami' // Using a semicolon to chain commands in the shell const maliciousPayload = "origin/master; id"; console.log("Sending payload with command injection:"); vulnerableShowDiff(maliciousPayload);

影响范围

sigmade Git-MCP-Server <= commit 785aa159f262a02d5791a5d8a8e13c507ac42880

防御指南

临时缓解措施
如果无法立即更新,建议限制对Git-MCP-Server的本地访问权限,并在网络或主机层面监控异常的进程调用行为。检查src/gitUtils.ts文件,确保所有传递给child_process.exec的参数都经过严格的白名单验证,阻断包含命令分隔符的恶意输入。

参考链接

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