为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用特定的 Go 版本运行 govulncheck?

如何使用特定的 Go 版本运行 govulncheck?

Go
UYOU 2023-02-14 15:38:48
我正在尝试使用govulncheck工具扫描我的 Go 模块是否存在漏洞。按照“管理 Go 安装”页面上的说明,我安装了两个 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 构建和运行的。我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但是当我运行govulncheck ./...我的模块时,它报告了针对 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) 中修复,但由于govulncheck使用的是 1.17.9 而不是 1.18.6,因此没有看到问题得到缓解。如何使用我想要的 Go 版本运行此工具?
查看完整描述

1 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

我将把我的评论写成一个(稍微更详细的)答案:

根据文档,govulncheck 将使用go在 PATH 上找到的命令。因此,一种解决方案是仅在使用 govulncheck 时导出不同的 PATH(指向go1.18.6 而不是 1.17.9)。

您可以像这样在 Makefile 中很容易地做到这一点:

vulncheck: export PATH:=$(PATH_TO_GO_1_18_6):$(PATH)
vulncheck:
     govulncheck ./...


查看完整回答
反对 回复 2023-02-14
  • 1 回答
  • 0 关注
  • 142 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号