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

更多详情可查看官方公告


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

查看所有标签

猜你喜欢:

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

大数据预测

大数据预测

【美】埃里克·西格尔 / 周昕 / 中信出版社 / 2014-3 / 58.00

360公司董事长周鸿祎、《罗辑思维》主讲人罗振宇郑重推荐 2020年的一天,在你驱车前往公司的路上,导航系统通过预测交通流量,会自动帮你选择一条最合适的交通路线;车内推荐系统会根据你的饮食习惯预测你可能会喜欢吃什么,并推荐沿途的早餐店;你的电子社交助理已经为你自动选择了你可能感兴趣的社交网信息;当车内系统预测到你驾车有些分心时,座椅会自动震动进行提醒…… 以上这些情景不是科幻大片独有的......一起来看看 《大数据预测》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具