最近 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
的依赖。
我发现其他谷歌软件包对旧网络模块有很多依赖:
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中文网其他相关文章!