Go 1.17.5 和 Go 1.16.12 发布:安全更新

polarisxu

共 1029字,需浏览 3分钟

 ·

2021-12-12 17:06

大家好,我是 polarisxu。

前些天刚发布 1.17.4 和 1.16.11,今天又发布 1.17.5 和 Go1.16.11,主要是安全更新,同样是小版本发布。

这次发布,主要包含两个安全问题修复:

1)net/http 包:限制 header 规范化缓存

攻击者可以在接受 HTTP/2 请求的 Go 服务器中导致无限的内存增长。

这个问题还挺严重的。如果因为各种原因,暂时无法升级到最新版本,可以在调用 Serve 之前设置 GODEBUG=http2server=0 环境变量来禁用 HTTP/2,但如果通过 golang.org/x/net/http2 包手动配置,则无法设置,而应该升级 golang.org/x/net/http2 到 v0.0.0-20211209124913-491a49abca63。

2)syscall 包:don’t close fd 0 on ForkExec error

当运行在 Unix 系统上的 Go 程序没有文件描述符并调用 syscall.ForkExec(包括间接使用 os/exec 包)时,syscall.ForkExec 可以关闭文件描述符 0 作为失败。如果这种情况反复发生,则可能导致 I/O 错误重定向,例如将用于一个连接的网络流量写入另一个连接,或者将用于一个文件的内容写入另一个连接。

对于无法立即更新到新版本的用户,可以通过提高每个进程的文件描述符限制来缓解该错误。

以上两个 issue 的详细信息见:https://github.com/golang/go/issues?q=milestone%3AGo1.17.5+label%3ACherryPickApproved。

大家可以采用自己喜欢的方式升级版本,也可以到 Go语言中文网下载:https://studygolang.com/dl


推荐阅读


福利

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

浏览 39
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报