Go1.20.5 和 Go1.19.10 发布

polaris · · 1443 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

近日,Go 官方发布了两个新版本 1.20.5 和 1.19.10。这两个版本包含了三个安全修复,如下: - cmd/go: cgo 代码注入 - 当使用 cgo 时,go 命令可能在构建时生成意外的代码,导致运行一个使用 cgo 的 go 程序时出现意外的行为。这可能发生在运行一个包含有换行符的目录名的不可信模块时。使用 go 命令获取的模块(即通过\"go get\")不受影响(使用GOPATH模式获取的模块,即GO111MODULE=off,可能受影响)。 issue <https://go.dev/issue/60167>。 - runtime: setuid/setgid 二进制文件的意外行为 - Go 运行时在一个二进制文件设置 setuid/setgid 位时没有做任何不同的处理。在 Unix 平台上,如果一个 setuid/setgid 二进制文件在执行时标准输入/输出文件描述符被关闭,打开任何文件可能导致以提升的权限读写意外的内容。类似地,如果一个 setuid/setgid 程序被终止,无论是通过 panic 还是信号,它可能泄露它的寄存器内容。issue <https://go.dev/issue/60272>。 - cmd/go: LDFLAGS 的不恰当处理 - 当使用 cgo 时,go 命令可能在构建时执行任意代码。这可能发生在运行\"go get\"获取一个恶意模块时,或者运行任何其他构建不可信代码的命令时。这可以通过链接器标志触发,通过 \"#cgo LDFLAGS\" 指令指定。issues <https://go.dev/issue/60305> 和 <https://go.dev/issue/60306>。 可以使用官方推荐的方式升级试用: ![go1.20.5.png](https://static.golangjob.cn/230610/3232021856c85be782ce1c35c75f3a7d.png) 也可以用自己喜欢的方式升级,比如我喜欢用 goup 安装升级,或到 Go 语言中文网下载最新的包:<https://studygolang.com/dl> 不过,这两个版本发布后,Ian Lance Taylor 指出,由于一个不幸的错误,这个变化会破坏使用 -compiler=gccgo 时"#cgo LDFLAGS" 指令的使用。大多数使用 gccgo 或 GoLLVM 的人使用的是与这些工具一起分发的 cmd/go,它不受影响。因此,我们将在下一个小版本中修复这个问题。当前的小版本 1.20.5 和 1.19.10 对于使用gccgo或GoLLVM的一些情况不幸地出现了问题。对于这次失误,官方深表歉意。(大部分人不会使用 gccgo,因此不受影响)

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

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