Rust 安全響應工作組發布了一個安全公告稱,其在調查有關影響crates.ioWeb 應用程序中令牌生成的安全問題時,發現了另一個影響 crates.io API 令牌的漏洞。因此,出于謹慎考慮,該團隊決定撤銷所有現有的 API 密鑰。
想要在實踐中利用這兩個漏洞是非常不切實際的,而且我們也還沒有發現該漏洞已在野外被利用的證據。但出于謹慎考慮,我們選擇撤銷所有現有的 API 密鑰。您可以在crates.io/me 上生成一個新的 API 密鑰。
Rust方面表示,一直以來,用于crates.io 的API 密鑰都是使用 PostgreSQL 隨機函數生成的,但該函數并不是一個加密安全的隨機數生成器。這意味著從理論上講,攻擊者可以觀察到足夠的隨機值來確定隨機數生成器的內部狀態,并使用此信息來確定以前創建的 API 密鑰,直到最后一次數據庫服務器重啟為止。
同時作為調查的一部分,其還發現了軟件包的 API 密鑰是以純文本格式存儲。這意味著,如果攻擊者破壞了數據庫,那么他們將具有所有當前令牌的 API 訪問權限。
目前,為了緩解這一漏洞,Rust團隊稱,其已經推出了一種加密安全的隨機數生成器,并實現了用于將令牌存儲在數據庫中的 hashing。
Rust團隊列出的有關時間線顯示:其于 7月 11日收到了這一漏洞報告;7 月 14 日則部署了修補程序,并撤銷了現有令牌,同時公開披露了該問題。