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

polaris · 2021-12-11 16:53:50 · 1970 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2021-12-11 16:53:50 的主题,其中的信息可能已经有所发展或是发生改变。

大家好,我是 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大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1970 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传