GLSA-202208-02:Go:多个漏洞

critical Nessus 插件 ID 163840

语言:

描述

远程主机受到 GLSA-202208-02 中所述漏洞的影响(Go:多个漏洞)

- 1.14.12 之前的 Go 和 1.15.5 之前的 1.15.x 允许代码注入。(CVE-2020-28366)

- 1.14.12 之前的 Go 和 1.15.5 之前的 1.15.x 允许参数注入。(CVE-2020-28367)

- 如果自定义 TokenReader(针对 xml.NewTokenDecoder)在元素中间返回 EOF,则低于 1.15.9 的 Go 和低于 1.16.1 的 1.16.x 中的 encoding/xml 会出现无限循环。此问题会发生在 Decode、DecodeElement 或 Skip 方法中。(CVE-2021-27918)

- 在 Go 1.16.x 的 1.16.1 之前版本中,archive/zip 允许攻击者在对任何文件名开头出现 ../ 的 ZIP 存档尝试使用 Reader.Open API 时造成程序拒绝服务(发生错误)。(CVE-2021-27919)

- Go 1.17 之前版本未正确考虑 IP 地址八进制开头的无关零字符,由于非预期的八进制解释,这(在某些情况下)允许攻击者绕过基于 IP 地址的访问控制。这影响 net.ParseIP 和 net.ParseCIDR。(CVE-2021-29923)

- 在 Go 1.14.14 之前以及 1.15.7 之前的 1.15.x 版本中,在 P-224 字段进行最终完整还原的过程中,crypto/elliptic/p224.go 可能会生成不正确的输出,这与最低分支下溢有关。
(CVE-2021-3114)

- 当使用 go get 命令提取使用 cgo 的模块时(例如,cgo 可通过不受信任的下载执行 gcc 程序),Windows 上的 Go 1.14.14 之前以及 1.15.7 之前的 1.15.x 班版本容易受到命令注入和远程代码执行的影响。(CVE-2021-3115)

- 在 1.15.12 之前的 Go 和 1.16.4 之前的 Go 1.16.x 中,net/http 允许远程攻击者通过 ReadRequest 或 ReadResponse 的大型标头造成拒绝服务(错误)。某些配置中的服务器、传输和客户端均有可能受到影响。(CVE-2021-31525)

- 在低于 1.15.13 的 Go 版本以及低于 1.16.5 的 1.16.x 版本中,用于 DNS 查找的函数未验证来自 DNS 服务器的回复,因此返回值可能包含不符合 RFC1035 格式的不安全注入(例如 XSS)。(CVE-2021-33195)

- Go 1.15.13 之前版本和 1.16.x 的 1.16.5 之前版本中,归档/zip 中特制的文件数(在归档的标头内)可能会造成 NewReader 或 OpenReader 错误。(CVE-2021-33196)

- 在 Go 语言 1.15.13 版本前以及 1.16.5 之前的 1.16.x 版本中,反向代理的部分配置(来自 net/http/httputil)导致攻击者能够终止任意标头。
(CVE-2021-33197)

- 在 Go 语言 1.15.13 版本前以及 1.16.5 之前的 1.16.x 版本中,大指数 math/big.Rat SetString 或 UnmarshalText 方法可能会出现错误。 (CVE-2021-33198)

- 在 Go 1.16.5 版以及之前的所有版本中,crypto/tls 程序包在执行基于 RSA 的密钥交换时,未正确断言 X.509 证书中的公钥类型符合预期类型,恶意 TLS 服务器会借此造成 TLS 客户端错误。(CVE-2021-34558)

- 在低于 1.15.15 的 Go 版本和低于 1.16.7 的 1.16.x 版本中存在争用条件,可在 ErrAbortHandler 中止时导致 net/http/httputil ReverseProxy 错误。(CVE-2021-36221)

- 在 Go 1.16.9 之前版本以及 Go 1.17.x 至 1.17.2 版本中使用 GOARCH=wasm GOOS=js 时,通过大型参数从 WASM 模块调用函数会产生缓冲区溢出问题。(CVE-2021-38297)

- 1.16.10 之前的 Go 版本和 1.17.3 之前的 Go 1.17.x 版本的 debug/macho(适用于 Open 或 OpenFat)中的 ImportedSymbols 会访问缓冲区末尾之后的内存位置,此情况也称为“越界切片”。
(CVE-2021-41771)

