我正在嘗試使用govulncheck工具掃描我的 Go 模塊是否存在漏洞。按照“管理 Go 安裝”頁面上的說明,我安裝了兩個(gè) Go 版本:1.17.9 和 1.18.6:$ go versiongo version go1.17.9 linux/amd64$ go1.18.6 versiongo version go1.18.6 linux/amd64我的模塊是用 1.18.6 構(gòu)建和運(yùn)行的。我govulncheck使用以下命令使用 go 1.18.6 安裝:$ go1.18.6 install golang.org/x/vuln/cmd/govulncheck@latestgo: downloading golang.org/x/vuln v0.0.0-20220913170424-c9fe2ba7ccadgo: downloading golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4go: downloading golang.org/x/tools v0.1.13-0.20220803210227-8b9a1fbdf5c3go: downloading golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e但是當(dāng)我運(yùn)行g(shù)ovulncheck ./...我的模塊時(shí),它報(bào)告了針對 Go 1.17.9 的問題。$ govulncheck ./...govulncheck is an experimental tool. Share feedback at https://go.dev/s/govulncheck-feedback.Scanning for dependencies with known vulnerabilities...Found 5 known vulnerabilities.Vulnerability #1: GO-2022-0524 Calling Reader.Read on an archive containing a large number of concatenated 0-length compressed files can cause a panic due to stack exhaustion. Call stacks in your code: path/omitted/example.go:79:67: example.com/example-project/path/omitted/example.Method calls example.com/vulnerable-dependency/path/omitted/example.Foo.Bar, which eventually calls compress/gzip.Reader.Read Found in: compress/gzip@go1.17.9 Fixed in: compress/gzip@go1.18.4 More info: https://pkg.go.dev/vuln/GO-2022-0524(etc)該示例問題已在我使用的 Go 版本 (1.18.6) 中修復(fù),但由于govulncheck使用的是 1.17.9 而不是 1.18.6,因此沒有看到問題得到緩解。如何使用我想要的 Go 版本運(yùn)行此工具?
1 回答

慕村225694
TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
我將把我的評論寫成一個(gè)(稍微更詳細(xì)的)答案:
根據(jù)文檔,govulncheck 將使用go
在 PATH 上找到的命令。因此,一種解決方案是僅在使用 govulncheck 時(shí)導(dǎo)出不同的 PATH(指向go
1.18.6 而不是 1.17.9)。
您可以像這樣在 Makefile 中很容易地做到這一點(diǎn):
vulncheck: export PATH:=$(PATH_TO_GO_1_18_6):$(PATH) vulncheck: govulncheck ./...
- 1 回答
- 0 關(guān)注
- 170 瀏覽
添加回答
舉報(bào)
0/150
提交
取消