谷歌Project Zero團隊披露了GitHub Actions中存在的嚴重安全漏洞
過去幾年,谷歌Project Zero團隊已經披露過影響Windows 10、macOS、iOS等平台的嚴重安全漏洞。通常情況下,受影響的機構將有90天的時間來籌備修復,然後相關漏洞詳情才會被公開披露。最新消息是,谷歌Project Zero團隊剛剛披露了影響GitHub開源代碼託管平台的一個“高度嚴重”的安全漏洞。
據悉,問題源於GitHub Actions中的工作流命令極易受到注入攻擊。而所謂的Actions,主要負責與“動作執行器”(Action Runner)之間的通信工作。
Felix Wilhelm在審查源代碼時發現了這個嚴重的安全隱患: “當進程解析至STDOUT的每一行,以尋找工作流命令時,每個GitHub操作都會在執行過程中打印出不受信任的內容”。
在大多數情況下,設置任意環境變量的功能,會在執行另一個工作流程後立即執行遠程代碼。換言之,這一缺陷使之極易受到注入攻擊。
Felix Wilhelm 花了一些時間來查看流行的GitHub 存儲庫,結果發現幾乎所有具有某些複雜GitHub Actions 的項目都極易受到此類Bug 的影響。
自7 月21 日發現該安全漏洞之後,Project Zero 團隊已經及時向GitHub 方面通報了此事,並為其提供了標準的90 天寬限期(截止10 月18 日)。
最終GitHub 決定棄用易受攻擊的命令,並發出“中等嚴重的安全漏洞”的修補建議,通知開發者更新其工作流程。
尷尬的是,由於工作流命令的實現方法存在根本性的不安全問題,Felix Wilhelm 也無法確定該如何解決這個問題。
作為臨時的應對措施,相關項目只得先棄用命令語法。長期的解決方案,仍需將工作流命令從界內通道移往它處,但這麼做又會破壞其它相關代碼,讓所有人都感到頭痛不已。
10 月16 日,GitHub 得到了Project Zero 團隊提供的額外14 天寬限期,以完全禁用相關命令(新截止日期為11 月2 日)。
不過當GitHub 試圖再申請48 小時的寬限期後,Project Zero 覺得一再拖延並不能解決問題,並且有違標準的漏洞披露流程,於是最終還是披露了漏洞詳情和概念驗證代碼。