CVE-2026-25244WebdriverIO 在 9.24.0 之前的版本中存在严重漏洞。当处理包含恶意分支名称的 Git 仓库时,`getGitMetadataForAISelection` 函数未对分支名进行清理,直接将其传递给 `execSync`。这导致命令注入,允许攻击者在 CI/CD 环境或开发者机器上执行任意代码,进而窃取敏感信息或破坏系统。
该漏洞源于 WebdriverIO 在处理测试编排选项时的安全疏忽。Git 允许分支名称包含 shell 元字符(如 `;`, `&`, `|` 等)。WebdriverIO 的 `getGitMetadataForAISelection()` 函数在获取 Git 元数据时,直接将仓库的分支名称插值到 `execSync()` 系统调用中,且未经过任何输入验证或清理。攻击者可以通过诱导项目引用恶意的 Git 仓库(通过 `testOrchestrationOptions.runSmartSelection.source` 配置),构造一个包含恶意命令的分支名。当测试环境尝试获取该仓库的元数据时,恶意命令将被操作系统 Shell 执行。由于无需用户交互且无需认证,攻击者可轻易接管运行测试的服务器,造成严重后果。