CVE-2025-66219willitmerge是一款用于检查Pull Request是否可合并的命令行工具。在0.2.1及之前版本中,存在严重的命令注入漏洞。该漏洞源于代码中使用了不安全的子进程执行API(exec),并直接将用户输入拼接到命令字符串中。用户可通过命令行参数或目标仓库中用户可控的内容触发此漏洞。攻击者无需任何认证即可利用此漏洞,在受害系统上执行任意系统命令。由于该工具通常在CI/CD环境中运行,攻击者可能通过恶意提交或Pull Request触发漏洞,进而获取服务器控制权限。截至漏洞披露时,官方尚未发布修复版本。
漏洞存在于willitmerge工具的lib/willitmerge.js文件第189-197行附近。代码使用Node.js的child_process.exec()函数执行系统命令时,直接将用户控制的输入拼接到命令字符串中,未进行任何输入验证或转义处理。攻击者可通过以下方式利用:1)通过命令行参数传入恶意构造的字符串,包含shell元字符(如分号、管道符、反引号等);2)在目标Git仓库的特定位置植入恶意内容,该内容会被程序读取并拼接到命令中执行。由于exec()函数会调用系统shell,攻击者可使用管道符连接多个命令、反引号执行子命令、或使用其他shell语法实现任意命令执行。此漏洞的CVSS评分高达9.8,属于最严重的漏洞级别,对系统机密性、完整性和可用性均造成严重影响。