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