允許為 NPM 儲存庫中的任何套件發布更新的漏洞

GitHub 揭露了其 NPM 套件儲存庫基礎架構中的兩起事件。 2 月 XNUMX 日,第三方安全研究人員(Kajetan Grzybowski 和 Maciej Piechota)作為 Bug Bounty 計劃的一部分報告了 NPM 存儲庫中存在一個漏洞,該漏洞允許您使用您的帳戶發布任何軟體包的新版本,無權執行此類更新。

此漏洞是由於處理 NPM 請求的微服務程式碼中的權限檢查不正確造成的。 授權服務根據請求中傳遞的資料執行套件權限檢查,但將更新上傳到儲存庫的另一個服務根據上傳套件的元資料內容決定要發佈的套件。 因此,攻擊者可以請求發布他有權訪問的包的更新,但在包本身中指定有關另一個包的信息,該包最終將被更新。

該問題在報告漏洞 6 小時後已修復,但漏洞在 NPM 中存在的時間比遙測日誌覆蓋的時間長。 GitHub 聲稱自 2020 年 XNUMX 月以來沒有發現利用該漏洞進行攻擊的痕跡,但不能保證該問題之前沒有被利用過。

第二起事件發生在26月30日。 在使用replicate.npmjs.com 服務的資料庫進行技術工作期間,資料庫中存在可供外部請求存取的機密資料被洩露,從而洩露了有關更改日誌中提到的內部包名稱的資訊。 有關此類名稱的資訊可用於對內部專案進行依賴攻擊(XNUMX 月份,類似的攻擊允許在 PayPal、微軟、蘋果、Netflix、Uber 和其他 XNUMX 家公司的伺服器上執行程式碼)。

此外,由於大型專案儲存庫被劫持以及透過受損開發者帳戶傳播惡意程式碼的案例不斷增加,GitHub 決定引入強制雙重認證。 此變更將於 2022 年第一季生效,並將適用於最受歡迎清單中包含的軟體包的維護者和管理員。 此外,據報道,基礎設施的現代化將引入對新版本軟體包的自動監控和分析,以便及早發現惡意變更。

讓我們記住,根據2020 年進行的一項研究,只有9.27% 的軟體包維護者使用雙重認證來保護訪問,並且在13.37% 的情況下,在註冊新帳戶時,開發人員試圖重複使用出現在已知密碼外洩。 在密碼安全審查期間,12% 的 NPM 帳戶(13% 的軟體包)由於使用可預測且簡單的密碼(例如「123456」)而被存取。 其中有4個來自最受歡迎的前20個軟體包的用戶帳戶,13個軟體包每月下載量超過50萬次的帳戶,40個每月下載量超過10萬次的帳戶,以及282個每月下載量超過1萬次的帳戶。 考慮到沿著依賴鏈載入模組,不受信任帳戶的洩漏可能會影響 NPM 中多達 52% 的模組。

來源: opennet.ru

添加評論