首页 文章详情

Go1.16.4 发布

Go语言精选 | 616 2021-05-10 17:57 0 0 0
UniSMS (合一短信)
点击上方蓝色“Go语言中文网”关注,每天一起学 Go

Go 官方发布了 Go1.16.4 和 Go1.15.12,这是两个小版本,修复一个安全问题,这是根据新的安全策略而发布的:https://github.com/golang/go/issues/44918

这个完全漏洞如下:

在读取一个非常大的 header(64 位架构上超过 7MB 或 32 位架构超过 4MB)时,net/http 中的 ReadRequest 和 ReadResponse 会导致不可恢复 panic。Transport 和 Client 易受攻击,并且可以通过恶意服务器导致程序崩溃。默认情况下,服务器不容易受到攻击,但如果通过将 Server.MaxheaderBytes 设置为更高的值,比如超过默认的 1M  ,在这种情况下,恶意客户端会导致服务端崩溃。

这个问题也会影响到 golang.org/x/net/http2/h2c 包和 golang.org/x/net/http/httpguts 包中的 HeaderValuesContainsToken。因此,这也进行了修复,升级到 golang.org/x/net@v0.0.0-20210428140749-89ef3d95e781

该问题对应的 issue 在这里:https://github.com/golang/go/issues/45710

发现这个 Bug 是因为 Ethereum 2.0 bounty program[1] 出现了 crash。

因为 Go 只维护最近的两个版本,如果你的项目有此风险,建议升级到 1.15.12 或 1.16.4。

你可以按照下图的方式升级:

也可以通过 「Go语言中文网」下载:https://studygolang.com/dl,源码和预编译包都为你准备好了。阅读原文可以直达下载页。

参考资料

[1]

Ethereum 2.0 bounty program: https://ethereum.org/en/eth2/get-involved/bug-bounty



推荐阅读


福利

我为大家整理了一份从入门到进阶的Go学习资料礼包,包含学习建议:入门看什么,进阶看什么。关注公众号 「polarisxu」,回复 ebook 获取;还可以回复「进群」,和数万 Gopher 交流学习。

good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter