IPBUF安全漏洞报告
English
CVE-2026-6951 CVSS 9.8 严重

CVE-2026-6951 simple-git远程代码执行漏洞

披露日期: 2026-04-25

漏洞信息

漏洞编号
CVE-2026-6951
漏洞类型
远程代码执行
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
simple-git

相关标签

RCE远程代码执行simple-gitCVE-2026-6951Node.js命令注入

漏洞概述

simple-git是一个用于Node.js的Git接口库。在3.36.0版本之前,该组件存在严重的远程代码执行漏洞。这是由于针对CVE-2022-25912的修复不完整,虽然阻止了-c选项,但未阻止等效的--config形式。如果不受信任的输入能到达传递给simple-git的options参数,攻击者可以通过启用protocol.ext.allow=always并使用ext::克隆源来实现远程代码执行。

技术细节

该漏洞的核心在于simple-git库对Git命令参数的过滤机制存在绕过漏洞。尽管开发者在修复CVE-2022-25912时阻断短选项`-c`,却未同时禁用其等效的长格式选项`--config`。攻击者可利用此疏漏,通过注入`--config=protocol.ext.allow=always`参数,绕过Git默认的安全限制,允许使用扩展协议。随后,攻击者结合`ext::`伪协议(例如`ext::sh -c malicious_command`)构造恶意的仓库源地址。当易受攻击的应用程序调用simple-git的`clone`或其他方法并传入这些受污染的参数时,底层Git进程会解析配置并执行`ext::`后定义的系统命令。由于该攻击向量通过网络发起,且无需任何认证或用户交互,攻击者即可在目标服务器上实现任意代码执行,进而完全控制主机系统。

攻击链分析

STEP 1
reconnaissance
攻击者识别目标应用使用了simple-git库且版本低于3.36.0。
STEP 2
payload_preparation
攻击者构造恶意输入,包含绕过过滤的'--config=protocol.ext.allow=always'参数以及用于执行命令的'ext::'伪协议URL。
STEP 3
exploitation
攻击者将恶意输入注入到应用程序的Git操作接口(如clone URL或options参数)。
STEP 4
execution
simple-git调用底层Git进程,Git解析配置并执行ext::中定义的系统命令,完成攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
const simpleGit = require('simple-git'); // Example payload exploiting the incomplete fix // The --config option bypasses the -c filter const maliciousOptions = ['--config=protocol.ext.allow=always']; // The ext:: protocol allows arbitrary command execution const maliciousRepo = 'ext::sh -c touch% /tmp/pwn'; // Triggering the vulnerability in a real-world scenario // where 'options' and 'repo' might come from user input simpleGit().clone(maliciousRepo, 'target_dir', maliciousOptions);

影响范围

simple-git < 3.36.0

防御指南

临时缓解措施
在无法立即升级的情况下,应实施严格的输入验证层。检查所有传递给simple-git函数的参数,特别是options和url参数,拒绝任何包含'--config'、'-c'或以'ext::'开头的字符串。同时,审查代码逻辑,确保未将不可信的数据直接传递给Git执行环境。

参考链接

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