CVE-2026-6951simple-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::`后定义的系统命令。由于该攻击向量通过网络发起,且无需任何认证或用户交互,攻击者即可在目标服务器上实现任意代码执行,进而完全控制主机系统。