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 标识符的支持,因此不受影响。

更多详情可查看官方公告


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

查看所有标签

猜你喜欢:

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

社交红利

社交红利

徐志斌 / 北京联合出版公司 / 2013-8 / 42

如今的互联网,社交网络已占据了主要的位置。如腾讯微博、微信、QQ空间、人人网、新浪微博、唱吧、美丽说、啪啪等等,都可以算是社交网络,将大部分活跃的人们聚集起来,通过文字、图片、语音等形式分享着身边的事。这些社交网络吸引着更多兴趣相投的陌生人成为朋友结成圈子,也衍生出的海量流量和机会,为业界和创业者提供着源源不绝的新机会。可以这样说,社交网络在将散落在人们中的需求汇聚起来,等待着企业来提供服务。因此......一起来看看 《社交红利》 这本书的介绍吧!

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

多种字符组合密码

URL 编码/解码
URL 编码/解码

URL 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具