Amazon Linux 2023:golang、golang-bin、golang-misc (ALAS2023-2023-048)

critical Nessus 插件 ID 173069

简介

远程 Amazon Linux 2023 主机缺少安全更新。

描述

因此,它受到公告 ALAS2023-2023-048 中提及的多个漏洞影响。

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

- 在 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.17.12 和 Go 1.18.4 之前的 net/http 客户端中接受某些无效的 Transfer-Encoding 标头后,如果与同样未能将标头正确拒绝为无效的中间服务器结合,则允许 HTTP 请求走私。(CVE-2022-1705)

- Go 1.17.12 和 Go 1.18.4 之前版本中,go/parser 函数中不受控制的递归允许攻击者通过深度嵌套的类型或声明造成堆栈耗尽。(CVE-2022-1962)

- 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)

- 0.0 之前的 golang.org/x/crypto/ssh 程序包。Go 的 0-20220314234659-1baeb1ce4c0b 允许攻击者在某些涉及 AddHostKey 的情况下使服务器崩溃。(CVE-2022-27191)

- 在 Go 1.18.6 之前版本以及 1.19.1 1.19.x 之前版本中,如果关闭操作被致命错误抢占,则 HTTP/2 连接可在关闭期间挂起,攻击者可借此通过 net/http 造成拒绝服务。(CVE-2022-27664)

- Go 1.17.12 和 Go 1.18.4 之前的版本中,encoding/xml 中的 Decoder.Skip 中不受控制的递归允许攻击者通过深度嵌套的 XML 文档引起堆栈耗尽,从而造成错误。(CVE-2022-28131)

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

- Reader.Read 未对文件标头的最大大小设置限制。恶意构建的存档可导致 Read 分配不受限制的内存量,从而可能导致资源耗尽或错误。
修复后,Reader.Read 将标头块的最大大小限制为 1 MiB。(CVE-2022-2879)

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

- Go 1.17.11 和 Go 1.18.3 之前的版本中,crypto/tls 中会话票证中 ticket_age_add 的非随机值会让攻击者能够观察 TLS 握手,以在会话恢复期间通过比较票证使用时间来关联连续的连接。(CVE-2022-30629)

- Go 1.17.12 和 Go 1.18.4 之前的 Glob 中不受控制的递归允许攻击者通过包含大量路径分隔符的路径,由于堆栈耗尽而造成错误。
(CVE-2022-30630)

- Go 1.17.12 和 Go 1.18.4 之前版本中,compress/gzip 中的 Reader.Read 中不受控制的递归允许攻击者通过包含大量连接的 0 长度压缩文件的存档,由于堆栈耗尽而造成错误。(CVE-2022-30631)

- Go 1.17.12 和 Go 1.18.4 之前版本中,path/filepath 中的 Glob 中不受控制的递归允许攻击者通过包含大量路径分隔符的路径,由于堆栈耗尽而造成错误。
(CVE-2022-30632)

- Go 1.17.12和 Go 1.18.4 之前的版本中,encoding/xml 中的 Unmarshal 中不受控制的递归允许攻击者通过将 XML 文档解组到具有使用“any”字段标记的嵌套字段的 Go 结构中来造成错误。(CVE-2022-30633)

- Go 1.17.12 和 Go 1.18.4 之前的版本中,encoding/gob 中的 Decoder.Decode 中不受控制的递归允许攻击者通过包含深度嵌套结构的消息,由于堆栈耗尽而造成错误。
(CVE-2022-30635)

- Go 1.17.12 和 Go 1.18.4 之前的版本中,net/http 中不当暴露客户端 IP 地址可通过使用包含 X-Forwarded-For 标头的 nil 值的 Request.Header 映射调用 httputil.ReverseProxy.ServeHTTP 来触发,这会造成 ReverseProxy 将客户端 IP 设置为 X-Forwarded-For 标头的值。(CVE-2022-32148)

- 在 1.17.13 和 1.18.5 版之前的 Go 的 math/big 中,编码过短的消息可能导致 Float.GobDecode 和 Rat GobDecode 发生错误,从而可能造成拒绝服务。(CVE-2022-32189)

