谷歌 Project Zero 披露了 GitHub Actions 中存在的严重安全漏洞。
Actions 主要负责与“动作执行器”(Action Runner)之间的通信工作。 这次问题在于,GitHub Actions 中的工作流命令极易受到注入攻击。
根据 Project Zero 团队的披露,当进程解析至 STDOUT 的每一行,以寻找工作流命令时,每个 GitHub Actions 操作都会在执行过程中打印出不受信任的内容。在大多数情况下,设置任意环境变量的功能,会在执行另一个工作流程后立即执行远程代码。换言之,这一缺陷使之极易受到注入攻击。
Project Zero 团队研究员 Felix Wilhelm 对此评价称:“实现工作流命令的方式从根本上来说是不安全的。”
7 月 21 日,Project Zero 团队发现这个漏洞之后通报给 GitHub。通常来说, 漏洞被发现之后,受影响的机构将有 90 天的筹备修复时间。Project Zero 团队也给 GitHub 提供了 90 天宽限期,截至 10 月 18 日。
GitHub 最终决定弃用易受攻击的命令,并发出“中等严重的安全漏洞”的修补建议,通知开发者更新其工作流程。 但这只是临时性应对措施,由于问题如 Felix Wilhelm 所说,是“根本性的”不安全问题,长期解决仍需将工作流命令从界内通道移往它处,而这么做又会破坏其它相关代码。Felix Wilhelm 也无法确定该如何解决这个问题 ,GitHub 并没有完成修复。
90 天期限到期前,10 月 16 日,GitHub 得到了 Project Zero 团队提供的额外 14 天宽限期,新截止日期为 11 月 2 日,GitHub 计划完全禁用相关命令。之后,GitHub 试图再申请 48 小时的宽限期。但 Project Zero 团队认为延期并不能解决问题,且有违漏洞披露过程,于是披露了漏洞详情和概念验证代码。
Project Zero 团队披露详情