聚焦源代码安全,网罗国内外最新资讯!
编译:代码卫士
该漏洞最初由 Cycode 研究团队在去年11月份发现,谷歌在七天内修复。Cycode 研究团队在2月2日披露了漏洞详情。研究员 Elad Pticha 提到,“我们发现,GitHub Actions 工作流中本可被插入恶意代码,原因是 Bazel 的依赖 Actions 中存在一个命令注入漏洞。该漏洞直接影响软件供应链,可导致恶意人员将有害代码插入 Bazel 代码库、创建后门并影响Bazel 用户的生产环境。”
2023年11月1日,研究人员将该漏洞提交给谷歌;11月7日,谷歌审计了该报告并在第二天推出“新提交”更新修复了该漏洞;12月5日,“pull 请求”完全修复了该漏洞;一周后,研究员获得13337美元的漏洞奖励。
Pticha 写道,谷歌证实了“该漏洞的重要性”。该漏洞的核心与使用GitHub Custom Actions(被称为“一种多功能的”软件开发工作流简化方法)和使用被称为“樱桃采摘”的工作流有关。
根据Atlassian公司的描述,“樱桃采摘”工作流指的是在开发环境中可被引用挑选的任意 Git 提交并附加到当前运行的 HEAD 或代码分支的命令类型。Pticha 写道,“自定义操作可看做代码中被引用的函数,我们使用自己的函数并导入第三方函数。”操作包括 Docker、JavaScript 和 Composite。他写道,“自定义操作位组织机构的软件供应链带来沉重负担。顶层工作流中的数行代码就可被翻译成数千行甚至数百万行代码,其中很多甚至是我们并非发现的。”
研究人员使用 GitHub Actions,设法了解到如何发现命令注入漏洞可针对“摘樱桃”工作流。这些操作使用通过“如 JavaScript 和 Python,并使用多个包管理器如 NPM 或 PyPI 等库,组成庞大的依赖链条。”研究人员设法通过在系统日志中插入恶意 payload的方法获得 Bazel 和 GitHub 的令牌。间接依赖中的漏洞,如自定义操作“难以被发现,因为它们可能位于不同的仓库中、不同的生态系统并由其他维护人员维护。” Pticha 提到,在公开仓库中的340万个工作流中,几乎所有的工作流(约98.75%)都集成了一个或多个操作。
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。
觉得不错,就点个 “在看” 或 "赞” 吧~