关键信息 漏洞类型: 命令注入漏洞 受影响版本: git-promise@1.0.0 漏洞描述: 是一个用于执行 git 命令的简单包装器,但存在命令注入漏洞。 漏洞发现背景: - 之前修复的远程代码执行漏洞(SYNK-JS-GITPROMISE-567476)处理不当。 - 修复时使用了 拼接字符串,导致命令注入风险。 修复尝试: - 通过 PR diff-e727e4bdf3657fd1d798edcd6b099d6e092f8573cba266154583a746bba0f346L34-L49 引入 以分离 git 二进制文件和参数。 - 但仍采用以空格分隔的方式来拆分命令行参数,导致漏洞仍存在。 - 例子: 解析时 成为独立参数。 新利用方法: - POC1: 使用制表符代替空格来绕过空格分隔逻辑。 - POC2: 利用 shell 预定义的分隔符 来绕过空格分隔逻辑。 相关资源: - 项目 GitHub: https://github.com/piuccio/git-promise - 项目 npm: https://snyk.io/vuln/npm%3Agit-promise 作者: Liran Tal