APP下载

Rust发出首个官方CVE资安通报,漏洞影响虽小但要大家保有资安意识

消息来源:baojiabao.com 作者: 发布时间:2024-04-24

报价宝综合消息Rust发出首个官方CVE资安通报,漏洞影响虽小但要大家保有资安意识

Rust迎来第一个通用漏洞披露(Common Vulnerabilities and Exposures,CVE),红帽(Red Hat)主动于7月3日向Rust官方通报,Rustdoc的套件功能存在意料之外的路径臭虫,当使用者没有传递路径给Rustdoc时,系统则会使用预设位置/tmp,而多数操作系统/tmp是公开可写入的,便让骇客有机可乘放入恶意程式。官方提到,这个漏洞影响很小,但是许多人过度宣称Rust的安全性,而这个事件刚好能够警惕开发者,Rust无法保证没有臭虫发生。

在Rust标准发布版中,会夹带一个名为Rustdoc的工具,为Rust专案产生说明文件,Rustdoc可以将Crate root或是Markdown档案作为输入参数,生成HTML、CSS与JavaScript格式的档案。而Rust有一个套件功能,允许开发者使用特定的符号创建函式库来开发套件,借由指示Rustdoc使用该套件,系统会载入并以回呼的方式执行函式来修改Rustdoc的AST型态。

而当使用者没有给定系统套件路径参数,Rustdoc则会使用预设路径tmp/rustdoc/plugins,由于在多数的操作系统上/tmp是开放公开写入的,因此骇客就能趁机把恶意的套件放到tmp/rustdoc/plugins中,并以Rustdoc载入该套件,执行攻击者的回呼函式以及任意Rust程式码。

但官方提到,这个漏洞很难被骇客利用,因为本身Rustdoc套件功能就已经很难使用了。由于函式输入以及回传需要使用Rustdoc的AST型态,但是Rust专案并没有对终端用户发送librustdoc,也就是说使用者必须自己合成该型态,而且Rust的ABI又极度不稳定,因此动态载入套件这个动作,只有在套件与Rustdoc使用相同的编译器修订时才能保证被执行。所以虽然这个功能在程式码中,但缺乏实际用处。

不使用Rustdoc这个功能的开发者就不受漏洞影响,也由于这个套件功能长期被弃用,在缺乏必需的函式库情况下,在当前所有Rust版本中都无法使用,但毕竟该臭虫还是可能为用户带来问题,官方预计会将该行为从Rustdoc中删除,新的更新版本将于下星期在各版本的频道中发送,这个套件的基础架构在1.0前就存在,但即刻起已无法在Rust稳定版或是Nightly中使用,这个功能删除也不会影响任何Rust用户。

这个漏洞是Rust第一个官方CVE资安通报,由于该漏洞还在申请CVE的过程,目前还未有编号。虽然该漏洞影响非常小,但官方仍然决定遵循完整的安全漏洞程序,并在7月10日发布1.27.1稳定版修补这个臭虫。由于官方确定没有人可以利用这个漏洞,因此在更新发布前,就提早释出漏洞的资讯。

官方特别提醒,Rust虽然在程式编译的过程,阻挡了许多可能产生的问题,但这些仅限于内存不安全所导致的问题,而这个Rustdoc套件功能的漏洞,是一个逻辑错误,代表Rust程式码本身并不是必定安全且没有臭虫的,官方认为,部分使用者太过狂热,会过度宣称Rust的安全性,这样反而是危险的事,而这个臭虫正好证明了Rust无法阻挡所有安全性问题。

2018-07-10 21:31:00

相关文章