已收录文章摘要,完整内容可前往原文阅读。
一段没有使用unsafe的Rust代码,通过了编译,还读到了已经失效的内存。 近日,Rust社区披露了一处存在约11年的类型系统漏洞,相关问题记录为 #164250。社区成员提供的复现变体可追溯至2015年发布的Rust 1.4.0稳定版。这意味着,Rust一直承诺的内存安全保证中,一处缺口可能已经存在了约11年。 Rust通过类型系统和借用检查器,在编译阶段限制不安全的内存访问。此次发现的问题的核心在于,对协变字段进行赋值时,程序可以绕过结构体声明的生命周期约束。 在...