- Go 1.16.10 之前版本以及 Go 1.17.x 至 1.17.3 版本允许通过构建具有无效名称或空文件名字段的 ZIP 存档来造成 archive/zip Reader.Open 故障。(CVE-2021-41772)

- 在 1.16.12 版之前的 Go 和 1.17.x 版之前的 Go 1.17.5 中,net/http 允许通过 HTTP/2 请求在标头规范化缓存中消耗不受控制的内存。(CVE-2021-44716)

- 在 UNIX 上,1.16.12 之前的 Go 版本和 1.17.5 之前的 Go 1.17.x 版本允许对非预期文件或非预期网络连接执行写入操作,原因是在文件描述符耗尽后错误关闭文件描述符 0。(CVE-2021-44717)

- Go 1.16.14 之前版本以及 Go 1.17.x 至 1.17.7 版本的 math/big 的 Rat.SetString 中存在溢出漏洞,该漏洞可能导致不受控制的内存消耗问题。(CVE-2022-23772)

- Go 1.16.14 之前版本和 1.17.x 至 1.17.7 版本中的 cmd/go 可能会错误地将分支名称解读为版本标记。如果执行者能够创建分支但不能创建标签,则这可能导致错误控制访问权限。(CVE-2022-23773)

- Go 1.16.14 之前版本以及 Go 1.17.x 至 1.17.7 版本的 crypto/elliptic 中的 Curve.IsOnCurve 在 big.Int 值不是有效字段元素的情况下,可能会错误地返回 true。(CVE-2022-23806)

- 在 Go 1.17.9 之前版本以及 1.18.x 的 1.18.1 之前版本中,encoding/pem 允许通过大量 PEM 数据造成解码堆栈溢出。(CVE-2022-24675)

- Go 1.16.15 之前版本以及 Go 1.17.x 至 1.17.8 版本中的 regexp.Compile 允许通过深度嵌套的表达式耗尽堆栈。(CVE-2022-24921)

- 在 Go 1.18.x 版的 1.18.1 之前版本中,当提供某些格式错误的证书时, crypto/x509 中的 Certificate.Verify 可能会在 macOS 上造成错误。这允许远程 TLS 服务器造成 TLS 客户端错误。(CVE-2022-27536)

- 在 Go 1.17.9 之前版本以及 1.18.x 的 1.18.1 之前版本中,crypto/elliptic 的通用 P-256 特征允许通过长标量输入造成错误。(CVE-2022-28327)

- Go 在 1.17.10 之前的版本和在 1.18.2 之前的 1.18.x 版本中权限分配不正确。当使用非零标记参数调用时,Faccessat 函数可能错误地报告文件可访问。
(CVE-2022-29526)

- golang:net/http:未正确审查 Transfer-Encoding 标头 (CVE-2022-1705)

- golang:encoding/xml:Decoder.Skip 中的堆栈耗尽问题 (CVE-2022-28131)

- grafana-8.5.6-1.fc37 的自动更新。 ##### **变更日志** `` * 2022 年 6 月 29 日星期三 Andreas Gerstmayr <[email protected]> 8.5.6-1 - 更新标记 8.5.6 的上游社区源代码,请参阅变更日志 - 已更新 AGPLv3 的授权 - 将带注释的示例配置文件放在 /etc/grafana/grafana.ini 中 - 在构建进程中启用 Go 模块 - 根据 yarn v3 和 Zero Install 功能调整 Node.js bundling * Sun 2022 年 6 月 19 日 Robert-Andr Mauchin <[email protected]> - 7.5.15-3 - 针对 CVE-2022-1996、CVE-2022-24675、CVE-2022-28327、CVE-2022-27191、 CVE-2022-29526、CVE-2022-30629 重新构建`` (CVE-2022-30629)

- golang:io/fs:Glob 中的堆栈耗尽问题 (CVE-2022-30630)

- golang:compress/gzip:Reader.Read 中的堆栈耗尽问题 (CVE-2022-30631)

- golang:path/filepath:Glob 中的堆栈耗尽问题 (CVE-2022-30632)

- golang:encoding/xml:Unmarshal 中的堆栈耗尽问题 (CVE-2022-30633)

- golang:encoding/gob:Decoder.Decode 中的堆栈耗尽问题 (CVE-2022-30635)

