圖片來源: 

GitHub

GitHub周一(11/15)修補了Node.js套件管理器Npm的兩個安全漏洞,其一是在供第三方使用的複製伺服器上(Replica Server)曝露了私有套件的名稱,其二則是一個相對嚴重的安全漏洞,允許駭客更新任何Npm套件。

GitHub安全長Mike Hanley說明,第一個漏洞肇因於例行性的維護任務,在維護此一公開的複製Npm服務的資料庫時,所建立的記錄曝露了私有套件的名稱,因而允許使用者可自公開變更訊息中查看私有套件的名稱,但並無法存取套件的內容。

只要是在今年10月20日以前建立的私有套件,名字都已經曝光,不過,曝光時間僅限於10月21日至10月29日。GitHub已在10月29日移除了複製資料庫中的所有私有套件名稱。但GitHub仍警告,在這期間存取該資料庫的使用者,也許已經複製了這些名稱。

為了避免類似的錯誤再度發生,GitHub變更了配置此一公共複製資料庫的方式,以確保未來的程序不會再產生內含私有套件名稱的記錄。

第二個漏洞則是來自於GitHub的抓漏專案,此一由外部研究人員發現的安全漏洞將允許駭客以一個不具備適當權限的帳號,出版任何Npm套件的新版本,由於事態嚴重,使得GitHub團隊在收到報告的6小時內便將它修補。

Hanley解釋,此一漏洞是因為各種微服務在處理對Npm容器映像登錄服務的存取請求時,其授權檢查與資料驗證不一致所造成的。在此一架構中,授權服務是根據所請求URL路徑上傳遞的資料,正確地驗證了使用者對封包的權限,然而,在底層負責更新容器映像登錄資料以判斷要出版哪個封包的服務,卻是依據所上傳的封包檔案內容。

這樣一來,當請求出版一個封包的新版本時,將會取得一個封包的授權,但實際上卻可執行一個完全不同且可能未經授權的封包。GitHub已讓授權及發布服務達成一致,解決了該漏洞。

目前GitHub只能確定該漏洞自2020年9月以來並未被濫用,而無法得知更早之前是否曾遭受過攻擊。

熱門新聞

Advertisement