用於 Rust 專案的 Cargo 套件管理器中的漏洞

在用於管理套件和用Rust 語言建立專案的Cargo 套件管理器中,已發現兩個漏洞,在從第三方儲存庫下載專門設計的套件時可以利用這些漏洞(據稱官方crates.io 儲存庫的用戶不受該問題的影響)。 第一個漏洞 (CVE-2022-36113) 只要目前權限允許,就允許覆蓋任何檔案的前兩個位元組。 第二個漏洞(CVE-2022-36114)可用於耗盡磁碟空間。

這些漏洞將在定於 1.64 月 22 日發布的 Rust XNUMX 中修復。 這些漏洞的嚴重性等級較低,因為使用第三方儲存庫中未經驗證的軟體包時,使用從軟體包中提供的組件腳本或流程巨集啟動自訂處理程序的標準功能,可能會造成類似的危害。 同時,上述問題的不同之處在於,它們是在下載後開包(無需組裝)的階段被利用的。

特別是,下載套件後,cargo 將其內容解壓縮到 ~/.cargo 目錄中,並將解壓縮成功的標誌儲存在 .cargo-ok 檔案中。 第一個漏洞的本質是套件創建者可以在其中放置一個名為 .cargo-ok 的符號鏈接,這將導致將文字「ok」寫入該連結指向的檔案中。

第二個漏洞是由於對從存檔中提取的資料大小缺乏限製而導致的,該漏洞可用於創建“zip炸彈”(存檔可以包含允許實現zip格式最大壓縮比的數據 - 關於28 萬次,在這種情況下,例如,專門準備的10 MB zip 檔案將導致解壓縮約281 TB 的資料)。

來源: opennet.ru

添加評論