Amazon Linux 2023:cargo、clippy、rust (ALAS2023-2023-109)

high Nessus 插件 ID 173151

简介

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

描述

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

- Cargo 是 rust 编程语言的程序包管理器。下载程序包后,Cargo 会在磁盘上的 ~/.cargo 文件夹中提取其源代码,以供其构建的 Rust 项目使用。为了记录提取成功的时间,Cargo 在提取所有文件后,会向所提取源代码根处的 .cargo-ok 文件写入 ok。据发现,Cargo 允许程序包包含 Cargo 会提取的 .cargo-ok 符号链接。然后,当 Cargo 尝试将 ok 写入 .cargo-ok 时,它实际上会将符号链接指向的文件的前两个字节替换为 ok。
这将允许攻击者损坏使用 Cargo 的计算机上的一个文件以提取程序包。请注意,由于构建脚本和程序宏,Cargo 按照设计允许在构建时执行代码。此公告中的漏洞允许以更难追踪的方式执行部分潜在破坏。如果您想要免受攻击,则必须仍然信任您的依存关系,因为可以使用构建脚本和程序宏执行相同的攻击。所有 Cargo 版本中均存在此漏洞。9 月 22 日发布的 Rust 1.64 将包含一个补丁。
由于该漏洞只是实现恶意构建脚本或程序宏功能的更有限方式,因此我们决定不发布向后移植此安全补丁的 Rust 点版本。
Rust 1.63.0 的修补程序文件现已推出,可在 wg-security-response 存储库中用于构建自己的工具链。缓解措施 我们建议备用注册表用户在下载程序包时谨慎行事,仅在其项目中包含受信任的依存关系。请注意,即使修复了这些漏洞,由于构建脚本和程序宏,Cargo 按照设计允许在构建时执行任意代码:无论这些漏洞如何,恶意依存关系都将造成破坏。 crates.io 多年前实施了服务器端检查以拒绝此类程序包,crates.io 上不存在利用这些漏洞的程序包。不过,crates.io 用户在选择依存关系时仍需谨慎,因为那里的设计也允许远程代码执行。(CVE-2022-36113)

- Cargo 是 rust 编程语言的程序包管理器。据发现,Cargo 未限制从压缩存档中提取的数据量。攻击者可将提取的数据量超过其大小的特制程序包(也称为 zip 炸弹)上传到备用注册表,从而使用 Cargo 下载程序包以耗尽计算机上的磁盘空间。请注意,由于构建脚本和程序宏,Cargo 按照设计允许在构建时执行代码。此公告中的漏洞允许以更难追踪的方式执行部分潜在破坏。如果您想要免受攻击,则必须仍然信任您的依存关系,因为可以使用构建脚本和程序宏执行相同的攻击。所有 Cargo 版本中均存在此漏洞。9 月 22 日发布的 Rust 1.64 将包含一个补丁。由于该漏洞只是实现恶意构建脚本或程序宏功能的更有限方式,因此我们决定不发布向后移植此安全补丁的 Rust 点版本。Rust 1.63.0 的修补程序文件现已推出,可在 wg-security-response 存储库中用于构建自己的工具链。
我们建议备用注册表用户在下载程序包时谨慎行事,仅在其项目中包含受信任的依存关系。请注意,即使修复了这些漏洞,由于构建脚本和程序宏,Cargo 按照设计允许在构建时执行任意代码:无论这些漏洞如何,恶意依存关系都将造成破坏。 crates.io 多年前实施了服务器端检查以拒绝此类程序包,crates.io 上不存在利用这些漏洞的程序包。不过,crates.io 用户在选择依存关系时仍需谨慎,因为其所面临的问题与构建脚本和程序宏面临的一样。
(CVE-2022-36114)

- Cargo 是一个 Rust 程序包管理器。Rust 安全响应工作组收到通知,通知称通过 SSH 克隆索引和依赖项时 Cargo 未执行 SSH 主机密钥验证。攻击者可利用此问题执行中间人 (MITM) 攻击。已为此漏洞分配编号 CVE-2022-46176。所有在 1.66.1 之前的包含 Cargo 的 Rust 版本都容易受到攻击。请注意,即使您没有明确地将 SSH 用于备用注册表索引或 crate 依赖项,如果您已将 git 配置为用 SSH 替换到 GitHub 的 HTTPS 连接(通过 git 的 [`url.<base>.instantOf`][1] 设置),您也可能受到此漏洞影响,因为这种配置会导致您通过 SSH 克隆 crates.io 索引。Rust 1.66.1 将确保 Cargo 检查 SSH 主机密钥,并在服务器的公钥不受信任时中止连接。建议所有人尽快升级。 (CVE-2022-46176)

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

解决方案

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

另见

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

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

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

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

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

插件详情

严重性: High

ID: 173151

文件名: al2023_ALAS2023-2023-109.nasl

版本: 1.1

类型: local

代理: unix

发布时间: 2023/3/21

最近更新时间: 2024/2/19

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

风险信息

VPR

风险因素: Medium

分数: 5.2

CVSS v2

风险因素: High

基本分数: 9.4

时间分数: 7

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

CVSS 分数来源: CVE-2022-36113

CVSS v3

风险因素: High

基本分数: 8.1

时间分数: 7.1

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

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

漏洞信息

CPE: p-cpe:/a:amazon:linux:cargo, p-cpe:/a:amazon:linux:cargo-debuginfo, p-cpe:/a:amazon:linux:clippy, p-cpe:/a:amazon:linux:clippy-debuginfo, p-cpe:/a:amazon:linux:rust, p-cpe:/a:amazon:linux:rust-analysis, p-cpe:/a:amazon:linux:rust-analyzer, p-cpe:/a:amazon:linux:rust-analyzer-debuginfo, p-cpe:/a:amazon:linux:rust-debugger-common, p-cpe:/a:amazon:linux:rust-debuginfo, p-cpe:/a:amazon:linux:rust-debugsource, p-cpe:/a:amazon:linux:rust-doc, p-cpe:/a:amazon:linux:rust-gdb, p-cpe:/a:amazon:linux:rust-lldb, p-cpe:/a:amazon:linux:rust-src, p-cpe:/a:amazon:linux:rust-std-static, p-cpe:/a:amazon:linux:rust-std-static-wasm32-unknown-unknown, p-cpe:/a:amazon:linux:rust-std-static-wasm32-wasi, p-cpe:/a:amazon:linux:rustfmt, p-cpe:/a:amazon:linux:rustfmt-debuginfo, cpe:/o:amazon:linux:2023

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

易利用性: No known exploits are available

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

漏洞发布日期: 2023/1/11

参考资料信息

CVE: CVE-2022-36113, CVE-2022-36114, CVE-2022-46176