Github被发现存在一个高危漏洞,基本上所有拥有复杂Github Actions的项目都容易被攻击。这个CVE代号为CVE-2020-15228的漏洞是由Google旗下著名的Project Zero网络安全团队在7月份时发现的。由于Project Zero之前改变了其对于公布漏洞的政策,因此他们给了Github整整90天的时间去修复这个漏洞。Github其后在10月份时弃用了易受攻击的指令,并且也使用户发出了安全警示提醒他们要尽快更新工作流。而在10月中的时候,Project Zero又给予了Github额外14天的宽限期。就在这个限期届满前,Github向Project Zero申请延长限期48小时来通知更多的用户以及决定甚么时候可以修好这个漏洞。
CV-2020-15228是一个代码注入攻击,而Github Actions中的各种工作流指令是极为容易受到这类攻击。这些指令是在执行动作以及Action Runner中的沟通渠道存在的。Google高级信息安全工程师Felix Wilhem在一份Project Zero的报告中表示:
“这个功能(工作流指令)的最大问题在于它极易受到代码注入攻击。当运行程序在解析STDOUT上的每一行文字尝试寻找工作流指令时,所有列出未受信任内容所为执行的一部分的Github动作都很容易被攻击。在大多数情况下,可设置任意环境变量这个特性,只要当另一个工作流在执行后,最终都很有可能会被用作远程执行代码。我花了些时间在Github的存储库中检查,发现只要是有点复杂的Github动作都容易被攻击。”
Felix Wilhem还表示,Github要修复这个漏洞会是比较困难的,因为工作流指令的实现方式从根本上来说是不安全的,弃用那些部分指令只是一个临时的解决方法,要彻底修复就需要把工作流指令移动到其他地方,虽然这样做会破坏掉某些依赖其的代码。