事件经过
Repomix 的浅克隆辅助函数未能在将用户可控的分支名称参数传递给 git 命令之前进行清理,允许进行 git 选项注入。
影响分析
Repomix 被开发人员广泛用于为 LLM 上下文窗口打包存储库内容;在 AI 工具管道的克隆步骤中进行选项注入可能在打包不受信任的第三方存储库时导致代码执行。
攻击途径
src/core/git/gitCommand.ts 中的 execGitShallowClone 函数将 --remote-branch 值直接传递给 git fetch 和 git checkout,而没有验证或 --end-of-options 分隔符,允许攻击者提供的分支名称注入其他 git 选项(例如 --upload-pack),可能在克隆期间导致命令执行。
受影响系统
Repomix 1.14.1 之前的版本
缓解措施
升级到 Repomix 1.14.1 或更高版本。