在104天的披露截止日期之后,谷歌本周公开了影响GitHub Actions的漏洞的详细信息。
该漏洞由Google Project Zero的安全研究员Felix Wilhelm识别,该漏洞于7月21日报告给GitHub。根据Google的政策,有关该漏洞的信息应在90天后发布,但是GitHub要求宽限期为14天。
漏洞跟踪为CVE-2020-15228,与设置为禁用的set-env和add-path工作流命令的使用有关。GitHub已为该问题指定了中等严重性等级,但Google Project Zero表示此问题的严重性为。
Github操作运行程序支持的set-env命令使用户可以定义任意环境变量,安全研究人员发现该功能高度容易受到注入攻击。
“当运行程序进程解析打印到STDOUT的每一行以寻找工作流命令时,每个Github操作都会在执行过程中打印出不受信任的内容,因此很容易受到攻击。在大多数情况下,设置任意环境变量的功能可在执行另一个工作流程后立即执行远程代码。” Wilhelm指出。
GitHub确认的问题是,可以将路径和环境变量注入到将不受信任的数据记录到stdout的工作流中,而这全都不是工作流作者的意图。
在10月1日的帖子中,Microsoft拥有的平台透露了@ actions / core npm模块应该更新到版本1.2.6,该版本更新了addPath和exportVariable函数。
GitHub引入了一组新文件,用于管理工作流中的环境和路径更新,以确保用户可以继续动态设置环境变量。
“跑步者将发布一个更新,该更新将在不久的将来禁用set-env和add-path工作流命令。现在,用户应该升级到@行为/核心1.2.6或更高版本,并更换一套-ENV的任何实例或在他们的工作流程与新的环境文件语法添加路径命令,” GitHub的解释。
GitHub说,Runner 2.273.5版本已经在警告使用添加路径或set-env命令,并且计划完全禁用它们。建议用户尽快升级,因为尚未找到解决方法。