- golang:net/http/httputil:NewSingleHostReverseProxy - 省略 X-Forwarded-For 不起作用 (CVE-2022-32148)

- Go 项目报告:encoding/gob 和 math/big:解码 big.Float 和 big.Rat 可能发生错误。如果编码的消息太短,解码 big.Float 和 big.Rat 类型可能发生错误。
(CVE-2022-32189)

请注意,Nessus 尚未测试这些问题,而是只依据应用程序自我报告的版本号进行判断。

解决方案

所有 Go 用户都应升级到最新版本: # emerge --sync # emerge --ask --oneshot
--verbose >=dev-lang/go-1.18.5 此外,使用 Portage 3.0.9 或更高版本的用户应通过重新构建 @golang-rebuild 集,确保具有 Go 二进制文件的程序包没有易受攻击的代码以静态方式链接到其二进制文件中:
# emerge --ask --oneshot --verbose @golang-rebuild

另见

https://security.gentoo.org/glsa/202208-02

https://bugs.gentoo.org/show_bug.cgi?id=754210

https://bugs.gentoo.org/show_bug.cgi?id=766216

https://bugs.gentoo.org/show_bug.cgi?id=775326

https://bugs.gentoo.org/show_bug.cgi?id=788640

https://bugs.gentoo.org/show_bug.cgi?id=794784

https://bugs.gentoo.org/show_bug.cgi?id=802054

https://bugs.gentoo.org/show_bug.cgi?id=806659

https://bugs.gentoo.org/show_bug.cgi?id=807049

https://bugs.gentoo.org/show_bug.cgi?id=816912

https://bugs.gentoo.org/show_bug.cgi?id=821859

https://bugs.gentoo.org/show_bug.cgi?id=828655

https://bugs.gentoo.org/show_bug.cgi?id=833156

https://bugs.gentoo.org/show_bug.cgi?id=834635

https://bugs.gentoo.org/show_bug.cgi?id=838130

https://bugs.gentoo.org/show_bug.cgi?id=843644

https://bugs.gentoo.org/show_bug.cgi?id=849290

https://bugs.gentoo.org/show_bug.cgi?id=857822

https://bugs.gentoo.org/show_bug.cgi?id=862822

插件详情

严重性: Critical

ID: 163840

文件名: gentoo_GLSA-202208-02.nasl

版本: 1.3

类型: local

发布时间: 2022/8/4

最近更新时间: 2022/8/5

风险信息

VPR

风险因素: Medium

分数: 6.7

CVSS v2

风险因素: High

基本分数: 7.5

时间分数: 5.5

矢量: AV:N/AC:L/Au:N/C:P/I:P/A:P

时间矢量: E:U/RL:OF/RC:C

CVSS 分数来源: CVE-2021-38297

CVSS v3

风险因素: Critical

基本分数: 9.8

时间分数: 8.5

矢量: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

时间矢量: E:U/RL:O/RC:C

漏洞信息

CPE: p-cpe:/a:gentoo:linux:go, cpe:/o:gentoo:linux

必需的 KB 项: Host/local_checks_enabled, Host/Gentoo/release, Host/Gentoo/qpkg-list

易利用性: No known exploits are available

补丁发布日期: 2022/8/4

漏洞发布日期: 2020/11/18

参考资料信息

CVE: CVE-2020-28366, CVE-2020-28367, CVE-2021-3114, CVE-2021-3115, CVE-2021-27918, CVE-2021-27919, CVE-2021-29923, CVE-2021-31525, CVE-2021-33195, CVE-2021-33196, CVE-2021-33197, CVE-2021-33198, CVE-2021-34558, CVE-2021-36221, CVE-2021-38297, CVE-2021-41771, CVE-2021-41772, CVE-2021-44716, CVE-2021-44717, CVE-2022-1705, CVE-2022-23772, CVE-2022-23773, CVE-2022-23806, CVE-2022-24675, CVE-2022-24921, CVE-2022-27536, CVE-2022-28131, CVE-2022-28327, CVE-2022-29526, CVE-2022-30629, CVE-2022-30630, CVE-2022-30631, CVE-2022-30632, CVE-2022-30633, CVE-2022-30635, CVE-2022-32148, CVE-2022-32189

IAVB: 2022-B-0025