Rust 1.66.1 已发布,这是一个安全补丁更新:
- 修复了 Cargo 在使用 SSH 克隆依赖项或注册表索引时不验证 SSH 主机密钥的问题。
此安全漏洞的编号为 CVE-2022-46176,所有包含 Cargo 的 Rust 1.66.1 之前的版本都容易受到攻击。
Rust 1.66.0 补丁文件:https://github.com/rust-lang/wg-security-response/tree/main/patches/CVE-2022-46176,用于定制工具链。
如果还不能升级到 Rust 1.66.1,官方建议将 Cargo 配置为使用 git 命令而不是其内置的 git 支持。这样,所有 git 网络操作都将由 git 命令执行,不受此漏洞的影响。可以通过 Cargo 配置文件来实现:
[net]
git-fetch-with-cli = true
Cargo 安全公告 (CVE-2022-46176)
Rust 官方发布了 Cargo 安全公告 (CVE-2022-46176),Rust 安全响应工作组获悉,Cargo 在通过 SSH 克隆索引和依赖项时未执行 SSH 主机密钥验证。攻击者可利用此漏洞执行中间人 (MITM) 攻击。
“当 SSH 客户端与服务器建立通信时,为了防止 MITM 攻击,客户端应该检查它是否已经与该服务器通信过,以及当时服务器的公钥是什么。如果自上次连接以来密钥发生变化,则必须中止连接,因为可能会发生 MITM 攻击。
点此查看详情。