七叶笔记 » golang编程 » Go 1.17.5 和 Go 1.16.12 发布:安全更新

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

大家好,我是 polarisxu。

前些天刚发布 1.17.4 和 1.16.11,今天又发布 1.17.5 和 Go 1.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 的详细信息见:。

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

相关文章