Rust 1.56.1 发布,解决源码安全问题

栏目: 软件资讯 · 发布时间: 4年前

内容简介:Rust 1.56.1 现已发布。此版本引入了两个新的 lints,以减轻最近披露的一个安全问题 CVE-2021-42574 的影响: 在 Unicode Specification through 14.0 的双向算法中发现了一个问题。它允许通过控制序列对字符进行...

Rust 1.56.1 现已发布。此版本引入了两个新的 lints,以减轻最近披露的一个安全问题 CVE-2021-42574 的影响:

在 Unicode Specification through 14.0 的双向算法中发现了一个问题。它允许通过控制序列对字符进行视觉重新排序,可用于制作源代码,呈现与编译器和解释器摄取的标记的逻辑顺序不同的逻辑。攻击者可以利用这一点对接受 Unicode 的编译器的源代码进行编码,从而将目标漏洞引入人类审查者不可见的地方。

Rust 官方表示,他们于今年 7 月 25 号收到了报告并开始着手修复。虽然这问题本身不是 rustc 的缺陷,但他们正在采取积极措施来减轻其对 Rust 开发人员的影响。其建议所有用户立即升级,以确保他们的代码库不受该安全问题的影响。

Rust 1.56.1 引入了两个新的 lints,以检测和拒绝包含受影响的 codepoints;而 Rust 1.0.0 到 Rust 1.56.0 中则不包括这样的 lints。公告指出,如果你不对这些 codepoints 的存在进行 out-of-band checks,你的源代码就容易受到这种攻击。

为了评估生态系统的安全性,Rust 团队分析了曾经在 crates.io 上发布的所有 crate 版本(截至 2021-10-17),只有 5 个 crate 的源代码中存在受影响的代码点,而且没有出现任何恶意的情况。

Rust 1.56.1 中有两个新的 deny-by-default lints,可以检测受影响的 codepoints,分别在 string literals 和 comments 中。这些 lints 将阻止包含这些 codepoints 的源代码文件被编译,从而保护用户免受攻击。

如果你的代码对这些 codepoints 有正确的用途,官方建议用相关的转义序列来替换它们。错误信息会建议使用正确的转义。

如果你不能升级你的编译器版本,或者你的代码库还包括非 Rust 源代码文件。官方不择建议定期检查以下 codepoints 是否存在于你的版本库和你的依赖中:U+202A、U+202B、U+ 202C、U+202D、U+202E、U+2066、U+2067、U+2068、U+2069。

此外,其还发现了一个类似的安全问题;即 CVE-2021-42694,涉及标识符内的 homoglyphs。不过从 Rust 1.53.0 开始,Rust 已经包含了对该攻击的缓解措施。由于 Rust 1.0.0 到 Rust 1.52.1 版本中缺乏对 non-ASCII 标识符的支持,因此不受影响。

更多详情可查看官方公告


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

P3P Web隐私

P3P Web隐私

克劳娜著、技桥译 / 克劳娜 / 清华大学出版社 / 2004-5 / 45.0

自万维网络中出现商业站点以来,基于Web的商业需求和用户的隐私权利之间就存在着不断的斗争。Web开发者们需要收集有关用户的信息,但是他们也需要表示出对用户隐私的尊重。因此隐私偏好工程平台,或者称之为P3P,就作为满足双方利益的技术应运而生了。 P3P由万维网协会研制,它为Web用户提供了对自己公开信息的更多的控制。支持P3P的Web站点可以为浏览者声明他们的隐私策略。支持P3P的浏览......一起来看看 《P3P Web隐私》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

随机密码生成器
随机密码生成器

多种字符组合密码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器