Go语言这次依旧还是小版本更新,包括 Go 1.14.7
和 Go 1.13.15
,主要解决最近报告的安全问题。为什么Go
每次更新都是发布两个版本?这是 Go
的惯例,会同时维护两个版本的更新,比如现在是 Go1.14
和 Go1.13
,如果 Go1.15
发布了,之后就会变成 Go1.15
和 Go1.14
。
(推荐教程:Go Web 编程)
因为涉及到安全问题,建议所有用户都进行相应版本更新(如果不确定哪个版本,请选择 Go 1.14.7
)。
涉及到的具体问题如下:
encoding/binary
:ReadUvarint
和ReadVarint
可以从无效输入中读取无限数量的字节。对ReadUvarint
或ReadVarint
的某些无效输入可能导致这些函数在返回错误之前从ByteReader
参数读取无限数量的字节。当调用者直接从网络读取数据时,这可能导致处理的输入超出预期,并且依赖于ReadUvarint
和ReadVarint
甚至仅从无效输入中仅消耗少量的有限字节数。在更新后,ReadUvarint
和ReadVarint
现在总是在消耗了一定数量的字节(特别是MaxVarintLen64
,即 10)之后返回。返回的结果没有改变;这些函数仅检测并返回一些错误,而无需读取过多的输入。具体issue
见:https://github.com/golang/go/issues/40618。
(推荐微课:Go 基础微课)
在刚刚发布的 Go1.15 RC2
版本中,也修复了该问题。关于 Go1.15
的更多信息可以参见文档:https://tip.golang.org/doc/go1.15, 已经8月份了,Go1.15
正式发布应该不远了。
声明:小猿资源站是一个资源分享和技术交流平台,本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。