Unicode算法漏洞几乎祸害所有编程语言,Rust紧急发布补丁 2024-05-08 10:06:03 文 | 罗奇奇出品 | OSC开源社区(ID:oschina2013)11 月 1 日,剑桥大学研究人员:Nicholas Boucher 和 Ross Anderson 公布了一个 Unicode 双向算法“bidi”相关的漏洞,该漏洞被命名为“ Trojan Source”,追踪代号 CVE-2021-42574 。bidi 双向算法设计之初是用于处理不同语言的文字排序问题,比如将阿拉伯语单词(从右到左阅读)写入英语句子(从左到右)。大多数编程语言都允许开发者将 bidi 字符放在字符串文字和注释里边,但是,注释和字符串需要遵守语法,Bidi overrides 却不用遵守。因此,将一段代码使用 Bidi 算法多层 LRI 和 RLI 相互嵌入,就可以把其中的字符串任意组合,重新排序。如果你有足够的时间,甚至可以重排一份源代码的字符,生成一份新的符合语法规范的代码。这对于像 Linux 或 Webkit 这样的超大型开源项目来说并不是一个好消息。如果这个漏洞被用于恶意攻击,将导致一个很大的问题:审查者看到的代码逻辑很可能和编译器编译出来的程序逻辑不一样。来看一下这个 python 的例子:图一和图二都定义 alice 的值为100, 并调用同一个函数:将 alice 减去 50 ,根据程序逻辑,两组程序都应该返回 50。但图一插入了 RLI ,subtract_funds 函数体的 return 实际上是由于 bidi RLI 覆盖而执行的,因此图一的 bank{account} _=amount 语句永远也不会执行,只会返回 100 。相同的原理也可以应用于其他语言,这个漏洞实际上是 Unicode 自身的问题,却实实在在地影响到了所有支持 Unicode 的语言,包括 C、C++、C#、JavaScript、Java、Rust、Go 和 Python 等一系列流行的编程语言。目前,研究组已将“ Trojan Source”漏洞通知所有受影响的编程语言组织和软件商,“ Trojan Source”漏洞报告原文可点此查看:https://www.trojansource.codes/trojan-source.pdf 后续发展 Rust 收到消息后迅速发布 1.56.1 版本,以解决此问题。 据 theregister 报导,软件开发商 Atlassian 迅速发布了针对 CVE-2021-42574 的安全公告,影响了从 Confluence 到 Jira 的一系列产品,并通过多个软件更新来解决该问题。 赞 (0) 相关推荐 GitHub 40000星!收下这份宇宙最强「程序员装备指南」 报道|新智元 来源|GitHub 编辑|LQ [导读]收藏夹是我们信息获取的主要渠道,作为一名程序员,你的收藏夹够精简.够专业吗?也许你需要对照一下下面这份「程序员生存指南」. 一个专业的程序员需 ... Rust是一场革命 Rust是一场真正的革命. 所有的软件用RUST重新写一遍是值得的,应该的. C语言最大的问题是底层操作太多,虽然高效但是没有意义. Rust是一个真正的高级语言,很简单的事情都要说得很复杂.这是应该 ... Rust 语言风靡学术界 AWS 将 Rust 编译器团队负责人收入麾下的新闻让开发者们再次聚焦于这门兼具安全性与高性能的编程语言.近日,著名科学期刊 Nature 刊登了一篇文章,表明 Rust 语言也正在成为学术界最受欢迎 ... C 和 C 不安全?Android 支持 Rust 开发操作系统 Rust这两年实火了. 近年来,Rust凭借着出色的内存效率.速度与安全性,深受亚马逊.微软.华为.Facebook等科技巨头的青睐.Rust从根本上考虑安全性,提出了"没有数据竞争的并发性 ... 存在可能替代C语言的其他语言吗? 尽管C编程语言早在1972年就已发布,但它仍是当今使用最广泛的语言之一,并且按照当今的标准存在许多限制和缺陷. 这就是为什么应该替换C的关键原因.太多关键软件都是用C / C ++编写的,其含义广泛. ... 瑞莱RealAI田天:算法漏洞后,催生的第三代AI技术 在2021世界人工智能大会期间,瑞莱智慧RealAI正式发布了基于第三代人工智能的DeepReal深度伪造内容检测平台. 据<艾问人物>(iask-media.com)了解,深度伪造英译为 ... 机器学习算法工程师需要掌握哪些编程语言? 机器学习和编码是相辅相成的.如果没有编码,数据科学家就无法使用机器学习模型.因此,机器学习工程师至少要对一门编程语言有全面的了解.这篇文章深入介绍了适合机器学习的五种编程语言,并帮助您确定哪种语言最适 ... 漏洞情报|2021年1月“微软补丁日” Windows Defender等多个产品高危漏洞风险通告(... 近日,腾讯云安全运营中心监测到,微软发布了2021年1月的例行安全更新公告,包含漏洞CVE编号83个,其中严重级别漏洞10个,重要级别73个.远程代码执行漏洞14个,安全功能绕过漏洞6个,信息泄露漏洞 ... 微软2020年12月份于补丁日针对58个安全漏洞发布补丁 十二月,微软发布了新的一批安全更新,回归100以内.修复总共58CVE漏洞,影响其Windows操作系统和相关软件的各种版本. Microsoft发布了补丁程序,在涵盖其各种产品(Microsoft ... 老用户还没被抛弃?苹果紧急发布iOS14.8.1正式版,修复14个漏洞 众所周知,苹果今年一反常态,允许老用户停留在iOS14,不必强制升级iOS15.这也是为什么iOS15发布两周内的安装率,要低于iOS14同时期表现的原因. 不管怎么说,这算是一件好事,毕竟iOS钉子 ... Rust : utf8与unicode码 一.理论说明 UTF-8 UTF-8 是一个非常惊艳的编码方式,漂亮的实现了对 ASCII 码的向后兼容,以保证 Unicode 可以被大众接受. UTF-8 是目前互联网上使用最广泛的一种 Unic ... 强者一出,谁与争锋?与Python相比,C+的运行速度究竟有多快?|python|编程语言|字符串|示例|算法 对于数据科学家而言,热爱Python的理由数不胜数.但你是否也曾问过这样的问题:Python和C或C++等更专业的低级编程语言究竟有何不同呢?我想这是很多数据科学家或者Python用户曾经问过或者将来 ... 【安全圈】编程语言安全漏洞:C 、PHP、Java、Python、.Net 和 JavaScrip... 在当下的市场环境中,除了掌握困扰软件的最常见安全问题外,开发人员还应该了解到底是什么问题在影响他们正在使用的编程语言.静态代码分析安全公司 Veracode 最近发布了一份年度软件安全状态(SOSS) ... DL之RNN:人工智能为你写代码——基于TF利用RNN算法实现生成编程语言代码(C++语言)、训练&测试过程全记录 DL之RNN:基于TF利用RNN算法实现生成编程语言代码(C语言).训练&测试过程全记录 输出结果 1.test01 ,&&curses = 0; if (tsk->st ...