- JoinPath 和 URL.JoinPath 不会删除附加到相对路径的 ../ path 元素。例如,尽管 JoinPath 文档指出已从结果中删除 ../ path 元素,JoinPath(https://go.dev, ../go) 仍会返回 URL https://go.dev/../go。(CVE-2022-32190)

- 从不受信任的来源编译正则表达式的程序容易受到内存耗尽或拒绝服务的影响。解析后的 regexp 表示与输入的大小成线性关系,但在某些情况下,常数因子可高达 40,000,使得相对较小的 regexp 消耗大量内存。修复后,每个被解析的 regexp 被限制为 256 MB 内存占用。正则表达式的表示会使用比拒绝的表达式更多的空间。正则表达式的正常使用不受影响。 (CVE-2022-41715)

- 由于未审查 NUL 值,攻击者可能会在 Windows 上恶意设置环境变量。
在 syscall.StartProcess 和 os/exec.Cmd 中,未正确检查包含 NUL 值的无效环境变量值。恶意的环境变量值可利用此行为为不同的环境变量设置值。例如,环境变量字符串 A=B\x00C=D 设置变量 A=B 和 C=D。 (CVE-2022-41716)

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

解决方案

运行“dnf update golang --releasever=2023.0.20230222”以更新系统。

另见

https://alas.aws.amazon.com/AL2023/ALAS-2023-048.html

https://alas.aws.amazon.com/faqs.html

https://alas.aws.amazon.com/cve/html/CVE-2021-33196.html

https://alas.aws.amazon.com/cve/html/CVE-2021-38297.html

https://alas.aws.amazon.com/cve/html/CVE-2021-41771.html

https://alas.aws.amazon.com/cve/html/CVE-2021-41772.html

https://alas.aws.amazon.com/cve/html/CVE-2021-44716.html

https://alas.aws.amazon.com/cve/html/CVE-2021-44717.html

https://alas.aws.amazon.com/cve/html/CVE-2022-1705.html

https://alas.aws.amazon.com/cve/html/CVE-2022-1962.html

https://alas.aws.amazon.com/cve/html/CVE-2022-23772.html

https://alas.aws.amazon.com/cve/html/CVE-2022-23773.html

https://alas.aws.amazon.com/cve/html/CVE-2022-23806.html

https://alas.aws.amazon.com/cve/html/CVE-2022-2879.html

https://alas.aws.amazon.com/cve/html/CVE-2022-24675.html

https://alas.aws.amazon.com/cve/html/CVE-2022-24921.html

https://alas.aws.amazon.com/cve/html/CVE-2022-27191.html

https://alas.aws.amazon.com/cve/html/CVE-2022-27664.html

https://alas.aws.amazon.com/cve/html/CVE-2022-28131.html

https://alas.aws.amazon.com/cve/html/CVE-2022-28327.html

https://alas.aws.amazon.com/cve/html/CVE-2022-29526.html

https://alas.aws.amazon.com/cve/html/CVE-2022-30629.html

https://alas.aws.amazon.com/cve/html/CVE-2022-30630.html

https://alas.aws.amazon.com/cve/html/CVE-2022-30631.html

https://alas.aws.amazon.com/cve/html/CVE-2022-30632.html

https://alas.aws.amazon.com/cve/html/CVE-2022-30633.html

https://alas.aws.amazon.com/cve/html/CVE-2022-30635.html

https://alas.aws.amazon.com/cve/html/CVE-2022-32148.html

https://alas.aws.amazon.com/cve/html/CVE-2022-32189.html

https://alas.aws.amazon.com/cve/html/CVE-2022-32190.html

https://alas.aws.amazon.com/cve/html/CVE-2022-41715.html

https://alas.aws.amazon.com/cve/html/CVE-2022-41716.html

插件详情

严重性: Critical

ID: 173069

文件名: al2023_ALAS2023-2023-048.nasl

版本: 1.5

类型: local

代理: unix

发布时间: 2023/3/21

最近更新时间: 2023/12/12

支持的传感器: Frictionless Assessment AWS, Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Nessus

风险信息

VPR

风险因素: Medium

分数: 5.9

CVSS v2

风险因素: High

基本分数: 7.5

时间分数: 5.9

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

CVSS 分数来源: CVE-2021-38297

CVSS v3

风险因素: Critical

基本分数: 9.8

时间分数: 8.8

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

时间矢量: CVSS:3.0/E:P/RL:O/RC:C

漏洞信息

CPE: p-cpe:/a:amazon:linux:golang, p-cpe:/a:amazon:linux:golang-bin, p-cpe:/a:amazon:linux:golang-docs, p-cpe:/a:amazon:linux:golang-misc, p-cpe:/a:amazon:linux:golang-race, p-cpe:/a:amazon:linux:golang-shared, p-cpe:/a:amazon:linux:golang-src, p-cpe:/a:amazon:linux:golang-tests, cpe:/o:amazon:linux:2023

必需的 KB 项: Host/local_checks_enabled, Host/AmazonLinux/release, Host/AmazonLinux/rpm-list

可利用: true

易利用性: Exploits are available

补丁发布日期: 2023/2/17

漏洞发布日期: 2021/8/2

参考资料信息

CVE: CVE-2021-33196, CVE-2021-38297, CVE-2021-41771, CVE-2021-41772, CVE-2021-44716, CVE-2021-44717, CVE-2022-1705, CVE-2022-1962, CVE-2022-23772, CVE-2022-23773, CVE-2022-23806, CVE-2022-24675, CVE-2022-24921, CVE-2022-27191, CVE-2022-27664, CVE-2022-28131, CVE-2022-28327, CVE-2022-2879, 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, CVE-2022-32190, CVE-2022-41715, CVE-2022-41716

IAVB: 2021-B-0069-S, 2022-B-0025-S, 2022-B-0042-S, 2022-B-0046-S