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