Lancern's Treasure Chest
特洛伊之源| 在 Rust 代码中隐藏无形的漏洞 今天 Rust 官方安全应急响应工作组发布了 Rust 编译器安全公告(CVE-2021-42574) ,宣称该工作组被告知 Rust 编译器存在一个安全问题,这个安全问题可能会导致 「人眼审查」的 Rust 代码 与 「编译后给机器用的」机器码 完全不一致。 这个安全问题并不是 Rust 编译器自身的缺陷导致的,而是由 Unicode 相关的双向算法 漏洞(CVE-2021-42574)而导致的。 而利用这个 Unicode 漏洞的攻击方法叫做:特洛伊之源(Trojan…
朋友们好啊,我是地表最安全程序设计语言 Rust 的编译器 rustc,刚才有个朋友问我 rustc 发生肾摸事了,我说怎么回事?给我发了几份代码,我一看!嗷!原来是今天,有两个安全研究员,30多岁,一个体重90多公斤,一个体重80多公斤。

塔们说,诶…有一个说是我在写 Rust 程序,写坏了,rustc 你能不能教教我?诶…帮助诊断一下,我的程序错在哪里了。

我说可以,我说你在对着 CSDN 写死程序,不好用,他不服气,我说小朋友你写个程序来过我编译,他写不动。他说你这也没用,我说我这个有用。

这是化劲儿,传统编译原理是讲化劲的,四两拨千斤,200多斤的 Python 之父都过不了我这一个编译,啊…哈!他说要和我试试,我说可以。

诶…我一说,他啪就站起来了,很快啊!然后上来就是一个 UAF,一个越界写,一个 double free!

我全部防区防出去了啊,防出去以后自然是传统编译以点到为止,错误消息打印到了命令行上,没格他盘。我笑一下,准备退出。

因为这时间,按传统编译的点到为止他已经输了,如果这给他编译通过,一运行就把他磁盘格式化了,编译错误没有给他通过。

他也承认我拒绝了编译,他不知道编译错误打印在了控制台上。他承认我先给出编译错误,啊!我退出的时间不编译了,他突然袭击 Unicode 双向算法来打我脸,啊,我大E了啊,没有闪。

诶…他的代码给我 borrow checker 蹭了一下,但没关系啊。他也说啊,他截图也说了,两分多钟以后,当时 CPU 跑满了,我说婷婷。然后两分钟以后,两分多钟以后诶就好了。

我说小伙子你不讲武德你不懂,他忙说 rustc 对不对不起,我不懂规矩,啊,我是…他说他是乱写的。

他可不是乱写的啊,UAF double free 训练有素,后来他说他练过三四年 Rust,啊,看来是有备而来。

这两个年轻人,不讲武德,

来,骗!

来,偷袭!

我 10 岁的老同志。这好吗?这不好。

我劝这位年轻人,耗子尾汁,好好反思。以后不要再犯这样的聪明,小聪明,啊,嗯…写程序要以和为贵,要讲武德,不要搞窝里斗。

谢谢朋友们!
 
 
Back to Top