一、 漏洞描述
npm是 Node.js 的包管理工具,用來安裝各種 Node.js 的擴展,后被GitHub收購。
GitHub本次公開披露的兩個漏洞是近兩個月在npm中發(fā)現(xiàn)的,第一個漏洞為信息泄露漏洞,第二個漏洞為授權(quán)漏洞。
二、 漏洞詳情
npm信息泄露漏洞
CVE: 暫無
組件: npm
漏洞類型: 配置問題
影響: 泄露了私有npm包名
簡述: 該漏洞是npmjs的復(fù)制服務(wù)器上的數(shù)據(jù)泄漏,這是由 "日常維護 "造成的,導(dǎo)致暴露了私有npm包的名稱列表,但在維護窗口期間,這些包的內(nèi)容并沒有暴露。
當(dāng)在為Replication.npmjs.com 上的公共 npm 副本提供支持的數(shù)據(jù)庫進行維護期間,創(chuàng)建的記錄可能會暴露私有包的名稱,雖然私有包的內(nèi)容沒有暴露,但這些名稱信息足以讓攻擊者以自動化的方式進行有針對性的依賴混淆攻擊和域名搶注。
雖然目前所有包含私有包名稱的記錄已經(jīng)從 npm 的復(fù)制數(shù)據(jù)庫中刪除,但replicate.npmjs.com 服務(wù)仍被第三方使用,因此第三方可能會繼續(xù)保留副本或可能已將數(shù)據(jù)復(fù)制到其他地方。GitHub已經(jīng)對其生成公共復(fù)制數(shù)據(jù)庫的過程進行了修改,以在未來消除私人軟件包名稱泄露問題。
Npm授權(quán)露漏洞
CVE: 暫無
組件: npm
漏洞類型: 代碼問題
影響: 泄露了私有npm包名
簡述:此漏洞源于處理對npm注冊表的請求的多個微服務(wù)之間不正確的授權(quán)檢查和數(shù)據(jù)驗證,導(dǎo)致授權(quán)和發(fā)布的軟件包存在差異。攻擊者可以在沒有適當(dāng)授權(quán)的情況下使用賬戶發(fā)布任何npm包的新版本。
GitHub表示該漏洞目前尚未被惡意利用,并且已經(jīng)通過確保發(fā)布服務(wù)和授權(quán)服務(wù)的一致性來緩解這個問題,以確保授權(quán)和發(fā)布使用的是同一個軟件包。
此外,流行的npm庫 "ua-parser-js"、"coa "和 "rc "之前在一系列攻擊中被劫持,目的是用木馬和加密礦工感染開源軟件消費者。據(jù) GitHub 稱,這些流行庫的維護者都沒有在他們的賬戶上啟用雙因素身份驗證 (2FA),因此,為避免這種情況再次發(fā)生,GitHub將要求 npm 維護人員在 2022 年開始啟用2FA。
三、 安全建議
通用修補建議:
目前這些漏洞已經(jīng)修復(fù),建議相關(guān)用戶注意防范此類攻擊。
參考鏈接:
https://github.blog/2021-11-15-githubs-commitment-to-npm-ecosystem-security/
漏洞信息摘自:啟明星辰