第一句子大全,网罗天下好句子,好文章尽在本站!

Unicode 算法漏洞“Trojan Source”几乎影响所有编程语言

时间:2023-12-15

bidi 双向算法设计之初是用于处理不同语言的文字排序问题,比如将阿拉伯语单词从右到左阅读写入英语句子从左到右

友情提示:本文共有 972 个字,阅读大概需要 2 分钟。

出品|开源中国

作者|罗奇奇

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”漏洞通知所有受影响的编程语言组织和软件商。

后续发展

Rust 收到消息后迅速发布 1.56.1 版本,以解决此问题。

据 theregister 报导,软件开发商 Atlassian 迅速发布了针对 CVE-2021-42574 的安全公告,影响了从 Confluence 到 Jira 的一系列产品,并通过多个软件更新来解决该问题。

本文如果对你有帮助,请点赞收藏《Unicode 算法漏洞“Trojan Source”几乎影响所有编程语言》,同时在此感谢原作者。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
显示评论内容(2)
  1. tt9865322024-01-05 08:49tt986532[河北省网友]210.5.13.162
    看来网络安全问题真的是无处不在啊,希望开发者们能够加强代码审查,尽量避免类似的漏洞出现。
    顶0踩0
  2. 滴、滴、下雨了2023-12-25 19:18滴、滴、下雨了[国外网友]203.23.98.161
    这个算法漏洞真是太可怕了,希望相关厂商能够尽快修复,保护我们的网络安全。
    顶1踩0
相关阅读
如何用一句话向外行人描述程序员思维?枚举算法 枚举所有可能性

如何用一句话向外行人描述程序员思维?枚举算法 枚举所有可能性

...能成为程序员的最根本条件。程序员思维的核心是:枚举算法我们看下图,我们把开发系统做个简化,用于举例说明:大众的思维,要想去一个目的地,会怎么描述呢?直接过去就可以了是吧,直达目的地,这是最简单效率最高...

2023-09-07 #经典句子

日常自拍的朋友圈文案 沙雕又可爱 必评必赞的句子!

日常自拍的朋友圈文案 沙雕又可爱 必评必赞的句子!

...木马,请发送木马木马木马帮我解除病毒My mobile phone in a Trojan, please send a Trojan Trojan Trojan to help me lift the virus二十一,晚睡的小朋友就领取不到今天的美梦了喔Children who go to bed late will not receive today"s dreams二十二,生活就像发朋...

2023-09-05 #经典句子

百度语音助你 反复熟记Flink流计算常用DataStream算子

百度语音助你 反复熟记Flink流计算常用DataStream算子

...于进行数据的实时处理任务,可以将该编程模型分为DataSource、Transformation、Sink三个部分;Flink可以使用 StreamExecutionEnvironment.addSource(source) 来为我们的程序添加数据来源。Flink 已经提供了若干实现好了的 source functions,当然我们也...

2023-09-28 #经典句子

短链接生成器哪家好?网站的短链接算法问题

短链接生成器哪家好?网站的短链接算法问题

...接上,点击缩短,之后服务器经过URL处理之后,利用转换算法对长url进行转换,最后分别将长网址和短网址存储到数据库之中。部分短网址服务为了防止出现对短地址进行连续转化或者提供一些展示长网址TITLE的功能,所以会对...

2012-08-19 #经典句子

互联网行业“大地震” 巨头全体噤声:人民日报这句话 说得很对

互联网行业“大地震” 巨头全体噤声:人民日报这句话 说得很对

...、电商等领域的大部分互联网企业,不得强制对用户进行算法推荐,同时停止“大数据杀熟”行为。互联网行业“大地震”!要知道,算法推荐以及大数据杀熟,可是国内某些互联网巨头的拿手好戏。就拿视频来说,“某音”的...

2023-01-03 #经典句子

乂学教育-松鼠AI获KDD国际图深度学习研讨会最佳论文 & 最佳学生论文

乂学教育-松鼠AI获KDD国际图深度学习研讨会最佳论文 & 最佳学生论文

...崔炜介绍说,这套智适应引擎共分为三层架构:本体层、算法层、交互系统。本体层以内容为主,包括学习目标的本体、学习内容的本体和错因分析本体。松鼠AI自主研发了超纳米级的知识点拆分,可以对学生知识点更精准地判...

2019-09-07 #经典句子

四大视角 万字长文 欧盟MuMMER项目之商场服务机器人深入解读

四大视角 万字长文 欧盟MuMMER项目之商场服务机器人深入解读

...过视觉信息,人类也可以通过声音信息定位发声人(Sound source localization,SSL)。给定一段声音信号——在本项目中设定为 170ms 长——模型需要预测声音发出的方向。相对于大部分目前基于神经网络的算法,MuMMER 机器人的语音模...

2023-08-31 #经典句子

技术非中立 语言非同质:机器翻译正被用于维护文化障碍

技术非中立 语言非同质:机器翻译正被用于维护文化障碍

...并不打算用来代替口译译员,但他们仍然维持这种做法。Source: ProPublica人类语言翻译的实际运作长期受到权力不对称的影响。例如,几个世纪前,为了欧洲人能够理解互不相关的语言,他们制定了适用于一系列语言社区和非洲大...

2023-05-29 #经典句子