IPBUF安全漏洞报告
English
CVE-2025-66219 CVSS 9.8 严重

CVE-2025-66219 willitmerge命令注入漏洞(严重)

披露日期: 2025-11-29

漏洞信息

漏洞编号
CVE-2025-66219
漏洞类型
命令注入
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
willitmerge

相关标签

命令注入willitmergeNode.jsexecCVE-2025-66219命令行工具CI/CDGitHub远程代码执行

漏洞概述

willitmerge是一款用于检查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,属于最严重的漏洞级别,对系统机密性、完整性和可用性均造成严重影响。

攻击链分析

STEP 1
步骤1
攻击者向目标仓库提交包含恶意Payload的Pull Request,或通过命令行参数传入恶意构造的字符串
STEP 2
步骤2
willitmerge工具读取用户输入(PR信息或命令行参数),未进行安全过滤
STEP 3
步骤3
恶意输入被拼接到exec()调用的命令字符串中,使用分号、管道符或反引号等shell元字符
STEP 4
步骤4
exec()函数调用系统shell执行构造的命令,攻击者的恶意命令被成功执行
STEP 5
步骤5
攻击者获取服务器命令执行权限,可进一步进行横向移动、数据窃取或建立持久化后门

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2025-66219 PoC - Command Injection in willitmerge // Affected versions: willitmerge <= 0.2.1 const { exec } = require('child_process'); // Malicious input that exploits the command injection // Using semicolon to chain commands const maliciousInput = '; cat /etc/passwd'; // This simulates how the vulnerable code concatenates user input const vulnerableCommand = `git status ${maliciousInput}`; console.log('Executing vulnerable command:'); console.log(vulnerableCommand); // The vulnerable code pattern (simplified) // exec(vulnerableCommand, (error, stdout, stderr) => { // console.log(stdout); // }); // Alternative PoC using backticks for command substitution const maliciousInput2 = '`whoami`'; const vulnerableCommand2 = `git log ${maliciousInput2}`; console.log('\nAlternative PoC:'); console.log(vulnerableCommand2); // Real-world attack vector via PR/commit message // Attacker creates a PR with malicious branch name or commit message // When willitmerge processes this PR, the malicious input gets executed

影响范围

willitmerge <= 0.2.1

防御指南

临时缓解措施
由于官方尚未发布修复版本,建议采取以下临时措施:1)立即停止使用willitmerge工具或限制其在不受信任输入场景中的使用;2)在CI/CD流水线中对该工具的使用进行严格的安全审查;3)监控和审计使用该工具的系统日志,及时发现可疑活动;4)考虑使用替代工具或自行开发安全的实现版本;5)对运行该工具的服务器实施网络隔离和访问控制,限制攻击面。

参考链接

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