GitHub 曝出漏洞,或?qū)е?4000 多個(gè)存儲庫遭受劫持攻擊
The Hacker News 網(wǎng)站披露,安全研究員發(fā)現(xiàn) GitHub 中存在一個(gè)新安全漏洞,該漏洞可能導(dǎo)致數(shù)千個(gè)存儲庫面臨劫持攻擊的風(fēng)險(xiǎn)。據(jù)悉,在 2023 年 3 月 1 日漏洞披露后,微軟旗下的代碼托管平臺已于 2023 年 9 月 1 日解決了安全漏洞問題。
Checkmarx 安全研究員 Elad Rapoport 在與 The Hacker News 分享的一份技術(shù)報(bào)告中指出,漏洞問題影響深遠(yuǎn),一旦網(wǎng)絡(luò)攻擊者成功利用安全漏洞,便可以劫持使用 Go、PHP 和 Swift 等語言的 4000 多個(gè)代碼包以及 GitHub 操作,從而影響開源社區(qū)的安全。
repocapping 是存儲庫劫持(repository hijacking)的簡稱,是一種威脅攻擊者能夠繞過一種流行的存儲庫命名空間退役的安全機(jī)制并最終控制存儲庫的技術(shù)。(該保護(hù)措施的作用是防止其他用戶在重命名其用戶帳戶時(shí)創(chuàng)建與包含 100 個(gè)以上克隆的存儲庫同名的存儲庫。)換句話說,用戶名和存儲庫名稱的組合被視為“已退役”狀態(tài)。
如果這一保障措施被輕易規(guī)避,威脅攻擊者就可以用相同的用戶名創(chuàng)建新賬戶并上傳惡意存儲庫,從而可能導(dǎo)致軟件供應(yīng)鏈攻擊。
Checkmarx 提出的新方法主要利用了創(chuàng)建存儲庫和重命名用戶名之間的潛在競爭條件來實(shí)現(xiàn)劫持存儲庫。具體來說,需要以下步驟:
- 受害者擁有命名空間 "victim_user/repo
- 受害者將 "victim_user "重命名為 "renamed_user"
- 受害者用戶/repo "版本庫已退役
- 用戶名為 "acker_user "的威脅攻擊者同時(shí)創(chuàng)建一個(gè)名為 "repo "的存儲庫,并將用戶名 "acker_user "重命名為 "victor_user"
最后一步是使用 API 請求創(chuàng)建版本庫,并截獲重命名請求以更改用戶名。
值得一提的是,GitHub 在近九個(gè)月前還修補(bǔ)了一個(gè)類似的繞過漏洞,該漏洞可能會為劫持攻擊打開“方便之門”。
文章來源:https://thehackernews.com/2023/09/critical-github-vulnerability-exposes.html