官方Homebrew Cask存儲庫中發(fā)現(xiàn)了嚴(yán)重的安全漏洞,攻擊者可能已經(jīng)利用了該漏洞在安裝Homebrew的失陷主機(jī)上執(zhí)行任意代碼。
該安全漏洞由一名日本安全研究人員RyotaK于4月18日報告給官方,該問題源于其GitHub存儲庫中代碼變更的處理方式,從而導(dǎo)致了可能出現(xiàn)惡意代碼會被自動審查和合并的情況,該漏洞已于4月19日修復(fù)。
Homebrew是一個免費的開源軟件包管理器解決方案,支持在Apple的macOS操作系統(tǒng)與Linux操作系統(tǒng)上安裝軟件。Homebrew Cask對功能進(jìn)行了擴(kuò)展,使其支持可視化的macOS應(yīng)用程序、字體、插件和其他非開源軟件的命令行工作流。
Homebrew的Markus Reiter表示:“本次發(fā)現(xiàn)的漏洞使攻擊者能夠?qū)⑷我獯a注入進(jìn)代碼庫并自動合并”,“由于GitHub的review-cask-pr動作中的git_diff依賴項存在缺陷,該動作用于解析提交PR的diff檢查。受缺陷影響,解析器可能會完全忽略某些代碼,從而導(dǎo)致惡意PR會被成功合并”。
直白點說,該缺陷意味著攻擊者可以將惡意代碼注入到Homebrew Cask存儲庫中,且不經(jīng)過任何審核就能完成分支合并。研究人員提交了相應(yīng)的 POC 來進(jìn)行漏洞證明。根據(jù)調(diào)查結(jié)果,Homebrew還刪除了名為“automerge”的自動合并GitHub Action動作,并從所有易受攻擊的存儲庫中刪除了“review-cask-pr”的GitHub Action動作。
Bot提交到homebrew/cask*存儲庫的功能也已被刪除,所有PR都需要維護(hù)人員進(jìn)行手動審查和批準(zhǔn)。“如果漏洞被惡意利用,會造成極其大的影響”,研究人員表示:“我們強烈感受到需要對集中式的生態(tài)系統(tǒng)進(jìn)行安全審核”。