最近github.com dependabot 抱怨我的專案中的一些依賴項容易受到dos 的攻擊,具有「損壞或有風險的加密演算法”,並且存在“不受控制的資源消耗”的錯誤。
具體來說,它警告我有關 golang.org/x/net 模組的 cve-2022-27664、其他模組的 cve-2022-27191 和 cve-2022-32149。
我所做的是在所有使用的模組上執行“go get -u”。顯然,這並沒有解決問題。然後我開始用「go graph」尋找模組依賴關係。花了一段時間,這是我找到的依賴順序:
google.golang.org/[email protected] => [email protected] => google.golang.org/[email protected] => github.com/envoyproxy/[email protected] => google.golang.org/[email protected] => golang.org/x/[email protected] => google.golang.org/[email protected] => golang.org/x/[email protected]
這意味著2023 年3 月17 日起的最現代且更新的google.golang.org/api
軟體包會導致對2018 年起的golang.org/x/ net
的依賴。
我發現其他Google軟體包對舊網路模組有很多依賴:
cloud.google.com/go/[email protected] golang.org/x/[email protected] github.com/googleapis/gax-go/[email protected] golang.org/x/[email protected] [email protected] golang.org/x/[email protected] golang.org/x/[email protected] golang.org/x/[email protected] golang.org/x/[email protected] golang.org/x/[email protected] google.golang.org/[email protected] golang.org/x/[email protected] google.golang.org/[email protected] golang.org/x/[email protected] google.golang.org/[email protected] golang.org/x/[email protected] google.golang.org/[email protected] golang.org/x/[email protected] golang.org/x/[email protected] golang.org/x/[email protected] google.golang.org/[email protected] golang.org/x/[email protected] golang.org/x/[email protected] golang.org/x/[email protected] golang.org/x/[email protected] golang.org/x/[email protected] golang.org/x/[email protected] golang.org/x/[email protected] golang.org/x/[email protected] golang.org/x/[email protected] google.golang.org/[email protected] golang.org/x/[email protected] golang.org/x/[email protected] golang.org/x/[email protected] google.golang.org/[email protected] golang.org/x/[email protected] golang.org/x/[email protected] golang.org/x/[email protected] google.golang.org/[email protected] golang.org/x/[email protected] golang.org/x/[email protected] golang.org/x/[email protected] google.golang.org/[email protected] golang.org/x/[email protected] google.golang.org/[email protected] golang.org/x/[email protected]
我檢查了 github.com/googleapis/google-api-go-client 儲存庫並發現了此問題 https://github.com/googleapis/google-api-go-client/issues/1048
我說同樣的問題,但後來用戶 hashier
說,由於 go list -m all
命令顯示最新版本,所以這不是問題。
所以,主要問題是:這是否是一個問題以及為什麼?
我只是不知道這裡應該修復什麼,github dependabot 檢查或 google-api-go-client 模組依賴項。
是時候回答這個問題了。
當我嘗試使用go mod graph
在單獨的草稿儲存庫中一一檢查專案中的所有套件時,這些易受攻擊的依賴項來自另一個儲存庫:github .com/go-gorm/postgres
。
所以,我錯誤地確定了易受攻擊的依賴項來自何處。顯然這是由於巨大的依賴關係圖造成的:
[0] $ go mod graph | wc 667 1334 56113
如果有人正在尋找一種視覺化專案依賴關係的方法,這裡是:
go mod graph | modgv | dot -Tsvg -o graph.svg
回到最初的問題。這是由於 github.com/go-gorm/postgres
使用舊版本的 go 造成的。據我了解,修復它的唯一方法是將 go 版本升級到 1.18。如果版本較低,go mod graph
會顯示很多易受攻擊的套件。
以上是Golang:如何處理 google.golang.org/api 對 golang.org/x/net 的過時依賴項的詳細內容。更多資訊請關注PHP中文網其他相關文章!